LCOV - code coverage report
Current view: top level - DCPS - PoolAllocationBase.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2023-04-30 01:32:43 Functions: 2 6 33.3 %

          Line data    Source code
       1             : #ifndef OPENDDS_DCPS_POOLALLOCATIONBASE_H
       2             : #define OPENDDS_DCPS_POOLALLOCATIONBASE_H
       3             : 
       4             : #include <new>
       5             : #include "SafetyProfilePool.h"
       6             : 
       7             : #define OPENDDS_POOL_ALLOCATION_HOOKS \
       8             :   void* operator new(size_t size)                                       \
       9             :   {                                                                     \
      10             :     void* const ptr = ACE_Allocator::instance()->malloc(size);          \
      11             :     if (ptr == 0) {                                                     \
      12             :       throw std::bad_alloc();                                           \
      13             :     }                                                                   \
      14             :     return ptr;                                                         \
      15             :   }                                                                     \
      16             :                                                                         \
      17             :   void operator delete(void* ptr)                                       \
      18             :   { ACE_Allocator::instance()->free(ptr); }                             \
      19             :                                                                         \
      20             :   void* operator new(size_t size, const std::nothrow_t&) throw()        \
      21             :   { return ACE_Allocator::instance()->malloc(size); }                   \
      22             :                                                                         \
      23             :   void operator delete(void* ptr, const std::nothrow_t&)                \
      24             :   { ACE_Allocator::instance()->free(ptr); }                             \
      25             :                                                                         \
      26             :   void* operator new(size_t, void* ptr) { return ptr; }                 \
      27             :                                                                         \
      28             :   void operator delete(void*, void*) {}                                 \
      29             :                                                                         \
      30             :   void* operator new[](size_t size)                                     \
      31             :   {                                                                     \
      32             :     void* const ptr = ACE_Allocator::instance()->malloc(size);          \
      33             :     if (ptr == 0) {                                                     \
      34             :       throw std::bad_alloc();                                           \
      35             :     }                                                                   \
      36             :     return ptr;                                                         \
      37             :   }                                                                     \
      38             :                                                                         \
      39             :   void operator delete[](void* ptr)                                     \
      40             :   { ACE_Allocator::instance()->free(ptr); }                             \
      41             :                                                                         \
      42             :   void* operator new[](size_t size, const std::nothrow_t&) throw()      \
      43             :   { return ACE_Allocator::instance()->malloc(size); }                   \
      44             :                                                                         \
      45             :   void operator delete[](void* ptr, const std::nothrow_t&)              \
      46             :   { ACE_Allocator::instance()->free(ptr); }                             \
      47             : 
      48             : 
      49             : #define OPENDDS_POOL_ALLOCATION_FWD            \
      50             :   using PoolAllocationBase::operator new;      \
      51             :   using PoolAllocationBase::operator new[];    \
      52             :   using PoolAllocationBase::operator delete;   \
      53             :   using PoolAllocationBase::operator delete[]; \
      54             : 
      55             : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
      56             : 
      57             : namespace OpenDDS {
      58             : namespace DCPS {
      59             : 
      60             : class PoolAllocationBase
      61             : {
      62             : public:
      63       25570 :   OPENDDS_POOL_ALLOCATION_HOOKS
      64             : };
      65             : 
      66             : }
      67             : }
      68             : 
      69             : OPENDDS_END_VERSIONED_NAMESPACE_DECL
      70             : 
      71             : #endif /* dds_DCPS_PoolAllocationBase_h */

Generated by: LCOV version 1.16