vsg: vsg::SharedObjects Class Reference

vsg 1.1.10 VulkanSceneGraph library |

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
vsg::SharedObjects Class Reference

class for facilitating the sharing of instances of objects that have the same properties. More...

`#include <SharedObjects.h>`

Inheritance diagram for vsg::SharedObjects:
[legend]
Collaboration diagram for vsg::SharedObjects:
[legend]

## Public Member Functions
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
Public Member Functions inherited from vsg::Inherit< Object, SharedObjects >
| 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
Public Member Functions inherited from vsg::Object
| Object (const Object &object, const CopyOp &copyop={})
Object & | operator= (const Object &)
template<class T>
T * | cast ()
template<class T>
const T * | cast () const
virtual ref_ptr< Object > | clone (const CopyOp &copyop={}) 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

## Public Attributes
ref_ptr< SuitableForSharing > | suitableForSharing
| visitor that checks a loaded object and its children for suitability for sharing in SharedObjects
std::set< Path > | excludedExtensions
| set of lower case file extensions for file types that should not be included in this SharedObjects

## Protected Attributes
std::recursive_mutex | _mutex
std::map< std::type_index, ref_ptr< Object > > | _defaults
std::map< std::type_index, std::set< ref_ptr< Object >, DereferenceLess > > | _sharedObjects

## Additional Inherited Members
Static Public Member Functions inherited from vsg::Inherit< Object, SharedObjects >
static ref_ptr< SharedObjects > | create (Args &&... args)
static ref_ptr< SharedObjects > | create_if (bool flag, Args &&... args)
Static Public Member Functions inherited from vsg::Object
static ref_ptr< Object > | create ()
static ref_ptr< Object > | create_if (bool flag)
static void * | operator new (std::size_t count)
| provide new and delete to enable custom memory management via the vsg::Allocator singleton, using the MEMORY_AFFINTY_OBJECTS
static void | operator delete (void *ptr)
Protected Member Functions inherited from vsg::Object
virtual void | _attemptDelete () const
void | setAuxiliary (Auxiliary *auxiliary)

## Detailed Description

class for facilitating the sharing of instances of objects that have the same properties.

The documentation for this class was generated from the following file:

- include/vsg/utils/SharedObjects.h