class for facilitating the sharing of instances of objects that have the same properties.
More...
|
template<class T> |
ref_ptr< T > | shared_default () |
|
template<class T> |
void | share (ref_ptr< T > &object) |
|
template<class T, typename Func> |
void | share (ref_ptr< T > &object, Func init) |
|
template<class C> |
void | share (C &container) |
|
virtual bool | suitable (const Path &filename) const |
| return true if the filename is of a type suitable for inclusion in this SharedObjects
|
|
virtual bool | contains (const Path &filename, ref_ptr< const Options > options={}) const |
| check for an entry associated with filename.
|
|
virtual void | add (ref_ptr< Object > object, const Path &filename, ref_ptr< const Options > options={}) |
| add entry that matches filename and options.
|
|
virtual bool | remove (const Path &filename, ref_ptr< const Options > options={}) |
| remove entry associated with filename.
|
|
void | clear () |
| clear all the internal structures leaving no Objects cached.
|
|
void | prune () |
|
void | report (std::ostream &out) |
| write out stats of objects held, types of objects and their reference counts
|
|
| Inherit (Args &&... args) |
|
std::size_t | sizeofObject () const noexcept override |
|
const char * | className () const noexcept override |
|
const std::type_info & | type_info () const noexcept override |
|
bool | is_compatible (const std::type_info &type) const noexcept override |
|
int | compare (const Object &rhs) const override |
|
void | accept (Visitor &visitor) override |
|
void | accept (ConstVisitor &visitor) const override |
|
void | accept (RecordTraversal &visitor) const override |
|
| Object (const Object &object, const CopyOp ©op={}) |
|
Object & | operator= (const Object &) |
|
template<class T> |
T * | cast () |
|
template<class T> |
const T * | cast () const |
|
virtual ref_ptr< Object > | clone (const CopyOp ©op={}) const |
|
virtual void | traverse (Visitor &) |
|
virtual void | traverse (ConstVisitor &) const |
|
virtual void | traverse (RecordTraversal &) const |
|
virtual void | read (Input &input) |
|
virtual void | write (Output &output) const |
|
void | ref () const noexcept |
|
void | unref () const noexcept |
|
void | unref_nodelete () const noexcept |
|
unsigned int | referenceCount () const noexcept |
|
template<typename T> |
void | setValue (const std::string &key, const T &value) |
|
void | setValue (const std::string &key, const char *value) |
| specialization of setValue to handle passing C strings
|
|
template<typename T> |
bool | getValue (const std::string &key, T &value) const |
| get specified value type, return false if value associated with key is not assigned or is not the correct type
|
|
void | setObject (const std::string &key, ref_ptr< Object > object) |
| assign an Object associated with key
|
|
Object * | getObject (const std::string &key) |
| get Object pointer associated with key, return nullptr if no object associated with key has been assigned
|
|
const Object * | getObject (const std::string &key) const |
| get const Object pointer associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T> |
T * | getObject (const std::string &key) |
| get object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T> |
const T * | getObject (const std::string &key) const |
| get const object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
ref_ptr< Object > | getRefObject (const std::string &key) |
| get ref_ptr<Object> associated with key, return nullptr if no object associated with key has been assigned
|
|
ref_ptr< const Object > | getRefObject (const std::string &key) const |
| get ref_ptr<const Object> pointer associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T> |
ref_ptr< T > | getRefObject (const std::string &key) |
| get ref_ptr<T> of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T> |
const ref_ptr< const T > | getRefObject (const std::string &key) const |
| get ref_ptr<const T> of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
void | removeObject (const std::string &key) |
| remove meta object or value associated with key
|
|
Auxiliary * | getOrCreateAuxiliary () |
|
Auxiliary * | getAuxiliary () |
|
const Auxiliary * | getAuxiliary () const |
|
class for facilitating the sharing of instances of objects that have the same properties.