ACF $AcfVersion:0$
Public Types | Public Member Functions | Static Public Attributes | List of all members
icomp::CBaseComponentStaticInfo Class Reference

Standard implementation of static info for base component classes. More...

#include <CBaseComponentStaticInfo.h>

Inheritance diagram for icomp::CBaseComponentStaticInfo:
icomp::CComponentStaticInfoBase icomp::IRealComponentStaticInfo icomp::IComponentStaticInfo icomp::IComponentStaticInfo icomp::IComponentInterfaceExtractor icomp::IElementStaticInfo iattr::IAttributesMetaInfoProvider icomp::IElementStaticInfo iattr::IAttributesMetaInfoProvider istd::IPolymorphic istd::IPolymorphic istd::IChangeable istd::IPolymorphic istd::IChangeable istd::IPolymorphic istd::IPolymorphic icomp::CCompositeComponentStaticInfo icomp::TComponentStaticInfo< Component > icomp::TComponentRegistrator< Component >

Public Types

typedef CComponentStaticInfoBase BaseClass
 
typedef void *(* InterfaceExtractorPtr) (IComponent &component)
 
- Public Types inherited from icomp::IComponentStaticInfo
enum  ComponentType { CT_NONE , CT_REAL , CT_COMPOSITE }
 Specify type of the component realization. More...
 
enum  MetaGroupId { MGI_EMBEDDED_COMPONENTS = IElementStaticInfo::MGI_LAST + 1 , MGI_LAST = MGI_EMBEDDED_COMPONENTS }
 
- Public Types inherited from icomp::IElementStaticInfo
enum  MetaGroupId { MGI_INTERFACES = 0 , MGI_SUBELEMENTS , MGI_LAST = MGI_SUBELEMENTS }
 
typedef QSet< QByteArray > Ids
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

 CBaseComponentStaticInfo (const IRealComponentStaticInfo *baseComponentPtr=NULL)
 
virtual void RegisterInterfaceExtractor (const QByteArray &interfaceName, InterfaceExtractorPtr extractorPtr)
 Register interface ID for this static component info.
 
virtual void RegisterAttributeInfo (const QByteArray &attributeId, const IAttributeStaticInfo *attributeInfoPtr)
 Register static attribute info.
 
virtual void RegisterSubelementInfo (const QByteArray &subcomponentId, const IElementStaticInfo *staticInfoPtr)
 Register static subcomponent info.
 
virtual IComponentUniquePtr CreateComponent () const override
 Create component instance.
 
virtual void * GetComponentInterface (const istd::CClassInfo &interfaceType, IComponent &component, const QByteArray &subId) const override
 Extract instance implemented specified interface from some component.
 
virtual const IAttributeStaticInfoGetAttributeInfo (const QByteArray &attributeId) const override
 Get set of attributes.
 
virtual Ids GetMetaIds (int metaGroupId) const override
 Get list of meta IDs associated with some meta key.
 
virtual const IElementStaticInfoGetSubelementInfo (const QByteArray &subcomponentId) const override
 Return number of interfaces for specific slot.
 
virtual iattr::IAttributesProvider::AttributeIds GetAttributeMetaIds () const override
 Get all IDs of known attribute meta informations.
 
virtual const iattr::IAttributeMetaInfoGetAttributeMetaInfo (const QByteArray &attributeId) const override
 Get property with the given index.
 
- Public Member Functions inherited from icomp::CComponentStaticInfoBase
virtual int GetComponentType () const override
 Get information about component type.
 
virtual const IComponentStaticInfoGetEmbeddedComponentInfo (const QByteArray &embeddedId) const override
 Return number of interfaces for specific slot.
 
virtual const QString & GetDescription () const override
 Get human readable description of this component.
 
virtual const QString & GetKeywords () const override
 Get keywords for this component.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 

Static Public Attributes

static istd::CClassInfo s_compInterfaceType
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Standard implementation of static info for base component classes.

The main difference to 'normal' component static info is, that instances of such components cannot be created.

Definition at line 18 of file CBaseComponentStaticInfo.h.

Member Typedef Documentation

◆ BaseClass

Definition at line 23 of file CBaseComponentStaticInfo.h.

◆ InterfaceExtractorPtr

typedef void *(* icomp::CBaseComponentStaticInfo::InterfaceExtractorPtr) (IComponent &component)

