CLAM::DynamicType Class Reference

#include <DynamicType.hxx>

Inheritance diagram for CLAM::DynamicType:

CLAM::Component CLAM::AudioFileHeader CLAM::AudioTextDescriptors CLAM::ControlConfig CLAM::ProcessingConfig CLAM::ProcessingData CLAM::ProcessingDataConfig CLAM::SampleMetadata CLAM::SimpleLoopMetadata

List of all members.


Detailed Description

This class implements a type that is dynamic.

That is, it allows to add & remove fields or attributes at run time, optimizing this way the memory used. All the dynamic attributes are nevertheless perceived typed. So the compiler can garant the type consistency in every access to the dynamic attributes. It also allows herarchic structures and implements de Component interface so it can be stored all the tree (to XML format, for example) and can be copied (swallow or deep copy). (see the methods: SwallowCopy, DeepCopy and StoreOn )

In this class there is implemented all the memory management, but is an abstract class: to work with dynamic types, is necessary to define a concrete dynamic type (derives from this). A concrete dynamic type must be defined following a very specific set of rules; basically the attributes are registered using a macros mechanism that expand a known interface for accessing attributes.

As these methods are expanded by macros, they can not be documented inside the concrete dynamic type. Hence they will be documented here:

See also:
Component

DynamicBranch

Definition at line 70 of file DynamicType.hxx.


Public Types

enum  { idLength = 120, typeLength = 120 }

Public Member Functions

 DynamicType (const int nAttr)
 Constructs a DynamicType object that can hold.
 DynamicType (const DynamicType &prototype, const bool shareData, const bool deepCopy)
 Copy constructor of a dynamic Type.
 DynamicType (const DynamicType &prototype)
virtual ~DynamicType ()
virtual const char * GetClassName () const =0
 Return the class name.
void CopyInit (const DynamicType &dt)
 This method allows custom code for the copy-constructor of a dynamic type, since the copy-constructor is macro expanded and can not be overwritted.
bool UpdateData ()
 Method used to resize the data space of the dynamic type, necessary when some AddXXX() / RemoveXXX() (where XXX is an attribute name) has been done.
unsigned GetNDynamicAttributes () const
const char * GetDynamicAttributeName (unsigned i)
virtual const std::type_info & GetTypeId (unsigned i) const =0
bool AttributeIsComponent (unsigned i) const
bool AttributeIsDynamictype (unsigned i) const
bool IsAttributeInstantiated (unsigned i) const
const void * GetAttributeAsVoidPtr (unsigned i) const
const ComponentGetAttributeAsComponent (unsigned i) const
ComponentGetAttributeAsComponent (unsigned i)
void FullfilsInvariant () const
virtual ComponentDeepCopy () const
void Debug () const
virtual void StoreOn (CLAM::Storage &storage) const
 Stores component's subitems on the given Storage.
virtual void LoadFrom (CLAM::Storage &storage)
 Loads component's subitems from the given Storage.

Protected Types

enum  { shrinkThreshold = 80 }

Protected Member Functions

void DefaultInit ()
 The concrete dynamic type constructor calls DefaultInit().
virtual void InformAll ()
 implemented by the macros in the concrete class.
