1 #ifndef PerfTools_AllocMonitor_AllocMonitorRegistry_h 2 #define PerfTools_AllocMonitor_AllocMonitorRegistry_h 51 template <
typename T,
typename... ARGS>
56 friend void*
::malloc(
size_t) noexcept;
57 friend void*
::calloc(
size_t,
size_t) noexcept;
58 friend void*
::realloc(
void*,
size_t) noexcept;
61 friend void*
::memalign(
size_t,
size_t) noexcept;
65 friend void*
::operator new[](std::size_t size);
70 friend void*
::operator new(std::size_t
count, std::align_val_t al,
const std::nothrow_t&) noexcept;
71 friend void*
::operator new[](std::size_t
count, std::align_val_t al,
const std::nothrow_t&) noexcept;
76 friend void ::operator delete[](
void* ptr, std::align_val_t al) noexcept;
79 friend void ::operator delete(
void* ptr, std::size_t sz, std::align_val_t al) noexcept;
80 friend void ::operator delete[](
void* ptr, std::size_t sz, std::align_val_t al) noexcept;
83 friend void ::operator delete(
void* ptr, std::align_val_t al,
const std::nothrow_t &
tag) noexcept;
84 friend void ::operator delete[](
void* ptr, std::align_val_t al,
const std::nothrow_t &
tag) noexcept;
118 template <
typename ALLOC,
typename ACT>
119 auto allocCalled(
size_t iRequested, ALLOC iAlloc, ACT iGetActual) {
122 if (
g.shouldReport()) {
127 template <
typename DEALLOC,
typename ACT>
130 if (
g.shouldReport() and iPtr !=
nullptr) {
137 std::vector<std::unique_ptr<AllocMonitorBase>>
monitors_;
140 template <
typename T,
typename... ARGS>
145 auto m = std::make_unique<T>(std::forward<ARGS>(iArgs)...);
int posix_memalign(void **memptr, size_t alignment, size_t size) noexcept
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
void free(void *ptr) noexcept