#include <mbl_cloneable_ptr.h>
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 17 of file mbl_cloneable_ptr.h.
Public Member Functions | |
| mbl_cloneable_ptr () | |
| Default constructor (zeros pointer). | |
| void | deleteObject () |
| Delete object pointed to and set pointer to zero. | |
| ~mbl_cloneable_ptr () | |
| Destructor. | |
| mbl_cloneable_ptr (const mbl_cloneable_ptr< BaseClass > &p) | |
| Copy constructor. | |
| mbl_cloneable_ptr (const BaseClass &r) | |
| Construct from pointer, making a clone of r. | |
| mbl_cloneable_ptr (BaseClass *p) | |
| Constructor from pointer, taking ownership of *p. | |
| mbl_cloneable_ptr< BaseClass > & | operator= (const mbl_cloneable_ptr< BaseClass > &p) |
| Copy operator. | |
| mbl_cloneable_ptr< BaseClass > & | operator= (const BaseClass &p) |
| Copy operator - takes clone of p. | |
| mbl_cloneable_ptr< BaseClass > & | operator= (BaseClass *p) |
| Copy operator - takes responsibility for *p. | |
| bool | isDefined () const |
| Return true if pointer defined. | |
| 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 * | release () |
| Return wrapped pointer and give up ownership. | |
| operator BaseClass & () | |
| Cast to allow object to look like thing pointed to. | |
| BaseClass & | operator * () |
| Dereferencing the pointer. | |
| const BaseClass & | operator * () const |
| Dereferencing the pointer. | |
| operator const BaseClass & () const | |
| Cast to allow object to look like thing pointed to. | |
| 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_ |
| mbl_cloneable_ptr< BaseClass >::mbl_cloneable_ptr | ( | ) | [inline] |
| mbl_cloneable_ptr< BaseClass >::~mbl_cloneable_ptr | ( | ) | [inline] |
| mbl_cloneable_ptr< BaseClass >::mbl_cloneable_ptr | ( | const mbl_cloneable_ptr< BaseClass > & | p | ) | [inline] |
| mbl_cloneable_ptr< BaseClass >::mbl_cloneable_ptr | ( | const BaseClass & | r | ) | [inline] |
| mbl_cloneable_ptr< BaseClass >::mbl_cloneable_ptr | ( | BaseClass * | p | ) | [inline] |
Constructor from pointer, taking ownership of *p.
Definition at line 37 of file mbl_cloneable_ptr.h.
| void mbl_cloneable_ptr< BaseClass >::deleteObject | ( | ) | [inline] |
Delete object pointed to and set pointer to zero.
Definition at line 25 of file mbl_cloneable_ptr.h.
| mbl_cloneable_ptr<BaseClass>& mbl_cloneable_ptr< BaseClass >::operator= | ( | const mbl_cloneable_ptr< BaseClass > & | p | ) | [inline] |
| mbl_cloneable_ptr<BaseClass>& mbl_cloneable_ptr< BaseClass >::operator= | ( | const BaseClass & | p | ) | [inline] |
| mbl_cloneable_ptr<BaseClass>& mbl_cloneable_ptr< 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 59 of file mbl_cloneable_ptr.h.
| bool mbl_cloneable_ptr< BaseClass >::isDefined | ( | ) | const [inline] |
| const BaseClass* mbl_cloneable_ptr< BaseClass >::operator-> | ( | ) | const [inline] |
| BaseClass* mbl_cloneable_ptr< BaseClass >::operator-> | ( | ) | [inline] |
| const BaseClass* mbl_cloneable_ptr< BaseClass >::ptr | ( | ) | const [inline] |
| BaseClass* mbl_cloneable_ptr< BaseClass >::ptr | ( | ) | [inline] |
| BaseClass* mbl_cloneable_ptr< BaseClass >::release | ( | ) | [inline] |
| mbl_cloneable_ptr< BaseClass >::operator BaseClass & | ( | ) | [inline] |
Cast to allow object to look like thing pointed to.
Definition at line 87 of file mbl_cloneable_ptr.h.
| BaseClass& mbl_cloneable_ptr< BaseClass >::operator * | ( | ) | [inline] |
| const BaseClass& mbl_cloneable_ptr< BaseClass >::operator * | ( | ) | const [inline] |
| mbl_cloneable_ptr< BaseClass >::operator const BaseClass & | ( | ) | const [inline] |
Cast to allow object to look like thing pointed to.
Definition at line 96 of file mbl_cloneable_ptr.h.
| void mbl_cloneable_ptr< BaseClass >::b_write | ( | vsl_b_ostream & | bfs | ) | const [inline] |
| void mbl_cloneable_ptr< BaseClass >::b_read | ( | vsl_b_istream & | bfs | ) | [inline] |
BaseClass* mbl_cloneable_ptr< BaseClass >::ptr_ [private] |
Definition at line 19 of file mbl_cloneable_ptr.h.
1.5.1