void InformTypedAttr_ (unsigned id, const char *name, unsigned size, const char *type, const bool isPtr, const t_new, const t_new_copy, const t_destructor, const Component *ptr)
void InformTypedAttr_ (unsigned id, const char *name, unsigned size, const char *type, const bool isPtr, const t_new, const t_new_copy, const t_destructor, const DynamicType *ptr)
void InformTypedAttr_ (unsigned id, const char *name, unsigned size, const char *type, const bool isPtr, const t_new, const t_new_copy, const t_destructor, const void *ptr)
void AddAttr_ (const unsigned i, const unsigned size)
void RemoveAttr_ (const unsigned id)
virtual DynamicTypeGetDynamicTypeCopy (const bool shareData=false, const bool deep=false) const =0
virtual ComponentShallowCopy () const
DynamicTypeoperator= (const DynamicType &source)
unsigned GetNumAttr () const
unsigned GetNumActiveAttr () const
char * GetData () const
void SetData (char *srcData)
TDynInfoGetDynamicTable () const
TAttrGetTypeDescTable () const
unsigned GetDataSize () const
bool IsInstanciate () const
bool OwnsItsMemory () const
void SetOwnsItsMemory (const bool owns)
bool ExistAttr (unsigned id) const
void SetPreAllocateAllAttributes ()
int DynTableRefCounter ()
void InitDynTableRefCounter ()
int DecrementDynTableRefCounter ()
int IncrementDynTableRefCounter ()
virtual void StoreDynAttributes (CLAM::Storage &s) const =0
virtual void LoadDynAttributes (CLAM::Storage &s)=0
template<typename AttribType>
void StoreAttribute (StaticTrue *asLeave, CLAM::Storage &s, AttribType &object, const char *name) const
template<typename AttribType>
void StoreAttribute (StaticFalse *asLeave, CLAM::Storage &s, AttribType &object, const char *name) const
template<typename AttribType>
void StoreIterableAttribute (CLAM::Storage &s, AttribType &object, const char *name, const char *elemName) const
template<typename AttribType>
bool LoadAttribute (StaticTrue *asLeave, CLAM::Storage &s, AttribType &object, const char *name)
template<typename AttribType>
bool LoadAttribute (StaticFalse *asLeave, CLAM::Storage &s, AttribType &object, const char *name)
template<typename AttribType>
bool LoadIterableAttribute (CLAM::Storage &s, AttribType &object, const char *name, const char *elemName)

Protected Attributes

unsigned numActiveAttr
char * data
TDynInfodynamicTable
TAttrtypeDescTable
unsigned dataSize
bool bOwnsItsMemory
unsigned numAttr
unsigned maxAttrSize
unsigned allocatedDataSize

Classes

class  AttributePositionBase
struct  TAttr
struct  TDynInfo

Member Enumeration Documentation

anonymous enum

Enumerator:
idLength 
typeLength 

Definition at line 193 of file DynamicType.hxx.

anonymous enum [protected]

Enumerator:
shrinkThreshold 

Definition at line 196 of file DynamicType.hxx.


Constructor & Destructor Documentation

CLAM::DynamicType::DynamicType ( const int  nAttr  ) 

Constructs a DynamicType object that can hold.

Parameters:
nAttr attributes. This constructor must be only used from the concrete dyn. type constructor. This constructor creates a dynamic type that is a new prototype. That means that has its own dynamic information (which attrs. are instanciated, etc.) Furthermore, the new object is set owner of its memory.

Definition at line 49 of file DynamicType.cxx.

References allocatedDataSize, bOwnsItsMemory, data, dataSize, dynamicTable, CLAM::DynamicType::TDynInfo::hasBeenAdded, CLAM::DynamicType::TDynInfo::hasBeenRemoved, InitDynTableRefCounter(), maxAttrSize, numActiveAttr, numAttr, and CLAM::DynamicType::TDynInfo::offs.

CLAM::DynamicType::DynamicType ( const DynamicType prototype,
const bool  shareData,
const bool  deepCopy = true 
)

Copy constructor of a dynamic Type.

This constructor must be only used from the concrete dyn. type constructor. The created object will use the dynamic type description of anotyer dynamic Type.

Parameters:
prototype Another dynamic type from which the dynamic shape is taken.
shareData Tells whether the new object will share the same data of the prototype, or not.

Definition at line 72 of file DynamicType.cxx.

References allocatedDataSize, data, dataSize, dynamicTable, IsInstanciate(), numActiveAttr, and typeDescTable.

CLAM::DynamicType::DynamicType ( const DynamicType prototype  ) 

CLAM::DynamicType::~DynamicType (  )  [virtual]

Definition at line 122 of file DynamicType.cxx.


Member Function Documentation

virtual const char* CLAM::DynamicType::GetClassName (  )  const [pure virtual]

