fw4spl
fwData::Object Class Referenceabstract

Base class for each data object. More...

#include <Object.hpp>

+ Inheritance diagram for fwData::Object:
+ Collaboration diagram for fwData::Object:

Classes

class  Registrar
 Class used to register a class factory in factory registry. This class defines also the object factory ( 'create' ) More...
 

Public Types

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
 
- 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::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
virtual const std::string & getLeafClassname () const
 return object's classname without its namespace, i.e. 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 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 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

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
 

Demangling methods

virtual const std::string & getClassname () const override
 return full object's classname with its namespace, i.e. fwCore::BaseObject
 
static const std::string & classname ()
 return full object's classname with its namespace, i.e. fwCore::BaseObject
 

Signals

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.
 
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.
 
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.
 
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.
 

Additional Inherited Members

- Protected Types inherited from fwTools::fwID
enum  Policy { EMPTY = 1, GENERATE, MUST_EXIST }
 
typedef std::string IDType
 
- 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.
 
virtual const std::string & getLeafClassname () const
 return object's classname without its namespace, i.e. BaseObject
 
- 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 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

Base class for each data object.

Each object can optionally embed sub-object with string identifier. We name this concept a Field. An Object containing a field name "dummy" corresponds to having a labeledObject with label "dummy" and containing a specific Object. When accessing to this object with getField("dummy") we get the specific Object

Definition at line 48 of file SrcLib/core/fwData/include/fwData/Object.hpp.

Member Function Documentation

void fwData::Object::fieldDeepCopy ( const ::fwData::Object::csptr &  source)

A deep copy of fields (objects in m_children)

Parameters
[in]sourcesource of the copy.

Definition at line 127 of file SrcLib/core/fwData/src/fwData/Object.cpp.

Referenced by fwData::location::MultiFiles::cachedDeepCopy(), fwData::Material::cachedDeepCopy(), fwMedData::Study::cachedDeepCopy(), fwMedData::Equipment::cachedDeepCopy(), fwData::Histogram::cachedDeepCopy(), fwMedData::Patient::cachedDeepCopy(), fwRenderQt::data::Viewport::cachedDeepCopy(), fwData::location::SingleFile::cachedDeepCopy(), fwData::String::cachedDeepCopy(), fwData::Edge::cachedDeepCopy(), fwPacsIO::data::PacsConfiguration::cachedDeepCopy(), fwData::Boolean::cachedDeepCopy(), fwData::Integer::cachedDeepCopy(), fwData::Line::cachedDeepCopy(), fwData::ResectionDB::cachedDeepCopy(), fwData::location::Folder::cachedDeepCopy(), fwData::TransformationMatrix3D::cachedDeepCopy(), fwData::Plane::cachedDeepCopy(), fwData::Float::cachedDeepCopy(), fwMedData::Series::cachedDeepCopy(), fwData::PlaneList::cachedDeepCopy(), fwData::Resection::cachedDeepCopy(), fwData::Color::cachedDeepCopy(), fwData::Point::cachedDeepCopy(), fwData::Reconstruction::cachedDeepCopy(), fwData::PointList::cachedDeepCopy(), fwData::Port::cachedDeepCopy(), fwData::StructureTraitsDictionary::cachedDeepCopy(), fwData::Array::cachedDeepCopy(), fwData::Tag::cachedDeepCopy(), fwData::ReconstructionTraits::cachedDeepCopy(), fwData::Landmarks::cachedDeepCopy(), fwData::ROITraits::cachedDeepCopy(), fwData::Node::cachedDeepCopy(), fwData::Image::cachedDeepCopy(), fwMedData::SeriesDB::cachedDeepCopy(), fwData::List::cachedDeepCopy(), fwData::Composite::cachedDeepCopy(), fwData::Spline::cachedDeepCopy(), fwData::Vector::cachedDeepCopy(), fwData::TransferFunction::cachedDeepCopy(), fwData::ProcessObject::cachedDeepCopy(), fwData::Mesh::cachedDeepCopy(), fwData::StructureTraits::cachedDeepCopy(), and fwData::Graph::getConnections().

+ Here is the caller graph for this function:

void fwData::Object::fieldShallowCopy ( const ::fwData::Object::csptr &  source)

A shallow copy of fields (objects in m_children)

Parameters
[in]sourcesource of the copy.

Definition at line 113 of file SrcLib/core/fwData/src/fwData/Object.cpp.

References setFields().

