ATLAS Offline Software
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 
10 class PageAccessControl;
11 
19 class IPageAccessControlSvc: virtual public IInterface {
20 public:
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
IPageAccessControlSvc::accessed
virtual bool accessed(const void *address) const =0
has this pointer been accessed (read/written)
PageAccessControl
Definition: PageAccessControl.h:27
IPageAccessControlSvc
Interface to a service that monitors memory page accesses.
Definition: IPageAccessControlSvc.h:19
IPageAccessControlSvc::~IPageAccessControlSvc
virtual ~IPageAccessControlSvc()
Virtualize D'tor.
Definition: IPageAccessControlSvc.h:25
IPageAccessControlSvc::controlPage
virtual bool controlPage(const void *address)=0
control access to the page containing address
IPageAccessControlSvc::stopMonitoring
virtual bool stopMonitoring()=0
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
IPageAccessControlSvc::DeclareInterfaceID
DeclareInterfaceID(IPageAccessControlSvc, 1, 0)
Declare interface ID.
IPageAccessControlSvc::startMonitoring
virtual bool startMonitoring()=0
In baseline implementation, protect pages and install a SEGV handler that counts the number of access...
IPageAccessControlSvc::report
virtual void report() const =0
In baseline implementation, controlled via PageAccessControlSvc.OutputLevel.