ATLAS Offline Software
Loading...
Searching...
No Matches
IPageAccessControlSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ATHENAKERNEL_IPAGEACCESSCONTROLSVC_H
6#define ATHENAKERNEL_IPAGEACCESSCONTROLSVC_H
7
8#include "GaudiKernel/IInterface.h"
9
11
19class IPageAccessControlSvc: virtual public IInterface {
20public:
23
26
29 virtual bool startMonitoring() = 0;
30 virtual bool stopMonitoring() = 0;
32 virtual bool accessed(const void* address) const =0;
34 virtual void report() const = 0;
35
37 virtual bool controlPage(const void* address) = 0;
38
41 //hopefully not necessary virtual PageAccessControl* pac() = 0;
42};
43
44#endif // ATHENAKERNEL_IPAGEACCESSCONTROLSVC_H
Interface to a service that monitors memory page accesses.
virtual bool accessed(const void *address) const =0
has this pointer been accessed (read/written)
virtual void report() const =0
In baseline implementation, controlled via PageAccessControlSvc.OutputLevel.
virtual bool controlPage(const void *address)=0
control access to the page containing address
DeclareInterfaceID(IPageAccessControlSvc, 1, 0)
Declare interface ID.
virtual bool startMonitoring()=0
In baseline implementation, protect pages and install a SEGV handler that counts the number of access...
virtual ~IPageAccessControlSvc()
Virtualize D'tor.
virtual bool stopMonitoring()=0
FIXME Access to the underlying protect/restore page access.