fw4spl
fwData::Composite Class Reference

This class defines a composite object. More...

#include <Composite.hpp>

+ Inheritance diagram for fwData::Composite:
+ Collaboration diagram for fwData::Composite:

Public Types

typedef std::map< std::string,::fwData::Object::sptr > ContainerType
 
typedef ContainerType::key_type KeyType
 
typedef ContainerType::mapped_type MappedType
 
typedef ContainerType::value_type ValueType
 
typedef ContainerType::iterator IteratorType
 
typedef ContainerType::const_iterator ConstIteratorType
 
typedef ContainerType::reverse_iterator ReverseIteratorType
 
typedef ContainerType::const_reverse_iterator ConstReverseIteratorType
 
typedef ContainerType::size_type SizeType
 
- Public Types inherited from fwData::Object
typedef ::fwData::factory::Key Key
 
typedef std::string FieldNameType
 
typedef std::vector< FieldNameType > FieldNameVectorType
 
typedef ::std::unordered_map< FieldNameType,::fwData::Object::sptr > FieldMapType
 
typedef ::std::unordered_map< ::fwData::Object::csptr,::fwData::Object::sptr > DeepCopyCacheType
 
typedef ::fwCom::Signal< void() > ModifiedSignalType
 Type of signal m_sigModified.
 
typedef std::map< std::string,::fwData::Object::sptr > FieldsContainerType
 Type of signal m_sigModified.
 
typedef ::fwCom::Signal< void(FieldsContainerType) > AddedFieldsSignalType
 Type of signal when objects are added.
 
typedef ::fwCom::Signal< void(FieldsContainerType, FieldsContainerType) > ChangedFieldsSignalType
 Type of signal when objects are changed (newObjects, oldObjects)
 
typedef ::fwCom::Signal< void(FieldsContainerType) > RemovedFieldsSignalType
 Type of signal when objects are removed.
 
- Public Types inherited from fwCom::HasSignals
typedef std::shared_ptr< HasSignalssptr
 
typedef std::shared_ptr< const HasSignalscsptr
 

Public Member Functions

virtual bool isA (const std::string &type) const override
 
FWDATA_API void shallowCopy (const Object::csptr &_source) override
 Defines shallow copy.
 
FWDATA_API void cachedDeepCopy (const Object::csptr &_source, DeepCopyCacheType &cache) override
 Defines deep copy.
 
template<class DATATYPE >
void setDataContainer (const std::map< std::string, std::shared_ptr< DATATYPE > > &map)
 Method to initialize a fwData::Composite from a std::map< string, X >
 
template<class DATATYPE >
std::map< std::string, std::shared_ptr< DATATYPE > > getDataContainer () const
 Method to get a std::map< string, X > from fwData::Composite.
 
template<class DATATYPE >
std::shared_ptr< DATATYPE > at (const std::string &key)
 Returns object in composite associated with the key. If no such object exists, a null object is returned. More...
 
template<class DATATYPE >
std::shared_ptr< const DATATYPE > at (const std::string &key) const
 Returns object in composite associated with the key. If no such object exists, a null object is returned. More...
 
ContainerType & getContainer ()
 get/set the map of std::string/fwData::Object
 
const ContainerType & getContainer () const
 get/set the map of std::string/fwData::Object
 
void setContainer (const ContainerType &val)
 get/set the map of std::string/fwData::Object
 
- Public Member Functions inherited from fwData::Object
FWDATA_API::fwData::Object::sptr getField (const FieldNameType &name,::fwData::Object::sptr defaultValue=::fwData::Object::sptr()) const
 Returns a pointer of corresponding field (null if non exist). More...
 
template<typename DATA_TYPE >
std::shared_ptr< DATA_TYPE > getField (const FieldNameType &name) const
 Returns a pointer of corresponding field. More...
 
template<typename DATA_TYPE >
std::shared_ptr< DATA_TYPE > getField (const FieldNameType &name, std::shared_ptr< DATA_TYPE > defaultValue) const
 Returns a pointer of corresponding field. More...
 
template<typename DATA_TYPE >
std::shared_ptr< DATA_TYPE > setDefaultField (const FieldNameType &name, std::shared_ptr< DATA_TYPE > defaultValue)
 Returns a pointer of corresponding field. If field did not exist, it is set to defaultValue if defaultValue is not null. More...
 
FWDATA_API::fwData::Object::csptr getConstField (const FieldNameType &name) const
 Returns a pointer of corresponding field (null if non exist). More...
 