Return the class name.

Implements CLAM::Component.

Implemented in CLAM::ProcessingConfig.

Referenced by Debug(), and FullfilsInvariant().

void CLAM::DynamicType::DefaultInit ( void   )  [inline, protected]

The concrete dynamic type constructor calls DefaultInit().

This allows user to initialize his/her object. But we define DefaultInit() here because we don't want to force writting one DefaultInit() function for each concrete dynamic type. If a dynamic type concrete class defines some (not-default) constructors, this should also call the DefaultInit().

See also:
CopyInit()

Reimplemented in CLAM::Audio, CLAM::EnvelopeConfig, CLAM::Envelope, CLAM::Frame, CLAM::Fundamental, CLAM::LPModel, CLAM::MelCepstrum, CLAM::MelSpectrum, CLAM::Segment, CLAM::SpectralPeak, CLAM::SpectralPeakArray, CLAM::Spectrum, CLAM::SpectrumConfig, CLAM::MediaTime, CLAM::Melody, CLAM::MIDIMelody, CLAM::PitchNote, CLAM::PeriodogramPeak, CLAM::SpectralDescriptors, CLAM::BinaryControlOpConfig, CLAM::ControlConfig, CLAM::PrintControlConfig, CLAM::CepstralTransformConfig, CLAM::CircularShiftConfig, CLAM::CleanTracksConfig, CLAM::ERB_SpaceGenConfig, CLAM::FFTConfig, CLAM::FundFreqDetectConfig, CLAM::LPCConfig, CLAM::MelFilterBankConfig, CLAM::SegmentatorConfig, CLAM::SinTrackingConfig, CLAM::SpectralEnvelopeExtractConfig, CLAM::TonalAnalysisConfig, CLAM::WindowGeneratorConfig, CLAM::AudioAmplifierConfig, CLAM::AudioMixerConfig, CLAM::FrameInterpConfig, CLAM::PeaksInterpConfig, CLAM::SpecAdderConfig, CLAM::SpecInterpConfig, CLAM::MonoAudioFileReaderConfig, CLAM::MonoAudioFileWriterConfig, CLAM::MultiChannelAudioFileReaderConfig, CLAM::MultiChannelAudioFileWriterConfig, CLAM::AudioIOConfig, CLAM::AutoPannerConfig, CLAM::Control2DataConfig, CLAM::ControllerConfig, CLAM::ControlMapperConfig, CLAM::ControlSinkConfig, CLAM::ControlSourceConfig, CLAM::ControlTraceReaderConfig, CLAM::ControlTraceWriterConfig, CLAM::FlagControlConfig, CLAM::OutControlSenderConfig, CLAM::ADSRConfig, CLAM::DispatcherConfig, CLAM::OscillatorConfig, CLAM::SimpleOscillatorConfig, CLAM::WaveGeneratorConfig, CLAM::MIDIClockerConfig, CLAM::MIDIDispatcherConfig, CLAM::MIDIIOConfig, CLAM::SampleMetadata, CLAM::SDIFInConfig, CLAM::SDIFOutConfig, CLAM::SimpleLoopMetadata, CLAM::IFFTConfig, CLAM::OverlapAddConfig, CLAM::PhaseManagementConfig, CLAM::SynthSineSpectrumConfig, CLAM::EnvExtractorConfig, CLAM::EnvelopeGeneratorConfig, CLAM::EnvModulatorConfig, CLAM::FDFilterGenConfig, CLAM::NormalizationConfig, CLAM::SegmentSMSMorphConfig, CLAM::SegmentSMSTimeStretchConfig, CLAM::SegmentTransformationConfig, CLAM::SMSHarmonizerConfig, CLAM::SMSMorphConfig, CLAM::SMSTimeStretchConfig, CLAM::SMSTransformationChaineeConfig, CLAM::SMSTransformationChainConfig, CLAM::TokenDelayConfig, CLAM::AudioFileHeader, and CLAM::AudioTextDescriptors.

Definition at line 105 of file DynamicType.hxx.

