HeapTracked.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2004-2008 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/Util/units/HeapTracked.h
10
11#ifndef __ReferenceHeapTracked_h
12#define __ReferenceHeapTracked_h
13
14#include <vector>
15#include <stdlib.h>
16
17namespace Reference {
18
20 extern bool verbose;
21
23
49 {
50 public:
51
53 HeapTracked () { __heap_state = 0; }
54
56 HeapTracked (const HeapTracked&) { __heap_state = 0; }
57
59 HeapTracked& operator = (const HeapTracked&) { return *this; }
60
62 virtual ~HeapTracked ();
63
65 static void* operator new (size_t size, void* ptr = 0);
66
68 static void operator delete (void* location, void* ptr);
69
71 static void operator delete (void* location);
72
74 bool __is_on_heap () const;
75
77 static size_t get_heap_queue_size ();
78
79 private:
80
81 friend class Able;
82 friend class Bin;
83
85 mutable char __heap_state;
86
88 void __set_deleted ();
89
91 bool __found_on_heap () const;
92
93 };
94
95}
96
97#endif
98
Manages Reference::To references to the instance.
Definition ReferenceAble.h:35
virtual ~HeapTracked()
Destructor.
Definition HeapTracked.C:54
static size_t get_heap_queue_size()
Return the number of heap addresses awaiting processing.
Definition HeapTracked.C:47
bool __is_on_heap() const
Return true if this instance is found in heap addresses.
Definition HeapTracked.C:101
HeapTracked()
Default constructor.
Definition HeapTracked.h:53
HeapTracked(const HeapTracked &)
Copy constructor.
Definition HeapTracked.h:56
HeapTracked & operator=(const HeapTracked &)
Assignment operator.
Definition HeapTracked.h:59
Contains two basic classes that simplify dynamic memory management.
Definition HeapTracked.h:17
bool verbose
Verbosity flag.
Definition ReferenceAble.h:22

Generated using doxygen 1.14.0