FWDATA_API const FieldMapType & getFields () const
 Returns fields map.
 
FWDATA_API FieldNameVectorType getFieldNames () const
 Returns vector of field names.
 
FWDATA_API void setField (const FieldNameType &name,::fwData::Object::sptr obj)
 Register field with specified name. If the name does already exist, the matching field will be replaced. More...
 
FWDATA_API void setFields (const FieldMapType &fieldMap)
 Replace the field map content.
 
FWDATA_API void removeField (const FieldNameType &name)
 Removes field with specified name. More...
 
virtual FWDATA_API void shallowCopy (const ::fwData::Object::csptr &source)
 A shallow copy of fields (objects in m_children) More...
 
FWDATA_API void deepCopy (const ::fwData::Object::csptr &source)
 Make a deep copy from the source Calling this method may invalidate any DumpLock, RescursiveLock or helper on the object. Prefer using fwData::Object::copy instead.
 
FWDATA_API void fieldShallowCopy (const ::fwData::Object::csptr &source)
 A shallow copy of fields (objects in m_children) More...
 
FWDATA_API void fieldDeepCopy (const ::fwData::Object::csptr &source)
 A deep copy of fields (objects in m_children) More...
 
::fwCore::mt::ReadWriteMutexgetMutex () const
 Returns the object's mutex.
 
- Public Member Functions inherited from fwTools::Object
- Public Member Functions inherited from fwCore::BaseObject
- Public Member Functions inherited from fwCom::HasSignals
std::shared_ptr< SignalBasesignal (const Signals::SignalKeyType &key) const
 
template<typename SignalType >
std::shared_ptr< SignalType > signal (const Signals::SignalKeyType &key) const
 
template<typename SignalType >
std::shared_ptr< SignalType > newSignal (const Signals::SignalKeyType &key)
 

Static Public Member Functions

static bool isTypeOf (const std::string &type)
 
- Static Public Member Functions inherited from fwData::Object
static bool isTypeOf (const std::string &type)
 
static FWDATA_API::fwData::Object::sptr copy (const ::fwData::Object::csptr &source)
 return a copy of the source. if source is a null pointer, return a null pointer.
 
template<typename DATA_TYPE >
static std::shared_ptr< DATA_TYPE > copy (const std::shared_ptr< const DATA_TYPE > &source)
 return a copy of the source. if source is a null pointer, return a null pointer.
 
template<typename DATA_TYPE >
static std::shared_ptr< DATA_TYPE > copy (const std::shared_ptr< DATA_TYPE > &source)
 return a copy of the source. if source is a null pointer, return a null pointer.
 
static const std::string & classname ()
 return full object's classname with its namespace, i.e. fwCore::BaseObject
 
- Static Public Member Functions inherited from fwTools::Object
static bool isTypeOf (const std::string &type)
 
static const std::string & classname ()
 return full object's classname with its namespace, i.e. fwCore::BaseObject
 
- Static Public Member Functions inherited from fwCore::BaseObject
static bool isTypeOf (const std::string &type)
 
static const std::string & leafClassname ()
 return object's classname without its namespace, i.e. BaseObject
 
static const std::string & classname ()
 return object's classname without its namespace, i.e. BaseObject
 

Protected Attributes

ContainerType m_container
 
- Protected Attributes inherited from fwData::Object
FieldMapType m_fields
 Fields.
 
mutable::fwCore::mt::ReadWriteMutex m_mutex
 Mutex to protect object access.
 
- Protected Attributes inherited from fwTools::Object
std::shared_ptr< ::fwTools::UUIDm_uuid
 UUID used to identify the object, notably for serialization.
 
- Protected Attributes inherited from fwCom::HasSignals
Signals m_signals
 

Friends

template<class , class , class >
class ::fwTools::ClassFactory
 
class ::fwTools::Factory
 

Demangling methods

virtual const std::string & getLeafClassname () const override
 return object's classname without its namespace, i.e. BaseObject
 
virtual const std::string & getClassname () const override
 return full object's classname with its namespace, i.e. fwCore::BaseObject
 
static const std::string & leafClassname ()
 return object's classname without its namespace, i.e. BaseObject
 
static const std::string & classname ()
 return object's classname without its namespace, i.e. BaseObject
 
typedef ContainerType::key_type key_type
 
typedef ContainerType::mapped_type mapped_type
 
typedef ContainerType::value_type value_type
 
typedef ContainerType::iterator iterator
 
typedef ContainerType::const_iterator const_iterator
 
typedef ContainerType::reverse_iterator reverse_iterator
 