virtual void CLAM::DynamicType::InformAll (  )  [inline, protected, virtual]

implemented by the macros in the concrete class.

Informs all attrs. to the typeDescTable. used in UpdateData().

See also:
UpdateData()

Definition at line 113 of file DynamicType.hxx.

References CLAM_DEBUG_ASSERT, maxAttrSize, numAttr, CLAM::DynamicType::TAttr::offset, CLAM::DynamicType::TAttr::size, and typeDescTable.

void CLAM::DynamicType::CopyInit ( const DynamicType dt  )  [inline]

This method allows custom code for the copy-constructor of a dynamic type, since the copy-constructor is macro expanded and can not be overwritted.

If the writter of a concrete dynamic type writes more copy-constructors, he/she should include manually the call of the CopyInit(). Here we give the default (void) implementation.

Definition at line 133 of file DynamicType.hxx.

bool CLAM::DynamicType::UpdateData (  ) 

Method used to resize the data space of the dynamic type, necessary when some AddXXX() / RemoveXXX() (where XXX is an attribute name) has been done.

This operation does not check it if has been some attributes changes. In the case that the object is "not owner" of its memory this flag is changed to "owner", and a new data table is created.

Returns:
whether some modification has ocurred or not.

Definition at line 296 of file DynamicType.cxx.

References allocatedDataSize, bOwnsItsMemory, dataSize, dynamicTable, FullfilsInvariant(), maxAttrSize, and shrinkThreshold.

