Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:57:43

0001 #ifndef AllocMonitor_interface_AllocMonitorBase_h
0002 #define AllocMonitor_interface_AllocMonitorBase_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     AllocMonitor/interface
0006 // Class  :     AllocMonitorBase
0007 //
0008 /**\class AllocMonitorBase AllocMonitorBase.h "AllocMonitorBase.h"
0009 
0010  Description: Base class for extensions that monitor allocations
0011 
0012  Usage:
0013     The class is required to be thread safe as all member functions
0014  will be called concurrently when used in a multi-threaded program.
0015 
0016  If allocations are done within the methods, no callbacks will be 
0017  generated as the underlying system will temporarily suspend such
0018  calls on the thread running the method.
0019 
0020 */
0021 //
0022 // Original Author:  Christopher Jones
0023 //         Created:  Mon, 21 Aug 2023 14:03:34 GMT
0024 //
0025 
0026 // system include files
0027 #include <stddef.h>  //size_t
0028 
0029 // user include files
0030 
0031 // forward declarations
0032 
0033 namespace cms::perftools {
0034 
0035   class AllocMonitorBase {
0036   public:
0037     AllocMonitorBase();
0038     virtual ~AllocMonitorBase();
0039 
0040     AllocMonitorBase(const AllocMonitorBase&) = delete;             // stop default
0041     AllocMonitorBase(AllocMonitorBase&&) = delete;                  // stop default
0042     AllocMonitorBase& operator=(const AllocMonitorBase&) = delete;  // stop default
0043     AllocMonitorBase& operator=(AllocMonitorBase&&) = delete;       // stop default
0044 
0045     // ---------- member functions ---------------------------
0046     virtual void allocCalled(size_t iRequestedSize, size_t iActualSize) = 0;
0047     virtual void deallocCalled(size_t iActualSize) = 0;
0048   };
0049 }  // namespace cms::perftools
0050 #endif