typedef ContainerType::const_reverse_iterator const_reverse_iterator
 
typedef ContainerType::size_type size_type
 
FWDATA_API Composite (::fwData::Object::Key key)
 Constructor. More...
 
virtual FWDATA_API ~Composite ()
 Destructor.
 
IteratorType begin ()
 
IteratorType end ()
 
ConstIteratorType begin () const
 
ConstIteratorType end () const
 
ReverseIteratorType rbegin ()
 
ReverseIteratorType rend ()
 
ConstReverseIteratorType rbegin () const
 
ConstReverseIteratorType rend () const
 
bool empty () const
 
SizeType size () const
 
mapped_typeoperator[] (KeyType n)
 
IteratorType find (const KeyType &x)
 
ConstIteratorType find (const KeyType &x) const
 
SizeType count (const KeyType &x) const
 

Signals

typedef ::fwCom::Signal< void(ContainerType) > AddedObjectsSignalType
 Type of signal when objects are added.
 
typedef ::fwCom::Signal< void(ContainerType, ContainerType) > ChangedObjectsSignalType
 Type of signal when objects are changed (newObjects, oldObjects)
 
typedef ::fwCom::Signal< void(ContainerType) > RemovedObjectsSignalType
 Type of signal when objects are removed.
 
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_ADDED_OBJECTS_SIG = "addedObjects"
 Type of signal when objects are added.
 
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_CHANGED_OBJECTS_SIG = "changedObjects"
 Type of signal when objects are added.
 
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_REMOVED_OBJECTS_SIG = "removedObjects"
 Type of signal when objects are added.
 

Additional Inherited Members

- Static Public Attributes inherited from fwData::Object
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_MODIFIED_SIG = "modified"
 Key in m_signals map of signal m_sigModified.
 
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_ADDED_FIELDS_SIG = "addedFields"
 Type of signal m_sigModified.
 
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_CHANGED_FIELDS_SIG = "changedFields"
 Type of signal m_sigModified.
 
static FWDATA_APIconst::fwCom::Signals::SignalKeyType s_REMOVED_FIELDS_SIG = "removedFields"
 Type of signal m_sigModified.
 
- Protected Types inherited from fwTools::fwID
enum  Policy { EMPTY = 1, GENERATE, MUST_EXIST }
 
typedef std::string IDType
 
- Protected Member Functions inherited from fwData::Object
FWDATA_API void fieldDeepCopy (const ::fwData::Object::csptr &source, DeepCopyCacheType &cache)
 Internal-use methods to implement Object's deepCopy.
 
virtual FWDATA_API void cachedDeepCopy (const ::fwData::Object::csptr &source, DeepCopyCacheType &cache)=0
 Internal-use methods to implement Object's deepCopy.
 
- Protected Member Functions inherited from fwTools::fwID
FWTOOLS_API bool hasID () const
 Return true if the object has an id set. More...
 
FWTOOLS_API IDType getID (Policy policy=GENERATE) const
 Returns the id of the object. If it is not set and the policy value is. More...
 
virtual FWTOOLS_API void setID (IDType newID)
 Set a newID for the object, (newID must not exist in fwID), the oldest one is released. More...
 
FWTOOLS_API void resetID ()
 Release the id for the object. More...
 
 fwID ()
 Constructor : does nothing.
 
- Protected Member Functions inherited from fwCom::HasSignals
 HasSignals (const HasSignals &)
 Copy constructor forbidden.
 
HasSignalsoperator= (const HasSignals &)
 Copy operator forbidden.
 
- Static Protected Member Functions inherited from fwData::Object
static FWDATA_API::fwData::Object::sptr copy (const ::fwData::Object::csptr &source, DeepCopyCacheType &cache)
 Internal-use methods to implement Object's deepCopy.
 
template<typename DATA_TYPE >
static std::shared_ptr< DATA_TYPE > copy (const std::shared_ptr< const DATA_TYPE > &source, DeepCopyCacheType &cache)
 Internal-use methods to implement Object's deepCopy.
 
template<typename DATA_TYPE >
static std::shared_ptr< DATA_TYPE > copy (const std::shared_ptr< DATA_TYPE > &source, DeepCopyCacheType &cache)
 Internal-use methods to implement Object's deepCopy.
 
- Static Protected Member Functions inherited from fwTools::fwID
static bool isTypeOf (const std::string &type)
 
static FWTOOLS_API bool exist (IDType _id)
 