Referenced by CLAM::AudioDescriptors::AudioDescriptors(), CLAM::ControlPrinter::ConcreteConfigure(), CLAM::Spectrum::Configure(), CLAM::Envelope::Configure(), CLAM::SampleMetadata::ConfigureAfterRestore(), CLAM::SMSTransformationChaineeConfig::CopyInit(), CLAM::DataUtil::CopyResidualSpectrumsMembers(), CLAM::DataUtil::CopySpectralPeakArraysMembers(), CLAM::WindowGeneratorConfig::DefaultInit(), CLAM::WaveGeneratorConfig::DefaultInit(), CLAM::TonalAnalysisConfig::DefaultInit(), CLAM::TokenDelayConfig::DefaultInit(), CLAM::SynthSineSpectrumConfig::DefaultInit(), CLAM::SpecInterpConfig::DefaultInit(), CLAM::SpecAdderConfig::DefaultInit(), CLAM::SpectrumConfig::DefaultInit(), CLAM::PeaksInterpConfig::DefaultInit(), CLAM::SpectralPeakArray::DefaultInit(), CLAM::SpectralPeak::DefaultInit(), CLAM::SpectralEnvelopeExtractConfig::DefaultInit(), CLAM::SMSTransformationChainConfig::DefaultInit(), CLAM::SMSTransformationChaineeConfig::DefaultInit(), CLAM::SMSTimeStretchConfig::DefaultInit(), CLAM::SMSMorphConfig::DefaultInit(), CLAM::SMSHarmonizerConfig::DefaultInit(), CLAM::SinTrackingConfig::DefaultInit(), CLAM::SimpleOscillatorConfig::DefaultInit(), CLAM::SimpleLoopMetadata::DefaultInit(), CLAM::SegmentTransformationConfig::DefaultInit(), CLAM::SegmentSMSTimeStretchConfig::DefaultInit(), CLAM::SegmentSMSMorphConfig::DefaultInit(), CLAM::SegmentatorConfig::DefaultInit(), CLAM::Segment::DefaultInit(), CLAM::SDIFOutConfig::DefaultInit(), CLAM::SDIFInConfig::DefaultInit(), CLAM::SampleMetadata::DefaultInit(), CLAM::PrintControlConfig::DefaultInit(), CLAM::PitchNote::DefaultInit(), CLAM::PhaseManagementConfig::DefaultInit(), CLAM::PeriodogramPeak::DefaultInit(), CLAM::OverlapAddConfig::DefaultInit(), CLAM::OutControlSenderConfig::DefaultInit(), CLAM::OscillatorConfig::DefaultInit(), CLAM::NormalizationConfig::DefaultInit(), CLAM::MultiChannelAudioFileWriterConfig::DefaultInit(), CLAM::MultiChannelAudioFileReaderConfig::DefaultInit(), CLAM::MonoAudioFileWriterConfig::DefaultInit(), CLAM::MonoAudioFileReaderConfig::DefaultInit(), CLAM::MIDIMelody::DefaultInit(), CLAM::MIDIIOConfig::DefaultInit(), CLAM::MIDIDispatcherConfig::DefaultInit(), CLAM::MIDIClockerConfig::DefaultInit(), CLAM::MelSpectrum::DefaultInit(), CLAM::Melody::DefaultInit(), CLAM::MelFilterBankConfig::DefaultInit(), CLAM::MelCepstrum::DefaultInit(), CLAM::MediaTime::DefaultInit(), CLAM::LPModel::DefaultInit(), CLAM::LPCConfig::DefaultInit(), CLAM::IFFTConfig::DefaultInit(), CLAM::FundFreqDetectConfig::DefaultInit(), CLAM::Fundamental::DefaultInit(), CLAM::FrameInterpConfig::DefaultInit(), CLAM::Frame::DefaultInit(), CLAM::FlagControlConfig::DefaultInit(), CLAM::FFTConfig::DefaultInit(), CLAM::FDFilterGenConfig::DefaultInit(), CLAM::ERB_SpaceGenConfig::DefaultInit(), CLAM::EnvModulatorConfig::DefaultInit(), CLAM::EnvelopeGeneratorConfig::DefaultInit(), CLAM::EnvExtractorConfig::DefaultInit(), CLAM::Envelope::DefaultInit(), CLAM::EnvelopeConfig::DefaultInit(), CLAM::DispatcherConfig::DefaultInit(), CLAM::ControlTraceReaderConfig::DefaultInit(), CLAM::ControlTraceWriterConfig::DefaultInit(), CLAM::ControlSourceConfig::DefaultInit(), CLAM::ControlSinkConfig::DefaultInit(), CLAM::ControlMapperConfig::DefaultInit(), CLAM::ControllerConfig::DefaultInit(), CLAM::ControlConfig::DefaultInit(), CLAM::Control2DataConfig::DefaultInit(), CLAM::CleanTracksConfig::DefaultInit(), CLAM::CircularShiftConfig::DefaultInit(), CLAM::CepstralTransformConfig::DefaultInit(), CLAM::BinaryControlOpConfig::DefaultInit(), CLAM::AutoPannerConfig::DefaultInit(), CLAM::AudioMixerConfig::DefaultInit(), CLAM::AudioIOConfig::DefaultInit(), CLAM::AudioAmplifierConfig::DefaultInit(), CLAM::Audio::DefaultInit(), CLAM::ADSRConfig::DefaultInit(), CLAM::SpectralPeakArrayAdder::Do(), CLAM::SMSAnalysis::Do(), CLAM::SinTracking::Do(), CLAM::LPC_AutoCorrelation::Do(), CLAM::FundFreqDetect::Do(), CLAM::FDFilterGen::Do(), CLAM::Envelope::Envelope(), CLAM::FrameDescriptors::FrameDescriptors(), CLAM::MIDI2Melody::GenerateOutputData(), CLAM::Spectrum::GetConfig(), CLAM::PhaseManagement::Init(), CLAM::SMSSineFilter::InitBPF(), CLAM::SMSSynthesis::InitFrame(), CLAM::SinusoidalSynthesis::InitFrame(), CLAM::SpectralPeakArray::InitFromPrototype(), CLAM::SpectralPeakArray::InitPeak(), CLAM::SpectralPeakArray::InitSpectralPeak(), CLAM::SegmentSMSMorph::LoadSDIF(), CLAM::SDIFIn::LoadSDIFDataIntoSegment(), CLAM::LoopingSDIFFileReader::LoopingSDIFFileReader(), CLAM::operator*(), CLAM::SpectralPeakArray::operator+(), CLAM::operator+(), CLAM::AudioFile::ResetHeaderData(), CLAM::AudioCodecs::PCMCodec::RetrieveHeaderData(), CLAM::AudioCodecs::OggVorbisCodec::RetrieveHeaderData(), CLAM::AudioCodecs::MpegCodec::RetrieveHeaderData(), CLAM::AudioCodecs::OggVorbisCodec::RetrieveTextDescriptors(), CLAM::AudioCodecs::MpegCodec::RetrieveTextDescriptors(), CLAM::SegmentSMSHarmonizer::SegmentSMSHarmonizer(), CLAM::Spectrum::SetBPFSize(), CLAM::AudioFile::SetHeader(), CLAM::Segment::SetHoldsData(), CLAM::FrameDescriptors::SetpFrame(), CLAM::SegmentDescriptors::SetpSegment(), CLAM::AudioFileHeader::SetValues(), CLAM::SMSSineFilter::SMSSineFilter(), CLAM::SpectralDescriptors::SpectralDescriptors(), CLAM::SpectralPeakDescriptors::SpectralPeakDescriptors(), CLAM::SpectralShapeShift::SpectralShapeShift(), and CLAM::Spectrum::SynchronizeTo().

