View on GitHub

Vistle

Distributed Data-parallel Scientific Visualization in VR

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
vistle::ObjectData Struct Reference

#include <core/object.h>

Inheritance diagram for vistle::ObjectData:
Inheritance graph
[legend]
Collaboration diagram for vistle::ObjectData:
Collaboration graph
[legend]

Public Types

typedef shm< char >::string Attribute
 
typedef shm< char >::string Key
 
typedef shm< Attribute >::vector AttributeList
 
typedef std::pair< const Key, AttributeListAttributeMapValueType
 
typedef shm< AttributeMapValueType >::allocator AttributeMapAllocator
 
typedef interprocess::map< Key, AttributeList, std::less< Key >, AttributeMapAllocatorAttributeMap
 
typedef std::map< std::string, std::vector< std::string > > StdAttributeMap
 
typedef boost::interprocess::scoped_lock< boost::interprocess::interprocess_recursive_mutex > attachment_mutex_lock_type
 
typedef interprocess::offset_ptr< const ObjectDataAttachment
 
typedef std::pair< const Key, AttachmentAttachmentMapValueType
 
typedef shm< AttachmentMapValueType >::allocator AttachmentMapAllocator
 
typedef interprocess::map< Key, Attachment, std::less< Key >, AttachmentMapAllocatorAttachmentMap
 
- Public Types inherited from vistle::ShmData
enum  ShmType { INVALID , OBJECT , ARRAY }
 

Public Member Functions

void addAttribute (const std::string &key, const std::string &value="")
 
V_COREEXPORT void setAttributeList (const std::string &key, const std::vector< std::string > &values)
 
void copyAttributes (const ObjectData *src, bool replace)
 
bool hasAttribute (const std::string &key) const
 
std::string getAttribute (const std::string &key) const
 
V_COREEXPORT std::vector< std::string > getAttributes (const std::string &key) const
 
V_COREEXPORT std::vector< std::string > getAttributeList () const
 
bool addAttachment (const std::string &key, Object::const_ptr att)
 
void copyAttachments (const ObjectData *src, bool replace)
 
bool hasAttachment (const std::string &key) const
 
Object::const_ptr getAttachment (const std::string &key) const
 
bool removeAttachment (const std::string &key)
 
V_COREEXPORT ObjectData (Object::Type id=Object::UNKNOWN, const std::string &name="", const Meta &m=Meta())
 
V_COREEXPORT ObjectData (const ObjectData &other, const std::string &name, Object::Type id=Object::UNKNOWN)
 
V_COREEXPORT ~ObjectData ()
 shallow copy, except for attributes More...
 
V_COREEXPORT void * operator new (size_t size)
 
V_COREEXPORT void * operator new (std::size_t size, void *ptr)
 
V_COREEXPORT void operator delete (void *ptr)
 
V_COREEXPORT void operator delete (void *ptr, void *voidptr2)
 
V_COREEXPORT int ref () const
 
V_COREEXPORT int unref () const
 
V_COREEXPORT bool isComplete () const
 
V_COREEXPORT void unresolvedReference ()
 check whether all references have been resolved More...
 
V_COREEXPORT void referenceResolved (const std::function< void()> &completeCallback)
 
template<class Archive >
ARCHIVE_ACCESS_SPLIT void save (Archive &ar) const
 
template<class Archive >
void load (Archive &ar)
 
 ObjectData (const ObjectData &)=delete
 
ObjectDataoperator= (const ObjectData &)=delete
 
- Public Member Functions inherited from vistle::ShmData
 ShmData (ShmType t, const std::string &name=std::string())
 
 ~ShmData ()
 
int ref () const
 
int unref () const
 
int refcount () const
 

Static Public Member Functions

static ObjectDatacreate (Object::Type id, const std::string &name, const Meta &m)
 

Public Attributes

Object::Type type
 
std::atomic< int > unresolvedReferences
 no. of not-yet-available arrays and referenced objects More...
 
Meta meta
 
AttributeMap attributes
 
boost::interprocess::interprocess_recursive_mutex attachment_mutex
 
AttachmentMap attachments
 
- Public Attributes inherited from vistle::ShmData
const shm_name_t name
 
std::atomic< int > m_refcount
 
const ShmType shmtype = INVALID
 

Member Typedef Documentation

◆ Attachment

typedef interprocess::offset_ptr<const ObjectData> vistle::ObjectData::Attachment

◆ attachment_mutex_lock_type

typedef boost::interprocess::scoped_lock<boost::interprocess::interprocess_recursive_mutex> vistle::ObjectData::attachment_mutex_lock_type