Referenced by fwData::Graph::getConnections(), fwMedData::Study::shallowCopy(), fwData::Material::shallowCopy(), fwMedData::Equipment::shallowCopy(), fwData::Histogram::shallowCopy(), fwMedData::Patient::shallowCopy(), fwRenderQt::data::Viewport::shallowCopy(), fwData::Boolean::shallowCopy(), fwData::String::shallowCopy(), fwPacsIO::data::PacsConfiguration::shallowCopy(), fwData::Edge::shallowCopy(), fwData::Integer::shallowCopy(), fwData::Line::shallowCopy(), fwData::ResectionDB::shallowCopy(), fwData::location::SingleFile::shallowCopy(), fwData::location::Folder::shallowCopy(), fwData::TransformationMatrix3D::shallowCopy(), fwData::Plane::shallowCopy(), fwData::Float::shallowCopy(), fwData::PlaneList::shallowCopy(), fwMedData::Series::shallowCopy(), fwData::Resection::shallowCopy(), fwData::Color::shallowCopy(), fwData::PointList::shallowCopy(), fwData::Point::shallowCopy(), fwData::Reconstruction::shallowCopy(), fwData::Port::shallowCopy(), fwData::StructureTraitsDictionary::shallowCopy(), fwData::Tag::shallowCopy(), fwData::Landmarks::shallowCopy(), fwData::Node::shallowCopy(), fwData::Image::shallowCopy(), fwMedData::SeriesDB::shallowCopy(), fwData::List::shallowCopy(), fwData::Composite::shallowCopy(), fwData::Vector::shallowCopy(), fwData::TransferFunction::shallowCopy(), fwData::ProcessObject::shallowCopy(), and fwData::Mesh::shallowCopy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fwData::Object::csptr fwData::Object::getConstField ( const FieldNameType &  name) const

Returns a pointer of corresponding field (null if non exist).

Parameters
[in]nameField name
Returns
null sptr if field is not found

Definition at line 58 of file SrcLib/core/fwData/src/fwData/Object.cpp.

References getField().

+ Here is the call graph for this function:

fwData::Object::sptr fwData::Object::getField ( const FieldNameType &  name,
::fwData::Object::sptr  defaultValue = ::fwData::Object::sptr() 
) const

Returns a pointer of corresponding field (null if non exist).

Parameters
[in]nameField name
[in]defaultValueDefault value
Returns
defaultValue if field is not found

Definition at line 45 of file SrcLib/core/fwData/src/fwData/Object.cpp.

References m_fields.

Referenced by fwDataTools::fieldHelper::MedicalImageHelpers::checkImageSliceIndex(), getConstField(), visuVTKAdaptor::SImage3DCursor::starting(), visuVTKAdaptor::SImageMultiDistances::updating(), and fwGdcmIO::writer::Series::write().

+ Here is the caller graph for this function:

template<typename DATA_TYPE >
std::shared_ptr< DATA_TYPE > fwData::Object::getField ( const FieldNameType &  name) const

Returns a pointer of corresponding field.

Parameters
[in]nameField name
Returns
pointer to corresponding field, nullptr if field is not found.

Definition at line 275 of file SrcLib/core/fwData/include/fwData/Object.hpp.

References SPTR.

template<typename DATA_TYPE >
std::shared_ptr< DATA_TYPE > fwData::Object::getField ( const FieldNameType &  name,
std::shared_ptr< DATA_TYPE >  defaultValue 
) const

Returns a pointer of corresponding field.

Parameters
[in]nameField name
[in]defaultValueDefault value
Returns
pointer to corresponding field, defaultValue if field is not found.

Definition at line 286 of file SrcLib/core/fwData/include/fwData/Object.hpp.

References SPTR.

void fwData::Object::removeField ( const FieldNameType &  name)

Removes field with specified name.

Parameters
[in]nameField name

Definition at line 101 of file SrcLib/core/fwData/src/fwData/Object.cpp.

References m_fields, and OSLM_ASSERT.

Referenced by uiMeasurement::action::RemoveDistance::updating().

+ Here is the caller graph for this function:

template<typename DATA_TYPE >
std::shared_ptr< DATA_TYPE > fwData::Object::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.

Parameters
[in]nameField name
[in]defaultValuedefault return value if field was not found
Returns
pointer to corresponding field.

Definition at line 297 of file SrcLib/core/fwData/include/fwData/Object.hpp.

References SPTR.

void fwData::Object::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.

Parameters
[in]nameField name
[in]objField

Definition at line 83 of file SrcLib/core/fwData/src/fwData/Object.cpp.

References m_fields.

Referenced by fieldDeepCopy().

+ Here is the caller graph for this function:

void fwData::Object::shallowCopy ( const ::fwData::Object::csptr &  source)
virtual

A shallow copy of fields (objects in m_children)

Parameters
[in]sourcesource of the copy.

Reimplemented in fwMedData::SeriesDB, fwMedData::ModelSeries, fwMedData::DicomSeries, fwMedData::ActivitySeries, fwMedData::NavigationSeries, fwMedData::ImageSeries, fwMedData::Series, fwMedData::Equipment, fwMedData::Patient, fwRenderQt::data::Viewport, uiMedDataQt::InsertSeries, and fwMedData::Study.

Definition at line 147 of file SrcLib/core/fwData/src/fwData/Object.cpp.

References getClassname(), and SLM_FATAL.

+ Here is the call graph for this function:


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