void CLAM::DynamicType::InformTypedAttr_ ( unsigned  id,
const char *  name,
unsigned  size,
const char *  type,
const bool  isPtr,
const   t_new,
const   t_new_copy,
const   t_destructor,
const Component ptr 
) [inline, protected]

void CLAM::DynamicType::InformTypedAttr_ ( unsigned  id,
const char *  name,
unsigned  size,
const char *  type,
const bool  isPtr,
const   t_new,
const   t_new_copy,
const   t_destructor,
const DynamicType ptr 
) [inline, protected]

void CLAM::DynamicType::InformTypedAttr_ ( unsigned  id,
const char *  name,
unsigned  size,
const char *  type,
const bool  isPtr,
const   t_new,
const   t_new_copy,
const   t_destructor,
const void *  ptr 
) [inline, protected]

void CLAM::DynamicType::AddAttr_ ( const unsigned  i,
const unsigned  size 
) [protected]

void CLAM::DynamicType::RemoveAttr_ ( const unsigned  id  )  [protected]

unsigned CLAM::DynamicType::GetNDynamicAttributes (  )  const [inline]

Definition at line 172 of file DynamicType.hxx.

References numAttr.

const char* CLAM::DynamicType::GetDynamicAttributeName ( unsigned  i  )  [inline]

Definition at line 173 of file DynamicType.hxx.

References CLAM::DynamicType::TAttr::id, and typeDescTable.

virtual const std::type_info& CLAM::DynamicType::GetTypeId ( unsigned  i  )  const [pure virtual]

bool CLAM::DynamicType::AttributeIsComponent ( unsigned  i  )  const [inline]

Definition at line 175 of file DynamicType.hxx.

References CLAM::DynamicType::TAttr::isComponent, and typeDescTable.

bool CLAM::DynamicType::AttributeIsDynamictype ( unsigned  i  )  const [inline]

Definition at line 176 of file DynamicType.hxx.

References CLAM::DynamicType::TAttr::isDynamicType, and typeDescTable.

bool CLAM::DynamicType::IsAttributeInstantiated ( unsigned  i  )  const [inline]

Definition at line 177 of file DynamicType.hxx.

References dynamicTable, and CLAM::DynamicType::TDynInfo::offs.

const void* CLAM::DynamicType::GetAttributeAsVoidPtr ( unsigned  i  )  const [inline]

Definition at line 178 of file DynamicType.hxx.

const Component* CLAM::DynamicType::GetAttributeAsComponent ( unsigned  i  )  const [inline]

Definition at line 181 of file DynamicType.hxx.

References typeDescTable.

Component* CLAM::DynamicType::GetAttributeAsComponent ( unsigned  i  )  [inline]

