6#include <QtCore/QVector>
8#include <QtCore/QMutex>
44 template <
typename MessageType>
82 int messageCategory = -1,
106 typedef QVector<IHierarchicalMessageContainer*>
Childs;
117template <
typename MessageType>
120 QByteArray realTypeId = messageTypeId;
122 if (realTypeId.isEmpty()){
123 realTypeId = istd::CClassInfo::GetName<MessageType>();
132#define I_REGISTER_MESSAGE_TYPE(messageType, messageTypeId)\
133 static struct DefaultMessageTypesRegistrator_##messageType\
135 DefaultMessageTypesRegistrator_##messageType()\
137 ilog::CMessageContainer::RegisterMessageType<messageType>(messageTypeId);\
139} s_defaultMessageTypesRegistrator_##messageType;
Basic implementation of a message container.
int GetMessagesCount() const
Get the number of messages in the container.
virtual bool IsMessageSupported(int messageCategory=-1, int messageId=-1, const istd::IInformationProvider *messagePtr=NULL) const override
Check if a message is supported by this consumer.
void SetSlaveConsumer(ilog::IMessageConsumer *consumerPtr)
Set slave message consumer.
virtual bool ResetData(CompatibilityMode mode) override
Reset data to its default state.
virtual istd::IInformationProvider::InformationCategory GetWorstCategory() const override
virtual bool Serialize(iser::IArchive &archive) override
virtual void AddChildContainer(IHierarchicalMessageContainer *childContainerPtr)
Add a child message container to this object.
static bool RegisterMessageType(const QByteArray &messageTypeId=QByteArray())
Register a new message type.
CMessageContainer & operator=(const CMessageContainer &container)
virtual int GetSupportedOperations() const override
Get set of flags for supported operations.
virtual IHierarchicalMessageContainer * GetChild(int index) const override
ilog::IMessageConsumer * m_slaveConsumerPtr
void SetMaxMessageCount(int maxMessageCount=-1)
Set maximal number of messages in the container.
virtual void AddMessage(const IMessageConsumer::MessagePtr &messagePtr) override
Adds a message to this consumer.
virtual istd::TUniqueInterfacePtr< istd::IChangeable > CloneMe(CompatibilityMode mode=CM_WITHOUT_REFS) const override
Make a copy of this object.
virtual int GetChildsCount() const override
QVector< IHierarchicalMessageContainer * > Childs
CMessageContainer(const CMessageContainer &container)
virtual bool CopyFrom(const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
Copy this object from another one.
virtual Messages GetMessages() const override
virtual bool IsEqual(const istd::IChangeable &object) const override
Compare this object with another object.
virtual void ClearMessages() override
Common interface for a message container consuming information objects (messages).
Represents an input/output persistence archive for object serialization.
Common interface for data model objects, which can be changed.
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Standard generic implementation of the composed factory.
bool RegisterFactory(const QByteArray &typeId)
Template based implementation of a hierarchical object.
Common interface to define the hierarchical graph structures.
Shared ownership smart pointer for interface types.
Template based object factory interface.
Unique ownership smart pointer for interface types.
This namespace contains implementations for the logging functionality.