#include <root_pointer.hh>
Inheritance diagram for lestes::std::mem::root_pointer:

Public Member Functions | |
| ~root_pointer (void) | |
| Destructs the root pointer. | |
Protected Member Functions | |
| root_pointer (void) | |
| Creates the root pointer. | |
| keystone * | pointer_get (void) const |
| Returns the bare pointer. | |
| void | pointer_set (keystone *a_pointer) |
| Sets the bare pointer. | |
Private Member Functions | |
| root_pointer (bool) | |
| Creates the head of list of pointers. | |
| root_pointer (const root_pointer &) | |
| Hides copy constructor. | |
| root_pointer & | operator= (const root_pointer &) |
| Hides assignment operator. | |
Private Attributes | |
| keystone * | pointer |
| The wrapped bare pointer. | |
| root_pointer * | previous |
| Previous pointer in linked list of all root pointers. | |
| root_pointer * | next |
| Next pointer in linked list of all root pointers. | |
Friends | |
| class | gc |
| The gc accesses private fields for speed. | |
Represents starting place for garbage collection. Used as common ancestor of all ptr template classes.
Definition at line 52 of file root_pointer.hh.
| lestes::std::mem::root_pointer::~root_pointer | ( | void | ) | [inline] |
Destructs the root pointer.
Destructs the pointer. Leaves the referenced object unchanged. Unlinks the root pointer from list of all root pointers.
Definition at line 114 of file root_pointer.hh.
References next, and previous.
00114 { 00115 // because of dummy head of linked list, this operation is well defined 00116 previous->next = next; 00117 next->previous = previous; 00118 }
| lestes::std::mem::root_pointer::root_pointer | ( | void | ) | [inline, protected] |
Creates the root pointer.
Creates the root pointer without initialization. Links the pointer into the list of all root pointers.
Definition at line 97 of file root_pointer.hh.
References next, previous, and lestes::std::mem::gc::roots.
00097 : 00098 /* TODO pt remove simple_pointer(),*/ 00099 // previous is first 00100 previous(gc::roots), 00101 // insert between first and first's next 00102 next(gc::roots->next) 00103 { 00104 // link before first's next 00105 next->previous = this; 00106 // link after first 00107 gc::roots->next = this; 00108 }
| lestes::std::mem::root_pointer::root_pointer | ( | bool | ) | [inline, private] |
Creates the head of list of pointers.
Creates the head of all pointers in gc.
Definition at line 83 of file root_pointer.hh.
00083 : 00084 /* TODO pt remove // pointer is not important 00085 simple_pointer(), */ 00086 // link to itself 00087 previous(this), 00088 // link to itself 00089 next(this) 00090 { 00091 }
| lestes::std::mem::root_pointer::root_pointer | ( | const root_pointer & | ) | [private] |
Hides copy constructor.
| keystone * lestes::std::mem::root_pointer::pointer_get | ( | void | ) | const [inline, protected] |
Returns the bare pointer.
Returns the underlying bare pointer.
Reimplemented in lestes::std::ptr< T >, lestes::std::ptr< reflection_list >, lestes::std::ptr< object::reflection_list >, and lestes::std::ptr< source_location >.
Definition at line 124 of file root_pointer.hh.
References pointer.
00124 { 00125 return pointer; 00126 }
| void lestes::std::mem::root_pointer::pointer_set | ( | keystone * | a_pointer | ) | [inline, protected] |
Sets the bare pointer.
Sets the underlying bare pointer.
| a_pointer | The new bare pointer. |
Definition at line 132 of file root_pointer.hh.
References pointer.
00132 { 00133 pointer = a_pointer; 00134 }
| root_pointer& lestes::std::mem::root_pointer::operator= | ( | const root_pointer & | ) | [private] |
Hides assignment operator.
friend class gc [friend] |
keystone* lestes::std::mem::root_pointer::pointer [private] |
The wrapped bare pointer.
Definition at line 67 of file root_pointer.hh.
Referenced by pointer_get(), and pointer_set().
Previous pointer in linked list of all root pointers.
Definition at line 71 of file root_pointer.hh.
Referenced by root_pointer(), and ~root_pointer().
root_pointer* lestes::std::mem::root_pointer::next [private] |
Next pointer in linked list of all root pointers.
Definition at line 73 of file root_pointer.hh.
Referenced by lestes::std::mem::gc::live_roots(), root_pointer(), lestes::std::mem::gc::run(), and ~root_pointer().
1.5.1-20070107