Definition at line 24 of file CBaseComponentStaticInfo.h.

Constructor & Destructor Documentation

◆ CBaseComponentStaticInfo()

icomp::CBaseComponentStaticInfo::CBaseComponentStaticInfo ( const IRealComponentStaticInfo baseComponentPtr = NULL)
explicit

Member Function Documentation

◆ CreateComponent()

virtual IComponentUniquePtr icomp::CBaseComponentStaticInfo::CreateComponent ( ) const
overridevirtual

Create component instance.

Returns
pointer to created component or NULL if this component cannot be created.

Implements icomp::IRealComponentStaticInfo.

Reimplemented in icomp::CCompositeComponentStaticInfo, and icomp::TComponentStaticInfo< Component >.

◆ GetAttributeInfo()

virtual const IAttributeStaticInfo * icomp::CBaseComponentStaticInfo::GetAttributeInfo ( const QByteArray &  attributeId) const
overridevirtual

Get set of attributes.

Reimplemented from icomp::CComponentStaticInfoBase.

◆ GetAttributeMetaIds()

virtual iattr::IAttributesProvider::AttributeIds icomp::CBaseComponentStaticInfo::GetAttributeMetaIds ( ) const
overridevirtual

Get all IDs of known attribute meta informations.

Reimplemented from icomp::CComponentStaticInfoBase.

◆ GetAttributeMetaInfo()

virtual const iattr::IAttributeMetaInfo * icomp::CBaseComponentStaticInfo::GetAttributeMetaInfo ( const QByteArray &  attributeId) const
overridevirtual

Get property with the given index.

Reimplemented from icomp::CComponentStaticInfoBase.

◆ GetComponentInterface()

virtual void * icomp::CBaseComponentStaticInfo::GetComponentInterface ( const istd::CClassInfo interfaceType,
IComponent component,
const QByteArray &  subId 
) const
overridevirtual

Extract instance implemented specified interface from some component.

Implements icomp::IComponentInterfaceExtractor.

◆ GetMetaIds()

virtual Ids icomp::CBaseComponentStaticInfo::GetMetaIds ( int  metaGroupId) const
overridevirtual

Get list of meta IDs associated with some meta key.

See also
MetaGroupId

Reimplemented from icomp::CComponentStaticInfoBase.

◆ GetSubelementInfo()

virtual const IElementStaticInfo * icomp::CBaseComponentStaticInfo::GetSubelementInfo ( const QByteArray &  subcomponentId) const
overridevirtual

Return number of interfaces for specific slot.

Parameters
subcomponentIdID of subcomponent.
See also
GetMetaIds() and MGI_SUBELEMENTS.

Reimplemented from icomp::CComponentStaticInfoBase.

◆ RegisterAttributeInfo()

virtual void icomp::CBaseComponentStaticInfo::RegisterAttributeInfo ( const QByteArray &  attributeId,
const IAttributeStaticInfo attributeInfoPtr 
)
virtual

Register static attribute info.

Parameters
attributeIdID of attribute.
attributeInfoPtrstatic attribute info object used to describe attribute type and as factory. It cannot be NULL.

Referenced by icomp::TAttributeStaticInfo< Attribute >::TAttributeStaticInfo().

◆ RegisterInterfaceExtractor()

virtual void icomp::CBaseComponentStaticInfo::RegisterInterfaceExtractor ( const QByteArray &  interfaceName,
InterfaceExtractorPtr  extractorPtr 
)
virtual

Register interface ID for this static component info.

This interface ID is used for static check if this component can be used to resolve reference dependecy of second one.

Referenced by icomp::TInterfaceRegistrator< Interface >::TInterfaceRegistrator().

◆ RegisterSubelementInfo()

virtual void icomp::CBaseComponentStaticInfo::RegisterSubelementInfo ( const QByteArray &  subcomponentId,
const IElementStaticInfo staticInfoPtr 
)
virtual

Register static subcomponent info.

Parameters
subcomponentIdID of this subcomponent.
componentInfoPtrstatic subcomponent info object used to describe subcomponent type and as factory. It cannot be NULL.

Referenced by icomp::TSubelementStaticInfo< ComponentType >::TSubelementStaticInfo().

Member Data Documentation

◆ s_compInterfaceType

istd::CClassInfo icomp::CBaseComponentStaticInfo::s_compInterfaceType
static

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