ATLAS Offline Software
IPageAccessControlSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENAKERNEL_IPAGEACCESSCONTROLSVC_H
6 #define ATHENAKERNEL_IPAGEACCESSCONTROLSVC_H
7 
16 #ifndef GAUDIKERNEL_IINTERFACE_H
17  #include "GaudiKernel/IInterface.h"
18 #endif
19 
28 class PageAccessControl;
29 
30 class IPageAccessControlSvc: virtual public IInterface {
31 public:
33  static const InterfaceID& interfaceID();
34 
37 
40  virtual bool startMonitoring() = 0;
41  virtual bool stopMonitoring() = 0;
43  virtual bool accessed(const void* address) const =0;
45  virtual void report() const = 0;
46 
48  virtual bool controlPage(const void* address) = 0;
49 
52  //hopefully not necessary virtual PageAccessControl* pac() = 0;
53 };
54 
55 
56 inline const InterfaceID& IPageAccessControlSvc::interfaceID()
57 {
58  static const InterfaceID IID_IPageAccessControlSvc("IPageAccessControlSvc", 1, 0);
59  return IID_IPageAccessControlSvc;
60 }
61 
62 #endif // ATHENAKERNEL_IPAGEACCESSCONTROLSVC_H
IPageAccessControlSvc::interfaceID
static const InterfaceID & interfaceID()
Retrieve interface ID.
Definition: IPageAccessControlSvc.h:56
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:30
IPageAccessControlSvc::~IPageAccessControlSvc
virtual ~IPageAccessControlSvc()
Virtualize D'tor.
Definition: IPageAccessControlSvc.h:36
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::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.