static FWTOOLS_API std::shared_ptr< ::fwTools::ObjectgetObject (IDType requestID)
 Retrieve the object attached to the given id. Return a null sptr if no correspondence exist. More...
 
static const std::string & leafClassname ()
 return object's classname without its namespace, i.e. BaseObject
 
static const std::string & classname ()
 return object's classname without its namespace, i.e. BaseObject
 

Detailed Description

This class defines a composite object.

Composite contains a map of fwData::Object.

Definition at line 35 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Member Typedef Documentation

typedef ContainerType::const_iterator fwData::Composite::const_iterator

boost_foreach/stl compatibility

Definition at line 58 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::const_reverse_iterator fwData::Composite::const_reverse_iterator

boost_foreach/stl compatibility

Definition at line 60 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::iterator fwData::Composite::iterator

boost_foreach/stl compatibility

Definition at line 57 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::key_type fwData::Composite::key_type

boost_foreach/stl compatibility

Definition at line 54 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::mapped_type fwData::Composite::mapped_type

boost_foreach/stl compatibility

Definition at line 55 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::reverse_iterator fwData::Composite::reverse_iterator

boost_foreach/stl compatibility

Definition at line 59 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::size_type fwData::Composite::size_type

boost_foreach/stl compatibility

Definition at line 61 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

typedef ContainerType::value_type fwData::Composite::value_type

boost_foreach/stl compatibility

Definition at line 56 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Constructor & Destructor Documentation

fwData::Composite::Composite ( ::fwData::Object::Key  key)

Constructor.

Parameters
keyPrivate construction key

Definition at line 28 of file SrcLib/core/fwData/src/fwData/Composite.cpp.

References s_ADDED_OBJECTS_SIG, s_CHANGED_OBJECTS_SIG, and s_REMOVED_OBJECTS_SIG.

Member Function Documentation

template<class DATATYPE >
std::shared_ptr< DATATYPE > fwData::Composite::at ( const std::string &  key)

Returns object in composite associated with the key. If no such object exists, a null object is returned.

Parameters
keythe key of the object to find
Returns
requested object in composite associated with the key

Definition at line 307 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

References SLM_TRACE, SLM_TRACE_IF, and SPTR.

template<class DATATYPE >
std::shared_ptr< const DATATYPE > fwData::Composite::at ( const std::string &  key) const

Returns object in composite associated with the key. If no such object exists, a null object is returned.

Parameters
keythe key of the object to find
Returns
requested object in composite associated with the key

Definition at line 326 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

References CSPTR, SLM_TRACE, and SLM_TRACE_IF.

Composite::IteratorType fwData::Composite::begin ( )
inline

boost_foreach/stl compatibility

Definition at line 161 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

References begin().

Referenced by begin().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Composite::ConstIteratorType fwData::Composite::begin ( ) const
inline

boost_foreach/stl compatibility

Definition at line 175 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::SizeType fwData::Composite::count ( const KeyType &  x) const
inline

boost_foreach/stl compatibility

Definition at line 252 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

bool fwData::Composite::empty ( ) const
inline

boost_foreach/stl compatibility

Definition at line 217 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::IteratorType fwData::Composite::end ( )
inline

boost_foreach/stl compatibility

Definition at line 168 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::ConstIteratorType fwData::Composite::end ( ) const
inline

boost_foreach/stl compatibility

Definition at line 182 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::IteratorType fwData::Composite::find ( const KeyType &  x)
inline

boost_foreach/stl compatibility

Definition at line 238 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::ConstIteratorType fwData::Composite::find ( const KeyType &  x) const
inline

boost_foreach/stl compatibility

Definition at line 245 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::mapped_type & fwData::Composite::operator[] ( Composite::KeyType  n)
inline

boost_foreach/stl compatibility

Definition at line 231 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::ReverseIteratorType fwData::Composite::rbegin ( )
inline

boost_foreach/stl compatibility

Definition at line 189 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::ConstReverseIteratorType fwData::Composite::rbegin ( ) const
inline

boost_foreach/stl compatibility

Definition at line 203 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::ReverseIteratorType fwData::Composite::rend ( )
inline

boost_foreach/stl compatibility

Definition at line 196 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::ConstReverseIteratorType fwData::Composite::rend ( ) const
inline

boost_foreach/stl compatibility

Definition at line 210 of file SrcLib/core/fwData/include/fwData/Composite.hpp.

Composite::SizeType fwData::Composite::size ( ) const
inline

boost_foreach/stl compatibility

Definition at line 224 of file SrcLib/core/fwData/include/fwData/Composite.hpp.


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