Definition at line 185 of file DynamicType.hxx.

References typeDescTable.

void CLAM::DynamicType::FullfilsInvariant (  )  const

Component * CLAM::DynamicType::DeepCopy (  )  const [virtual]

Reimplemented from CLAM::Component.

Definition at line 630 of file DynamicType.cxx.

References GetDynamicTypeCopy().

virtual DynamicType& CLAM::DynamicType::GetDynamicTypeCopy ( const bool  shareData = false,
const bool  deep = false 
) const [protected, pure virtual]

Referenced by DeepCopy(), and ShallowCopy().

Component * CLAM::DynamicType::ShallowCopy (  )  const [protected, virtual]

Reimplemented from CLAM::Component.

Definition at line 622 of file DynamicType.cxx.

References GetDynamicTypeCopy().

DynamicType & CLAM::DynamicType::operator= ( const DynamicType source  )  [protected]

Definition at line 731 of file DynamicType.cxx.

References FullfilsInvariant().

unsigned CLAM::DynamicType::GetNumAttr (  )  const [inline, protected]

Definition at line 231 of file DynamicType.hxx.

References numAttr.

unsigned CLAM::DynamicType::GetNumActiveAttr (  )  const [inline, protected]

Definition at line 232 of file DynamicType.hxx.

References numActiveAttr.

char* CLAM::DynamicType::GetData (  )  const [inline, protected]

Definition at line 233 of file DynamicType.hxx.

References data.

void CLAM::DynamicType::SetData ( char *  srcData  )  [inline, protected]

Definition at line 234 of file DynamicType.hxx.

References data.

TDynInfo* CLAM::DynamicType::GetDynamicTable (  )  const [inline, protected]

Definition at line 235 of file DynamicType.hxx.

References dynamicTable.

TAttr* CLAM::DynamicType::GetTypeDescTable (  )  const [inline, protected]

Definition at line 236 of file DynamicType.hxx.

References typeDescTable.

unsigned CLAM::DynamicType::GetDataSize (  )  const [inline, protected]

Definition at line 237 of file DynamicType.hxx.

References dataSize.

bool CLAM::DynamicType::IsInstanciate (  )  const [inline, protected]

Definition at line 238 of file DynamicType.hxx.

References data.

Referenced by DynamicType().

bool CLAM::DynamicType::OwnsItsMemory (  )  const [inline, protected]

Definition at line 239 of file DynamicType.hxx.

References bOwnsItsMemory.

void CLAM::DynamicType::SetOwnsItsMemory ( const bool  owns  )  [inline, protected]

Definition at line 240 of file DynamicType.hxx.

References bOwnsItsMemory.

bool CLAM::DynamicType::ExistAttr ( unsigned  id  )  const [inline, protected]

void CLAM::DynamicType::SetPreAllocateAllAttributes (  )  [inline, protected]

void CLAM::DynamicType::Debug (  )  const

int CLAM::DynamicType::DynTableRefCounter (  )  [inline, protected]

Definition at line 595 of file DynamicType.cxx.

References dynamicTable, and CLAM::DynamicType::TDynInfo::offs.

Referenced by AddAttr_(), and RemoveAttr_().

void CLAM::DynamicType::InitDynTableRefCounter (  )  [inline, protected]

Definition at line 599 of file DynamicType.cxx.

References dynamicTable, and CLAM::DynamicType::TDynInfo::offs.

Referenced by AddAttr_(), DynamicType(), and RemoveAttr_().

int CLAM::DynamicType::DecrementDynTableRefCounter (  )  [inline, protected]

Definition at line 608 of file DynamicType.cxx.

References dynamicTable, and CLAM::DynamicType::TDynInfo::offs.

Referenced by AddAttr_(), and RemoveAttr_().

int CLAM::DynamicType::IncrementDynTableRefCounter (  )  [inline, protected]

Definition at line 612 of file DynamicType.cxx.

References dynamicTable, and CLAM::DynamicType::TDynInfo::offs.