◆ AttachmentMap

◆ AttachmentMapAllocator

◆ AttachmentMapValueType

◆ Attribute

typedef shm<char>::string vistle::ObjectData::Attribute

◆ AttributeList

◆ AttributeMap

◆ AttributeMapAllocator

◆ AttributeMapValueType

◆ Key

typedef shm<char>::string vistle::ObjectData::Key

◆ StdAttributeMap

typedef std::map<std::string, std::vector<std::string> > vistle::ObjectData::StdAttributeMap

Constructor & Destructor Documentation

◆ ObjectData() [1/3]

vistle::ObjectData::ObjectData ( Object::Type  id = Object::UNKNOWN,
const std::string &  name = "",
const Meta m = Meta() 
)

◆ ObjectData() [2/3]

vistle::ObjectData::ObjectData ( const ObjectData other,
const std::string &  name,
Object::Type  id = Object::UNKNOWN 
)

◆ ~ObjectData()

vistle::ObjectData::~ObjectData ( )

shallow copy, except for attributes

◆ ObjectData() [3/3]

vistle::ObjectData::ObjectData ( const ObjectData )
delete

Member Function Documentation

◆ addAttachment()

bool vistle::Object::Data::addAttachment ( const std::string &  key,
Object::const_ptr  att 
)

◆ addAttribute()

void vistle::Object::Data::addAttribute ( const std::string &  key,
const std::string &  value = "" 
)

◆ copyAttachments()

void vistle::Object::Data::copyAttachments ( const ObjectData src,
bool  replace 
)

◆ copyAttributes()

void vistle::Object::Data::copyAttributes ( const ObjectData src,
bool  replace 
)

◆ create()

ObjectData * vistle::ObjectData::create ( Object::Type  id,
const std::string &  name,
const Meta m 
)
static

◆ getAttachment()

Object::const_ptr vistle::ObjectData::getAttachment ( const std::string &  key) const

◆ getAttribute()

std::string vistle::Object::Data::getAttribute ( const std::string &  key) const

◆ getAttributeList()

std::vector< std::string > vistle::Object::Data::getAttributeList ( ) const

◆ getAttributes()

std::vector< std::string > vistle::Object::Data::getAttributes ( const std::string &  key) const

◆ hasAttachment()

bool vistle::Object::Data::hasAttachment ( const std::string &  key) const

◆ hasAttribute()

bool vistle::Object::Data::hasAttribute ( const std::string &  key) const

◆ isComplete()

bool vistle::Object::Data::isComplete ( ) const

◆ load()

template<class Archive >
void vistle::Object::Data::load ( Archive &  ar)

◆ operator delete() [1/2]

void vistle::Object::Data::operator delete ( void *  ptr)

◆ operator delete() [2/2]

void vistle::Object::Data::operator delete ( void *  ptr,
void *  voidptr2 
)

◆ operator new() [1/2]

void * vistle::Object::Data::operator new ( size_t  size)

◆ operator new() [2/2]

void * vistle::Object::Data::operator new ( std::size_t  size,
void *  ptr 
)

◆ operator=()

ObjectData & vistle::ObjectData::operator= ( const ObjectData )
delete

◆ ref()

int vistle::ObjectData::ref ( ) const

◆ referenceResolved()

void vistle::ObjectData::referenceResolved ( const std::function< void()> &  completeCallback)

◆ removeAttachment()

bool vistle::Object::Data::removeAttachment ( const std::string &  key)

◆ save()

template<class Archive >
ARCHIVE_ACCESS_SPLIT void vistle::ObjectData::save ( Archive &  ar) const

◆ setAttributeList()

void vistle::Object::Data::setAttributeList ( const std::string &  key,
const std::vector< std::string > &  values 
)

◆ unref()

int vistle::ObjectData::unref ( ) const

◆ unresolvedReference()

void vistle::ObjectData::unresolvedReference ( )

check whether all references have been resolved

Member Data Documentation

◆ attachment_mutex

boost::interprocess::interprocess_recursive_mutex vistle::ObjectData::attachment_mutex
mutable

◆ attachments

AttachmentMap vistle::ObjectData::attachments

◆ attributes

AttributeMap vistle::ObjectData::attributes

◆ meta

Meta vistle::ObjectData::meta

◆ type

Object::Type vistle::ObjectData::type

◆ unresolvedReferences

std::atomic<int> vistle::ObjectData::unresolvedReferences

no. of not-yet-available arrays and referenced objects


The documentation for this struct was generated from the following files: