| Tekkotsu Homepage | Demos | Overview | Downloads | Dev. Resources | Reference | Credits |
SharedObject< MC > Class Template ReferenceThis templated class allows convenient creation of any type of class wrapped in a shared memory region. More...
Inheritance diagram for SharedObject< MC >:
![]() Detailed Descriptiontemplate<class MC>
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Public Member Functions | |
| SharedObject (const SharedObjectBase::NoInit &) | |
| a no-op constructor, so you can transfer a SharedObject created elsewhere with operator=() later | |
| SharedObject (const SharedObject &sh) | |
| copy constructor adds a reference to the underlying RCRegion, allowing the SharedObject instances to "share" the region | |
| SharedObject (RCRegion *r) | |
| Constructs from a pre-existing region, laying claim to the caller's reference to the region - region's creator is responsible for initialization. | |
| virtual | ~SharedObject () |
| destructor, removes reference to shared region | |
| MC * | operator-> () const |
| smart pointer to the underlying class | |
| MC & | operator* () const |
| smart pointer to the underlying class | |
| MC & | operator[] (int i) const |
| smart pointer to the underlying class | |
templated contructors - allows you to pass constructor arguments on to the object being created | |
| SharedObject () | |
| Creates the class with the default constructor. | |
| template<class T1 > | |
| SharedObject (const T1 &t1) | |
| Creates the class, passing its constructor t1. | |
| template<class T1 , class T2 > | |
| SharedObject (const T1 &t1, const T2 &t2) | |
| Creates the class, passing its constructor t1 and t2. | |
| template<class T1 , class T2 , class T3 > | |
| SharedObject (const T1 &t1, const T2 &t2, const T3 &t3) | |
| Creates the class, passing its constructor t1, t2, and t3. | |
| template<class T1 , class T2 , class T3 , class T4 > | |
| SharedObject (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4) | |
| Creates the class, passing its constructor t1, t2, t3 and t4. | |
| template<class T1 , class T2 , class T3 , class T4 , class T5 > | |
| SharedObject (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4, const T5 &t5) | |
| Creates the class, passing its constructor t1, t2, t3, t4 and t5 - if you need more arguments, just add them. | |
Protected Member Functions | |
| MC * | dataCasted () const |
| returns a correctly typed pointer to the object's memory | |
| virtual void | removeRef () |
| removes a reference from rcr, and if necessary, destructs its data | |
Static Protected Member Functions | |
| static RCRegion * | createRCRegion () |
| creates and returns RCRegion of correct size for current class. Adds a reference (which is removed in the destructor) | |
| static unsigned int | calcsize () |
| Calculates the size of the memory region to be used, (on Aperios, rounding up to the nearest page size). | |
| SharedObject< MC >::SharedObject | ( | ) |
Creates the class with the default constructor.
Definition at line 66 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const T1 & | t1 | ) | [explicit] |
Creates the class, passing its constructor t1.
Definition at line 71 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const T1 & | t1, | |
| const T2 & | t2 | |||
| ) |
Creates the class, passing its constructor t1 and t2.
Definition at line 76 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const T1 & | t1, | |
| const T2 & | t2, | |||
| const T3 & | t3 | |||
| ) |
Creates the class, passing its constructor t1, t2, and t3.
Definition at line 81 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const T1 & | t1, | |
| const T2 & | t2, | |||
| const T3 & | t3, | |||
| const T4 & | t4 | |||
| ) |
Creates the class, passing its constructor t1, t2, t3 and t4.
Definition at line 86 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const T1 & | t1, | |
| const T2 & | t2, | |||
| const T3 & | t3, | |||
| const T4 & | t4, | |||
| const T5 & | t5 | |||
| ) |
Creates the class, passing its constructor t1, t2, t3, t4 and t5 - if you need more arguments, just add them.
Definition at line 91 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const SharedObjectBase::NoInit & | ) |
a no-op constructor, so you can transfer a SharedObject created elsewhere with operator=() later
Definition at line 98 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | const SharedObject< MC > & | sh | ) |
copy constructor adds a reference to the underlying RCRegion, allowing the SharedObject instances to "share" the region
Definition at line 101 of file SharedObject.h.
| SharedObject< MC >::SharedObject | ( | RCRegion * | r | ) | [explicit] |
Constructs from a pre-existing region, laying claim to the caller's reference to the region - region's creator is responsible for initialization.
In other words, this SharedObject doesn't addReference, but will removeReference when the time is right (upon destruction). If you want to maintain an reference of your own to the region, you will need to call addReference yourself.
In comparison, the copy constructor will add a reference to the underlying RCRegion and "share" the RCRegion with the original SharedObject
Definition at line 112 of file SharedObject.h.
| virtual SharedObject< MC >::~SharedObject | ( | ) | [virtual] |
destructor, removes reference to shared region
Definition at line 125 of file SharedObject.h.
| static unsigned int SharedObject< MC >::calcsize | ( | ) | [static, protected] |
Calculates the size of the memory region to be used, (on Aperios, rounding up to the nearest page size).
Not sure this is completely necessary, but may be nice. Of course, this also means even small regions are going to be at least 4K (current page size) If memory gets tight or we get a lot of little regions floating around, this might be worth checking into
PLATFORM_APERIOS
Definition at line 173 of file SharedObject.h.
Referenced by SharedObject< UPennWalkMC >::createRCRegion().
| static RCRegion* SharedObject< MC >::createRCRegion | ( | ) | [static, protected] |
creates and returns RCRegion of correct size for current class. Adds a reference (which is removed in the destructor)
Definition at line 149 of file SharedObject.h.
Referenced by SharedObject< UPennWalkMC >::SharedObject().
| MC* SharedObject< MC >::dataCasted | ( | ) | const [protected] |
returns a correctly typed pointer to the object's memory
Definition at line 132 of file SharedObject.h.
Referenced by SharedObject< UPennWalkMC >::operator*(), SharedObject< UPennWalkMC >::operator->(), SharedObject< UPennWalkMC >::operator[](), and SharedObject< UPennWalkMC >::removeRef().
| MC& SharedObject< MC >::operator* | ( | ) | const |
smart pointer to the underlying class
Definition at line 128 of file SharedObject.h.
| MC* SharedObject< MC >::operator-> | ( | ) | const |
smart pointer to the underlying class
Definition at line 127 of file SharedObject.h.
| MC& SharedObject< MC >::operator[] | ( | int | i | ) | const |
smart pointer to the underlying class
Definition at line 129 of file SharedObject.h.
| virtual void SharedObject< MC >::removeRef | ( | ) | [protected, virtual] |
removes a reference from rcr, and if necessary, destructs its data
Implements SharedObjectBase.
Definition at line 135 of file SharedObject.h.
Referenced by SharedObject< UPennWalkMC >::~SharedObject().
|
Tekkotsu v5.0CVS |
Generated Fri Apr 2 16:15:50 2010 by Doxygen 1.6.3 |