virtual void CLAM::DynamicType::StoreOn ( CLAM::Storage storage  )  const [inline, virtual]

Stores component's subitems on the given Storage.

Parameters:
storage The given storage where the subitem will be stored
See also:
Storage

Implements CLAM::Component.

Reimplemented in CLAM::SMSTransformationChaineeConfig.

Definition at line 305 of file DynamicType.hxx.

References StoreDynAttributes().

Referenced by CLAM::SMSTransformationChaineeConfig::StoreOn().

virtual void CLAM::DynamicType::LoadFrom ( CLAM::Storage storage  )  [inline, virtual]

Loads component's subitems from the given Storage.

Parameters:
storage The given storage where the subitem will be loaded from
See also:
Storage

Implements CLAM::Component.

Reimplemented in CLAM::SMSTransformationChaineeConfig.

Definition at line 308 of file DynamicType.hxx.

References LoadDynAttributes().

Referenced by CLAM::SMSTransformationChaineeConfig::LoadFrom().

virtual void CLAM::DynamicType::StoreDynAttributes ( CLAM::Storage s  )  const [protected, pure virtual]

Referenced by StoreOn().

virtual void CLAM::DynamicType::LoadDynAttributes ( CLAM::Storage s  )  [protected, pure virtual]

Referenced by LoadFrom().

template<typename AttribType>
void CLAM::DynamicType::StoreAttribute ( StaticTrue asLeave,
CLAM::Storage s,
AttribType &  object,
const char *  name 
) const [inline, protected]

Definition at line 321 of file DynamicType.hxx.

References CLAM::Storage::Store().

template<typename AttribType>
void CLAM::DynamicType::StoreAttribute ( StaticFalse asLeave,
CLAM::Storage s,
AttribType &  object,
const char *  name 
) const [inline, protected]

Definition at line 327 of file DynamicType.hxx.

References CLAM::Storage::Store().

template<typename AttribType>
void CLAM::DynamicType::StoreIterableAttribute ( CLAM::Storage s,
AttribType &  object,
const char *  name,
const char *  elemName 
) const [inline, protected]

Definition at line 333 of file DynamicType.hxx.

References CLAM::Storage::Store().

template<typename AttribType>
bool CLAM::DynamicType::LoadAttribute ( StaticTrue asLeave,
CLAM::Storage s,
AttribType &  object,
const char *  name 
) [inline, protected]

Definition at line 340 of file DynamicType.hxx.

References CLAM::Storage::Load().

template<typename AttribType>
bool CLAM::DynamicType::LoadAttribute ( StaticFalse asLeave,
CLAM::Storage s,
AttribType &  object,
const char *  name 
) [inline, protected]

Definition at line 345 of file DynamicType.hxx.

References CLAM::Storage::Load().

template<typename AttribType>
bool CLAM::DynamicType::LoadIterableAttribute ( CLAM::Storage s,
AttribType &  object,
const char *  name,
const char *  elemName 
) [inline, protected]

Definition at line 350 of file DynamicType.hxx.

References CLAM::Storage::Load().


Member Data Documentation

Definition at line 251 of file DynamicType.hxx.

Referenced by AddAttr_(), DynamicType(), GetNumActiveAttr(), and RemoveAttr_().

char* CLAM::DynamicType::data [protected]

Definition at line 256 of file DynamicType.hxx.

Referenced by DynamicType(), OwnsItsMemory(), SetOwnsItsMemory(), and UpdateData().

Definition at line 257 of file DynamicType.hxx.

Referenced by DynamicType(), GetNDynamicAttributes(), GetNumAttr(), and InformAll().

Definition at line 258 of file DynamicType.hxx.

Referenced by Debug(), DynamicType(), InformAll(), and UpdateData().

Definition at line 259 of file DynamicType.hxx.

Referenced by Debug(), DynamicType(), FullfilsInvariant(), and UpdateData().


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

Generated on Tue Aug 12 22:33:46 2008 for CLAM by  doxygen 1.5.5