Cunning non-zero pointer for objects that can be cloned. More...
#include <mbl_cloneable_ptr.h>
Public Member Functions | |
| ~mbl_cloneable_nzptr () | |
| Destructor. | |
| mbl_cloneable_nzptr (const mbl_cloneable_nzptr< BaseClass > &cp) | |
| Copy constructor. | |
| mbl_cloneable_nzptr (const BaseClass &r) | |
| Construct from pointer, making a clone of r. | |
| mbl_cloneable_nzptr (BaseClass *p) | |
| Constructor from pointer, taking ownership of *p. | |
| mbl_cloneable_nzptr< BaseClass > & | operator= (const mbl_cloneable_nzptr< BaseClass > &cp) |
| Copy operator. | |
| mbl_cloneable_nzptr< BaseClass > & | operator= (const BaseClass &r) |
| Copy operator - takes clone of r. | |
| mbl_cloneable_nzptr< BaseClass > & | operator= (BaseClass *p) |
| Copy operator - takes responsibility for *p. | |
| bool | isDefined () const |
| Return true. | |
| const BaseClass * | operator-> () const |
| Make object behave like pointer to BaseClass. | |
| BaseClass * | operator-> () |
| Make object behave like pointer to BaseClass. | |
| const BaseClass * | ptr () const |
| Return actual pointer. | |
| BaseClass * | ptr () |
| Return actual pointer. | |
| BaseClass * | replace (BaseClass *p) |
| Return and give up ownership of wrapped pointer, while taking ownership a new pointer. | |
| operator BaseClass & () | |
| Cast to allow object to look like thing pointed to. | |
| operator const BaseClass & () const | |
| Cast to allow object to look like thing pointed to. | |
| BaseClass & | operator* () |
| Dereferencing the pointer. | |
| const BaseClass & | operator* () const |
| Dereferencing the pointer. | |
| void | b_write (vsl_b_ostream &bfs) const |
| Save to binary stream. | |
| void | b_read (vsl_b_istream &bfs) |
| Load from binary stream. | |
Private Attributes | |
| BaseClass * | ptr_ |
Cunning non-zero pointer for objects that can be cloned.
The pointer is guaranteed to always point to something. Used to record base class pointers to objects When copied, the object pointed to gets cloned. When written or read to/from binary streams, suitable polymorphic I/O is invoked.
Definition at line 129 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr< BaseClass >::~mbl_cloneable_nzptr | ( | ) | [inline] |
Destructor.
Definition at line 135 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr< BaseClass >::mbl_cloneable_nzptr | ( | const mbl_cloneable_nzptr< BaseClass > & | cp | ) | [inline] |
Copy constructor.
There is no default constructor.
Definition at line 139 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr< BaseClass >::mbl_cloneable_nzptr | ( | const BaseClass & | r | ) | [inline] |
Construct from pointer, making a clone of r.
There is no default constructor.
Definition at line 144 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr< BaseClass >::mbl_cloneable_nzptr | ( | BaseClass * | p | ) | [inline] |
Constructor from pointer, taking ownership of *p.
There is no default constructor.
Definition at line 148 of file mbl_cloneable_ptr.h.
| void mbl_cloneable_nzptr< BaseClass >::b_read | ( | vsl_b_istream & | bfs | ) | [inline] |
Load from binary stream.
Definition at line 222 of file mbl_cloneable_ptr.h.
| void mbl_cloneable_nzptr< BaseClass >::b_write | ( | vsl_b_ostream & | bfs | ) | const [inline] |
Save to binary stream.
Definition at line 216 of file mbl_cloneable_ptr.h.
| bool mbl_cloneable_nzptr< BaseClass >::isDefined | ( | ) | const [inline] |
Return true.
Definition at line 185 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr< BaseClass >::operator BaseClass & | ( | ) | [inline] |
Cast to allow object to look like thing pointed to.
Definition at line 204 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr< BaseClass >::operator const BaseClass & | ( | ) | const [inline] |
Cast to allow object to look like thing pointed to.
Definition at line 207 of file mbl_cloneable_ptr.h.
| BaseClass& mbl_cloneable_nzptr< BaseClass >::operator* | ( | ) | [inline] |
Dereferencing the pointer.
Definition at line 210 of file mbl_cloneable_ptr.h.
| const BaseClass& mbl_cloneable_nzptr< BaseClass >::operator* | ( | ) | const [inline] |
Dereferencing the pointer.
Definition at line 213 of file mbl_cloneable_ptr.h.
| const BaseClass* mbl_cloneable_nzptr< BaseClass >::operator-> | ( | ) | const [inline] |
Make object behave like pointer to BaseClass.
Definition at line 188 of file mbl_cloneable_ptr.h.
| BaseClass* mbl_cloneable_nzptr< BaseClass >::operator-> | ( | ) | [inline] |
Make object behave like pointer to BaseClass.
Definition at line 191 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr<BaseClass>& mbl_cloneable_nzptr< BaseClass >::operator= | ( | const mbl_cloneable_nzptr< BaseClass > & | cp | ) | [inline] |
Copy operator.
Definition at line 151 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr<BaseClass>& mbl_cloneable_nzptr< BaseClass >::operator= | ( | const BaseClass & | r | ) | [inline] |
Copy operator - takes clone of r.
Definition at line 162 of file mbl_cloneable_ptr.h.
| mbl_cloneable_nzptr<BaseClass>& mbl_cloneable_nzptr< BaseClass >::operator= | ( | BaseClass * | p | ) | [inline] |
Copy operator - takes responsibility for *p.
Sets internal pointer to p, and takes responsibility for deleting *p
Definition at line 175 of file mbl_cloneable_ptr.h.
| const BaseClass* mbl_cloneable_nzptr< BaseClass >::ptr | ( | ) | const [inline] |
Return actual pointer.
Definition at line 194 of file mbl_cloneable_ptr.h.
| BaseClass* mbl_cloneable_nzptr< BaseClass >::ptr | ( | ) | [inline] |
Return actual pointer.
Definition at line 197 of file mbl_cloneable_ptr.h.
| BaseClass* mbl_cloneable_nzptr< BaseClass >::replace | ( | BaseClass * | p | ) | [inline] |
Return and give up ownership of wrapped pointer, while taking ownership a new pointer.
Definition at line 200 of file mbl_cloneable_ptr.h.
BaseClass* mbl_cloneable_nzptr< BaseClass >::ptr_ [private] |
Definition at line 131 of file mbl_cloneable_ptr.h.
1.7.5.1