ImagingTools Core SDK
CMessageDbDelegateComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4// ImtCore includes
5#include <imtchat/IChatMessage.h>
6#include <imtdb/CSqlDatabaseObjectDelegateCompBase.h>
7
8
9namespace imtchatdb
10{
11
12
13class CMessageDbDelegateComp: public imtdb::CSqlDatabaseObjectDelegateCompBase
14{
15public:
16 typedef imtdb::CSqlDatabaseObjectDelegateCompBase BaseClass;
17
18 I_BEGIN_COMPONENT(CMessageDbDelegateComp)
19 I_ASSIGN(m_messageFactCompPtr, "MessageFactory", "Factory used for creation of new message instances", true, "MessageFactory");
20 I_END_COMPONENT
21
22 // reimplemented (imtdb::ISqlDatabaseObjectDelegate)
23 virtual istd::IChangeableUniquePtr CreateObjectFromRecord(
24 const QSqlRecord& record,
25 const iprm::IParamsSet* dataConfigurationPtr = nullptr) const override;
26 virtual NewObjectQuery CreateNewObjectQuery(
27 const QByteArray& typeId,
28 const QByteArray& proposedObjectId,
29 const QString& objectName,
30 const QString& objectDescription,
31 const istd::IChangeable* valuePtr,
32 const imtbase::IOperationContext* operationContextPtr) const override;
33 virtual QByteArray CreateUpdateObjectQuery(
34 const imtbase::IObjectCollection& collection,
35 const QByteArray& objectId,
36 const istd::IChangeable& object,
37 const imtbase::IOperationContext* operationContextPtr,
38 bool useExternDelegate = true) const override;
39 virtual QByteArray CreateDeleteObjectsQuery(
40 const imtbase::IObjectCollection& collection,
41 const QByteArrayList& objectIds,
42 const imtbase::IOperationContext* operationContextPtr) const override;
43 virtual QByteArray CreateDeleteObjectSetQuery(
44 const imtbase::IObjectCollection& collection,
45 const iprm::IParamsSet* paramsPtr = nullptr,
46 const imtbase::IOperationContext* operationContextPtr = nullptr) const override;
47 virtual QByteArray CreateRenameObjectQuery(
48 const imtbase::IObjectCollection& collection,
49 const QByteArray& objectId,
50 const QString& newObjectName,
51 const imtbase::IOperationContext* operationContextPtr) const override;
52 virtual QByteArray CreateDescriptionObjectQuery(
53 const imtbase::IObjectCollection& collection,
54 const QByteArray& objectId,
55 const QString& description,
56 const imtbase::IOperationContext* operationContextPtr) const override;
57
58 // reimplemented (icomp::CComponentBase)
59 virtual void OnComponentCreated() override;
60
61protected:
62 // reimplemented (imtdb::CSqlDatabaseObjectDelegateCompBase)
63 virtual idoc::MetaInfoPtr CreateObjectMetaInfo(const QByteArray& typeId) const override;
64 virtual bool SetObjectMetaInfoFromRecord(const QSqlRecord& record, idoc::IDocumentMetaInfo& metaInfo) const override;
65
66private:
67 I_FACT(imtchat::IChatMessage, m_messageFactCompPtr);
68};
69
70
71} // namespace imtchatdb
virtual QByteArray CreateDeleteObjectsQuery(const imtbase::IObjectCollection &collection, const imtbase::ICollectionInfo::Ids &objectIds, const imtbase::IOperationContext *operationContextPtr) const =0
Creates SQL query for deleting objects.
Chat Database Persistence Layer Module.