6#include <imtdoc/IDocumentManager.h>
7#include <imtdoc/IDocumentManagerEventHandler.h>
8#include <imtservergql/CGqlPublisherCompBase.h>
11#include <GeneratedFiles/imtbasesdl/SDL/1.0/CPP/CollectionDocumentManager.h>
18class CCollectionDocumentManagerPublisherComp:
19 public CGqlPublisherCompBase,
20 virtual public imtdoc::IDocumentManagerEventHandler
23 typedef CGqlPublisherCompBase BaseClass;
25 I_BEGIN_COMPONENT(CCollectionDocumentManagerPublisherComp)
26 I_REGISTER_INTERFACE(imtdoc::IDocumentManagerEventHandler)
27 I_ASSIGN(m_collectionIdAttrPtr,
"CollectionId",
"Collection ID",
true,
"DummyCollection");
32 virtual bool IsRequestSupported(
const imtgql::CGqlRequest& gqlRequest)
const override;
35 virtual bool ProcessEvent(imtdoc::CEventBase* eventPtr)
override;
38 virtual bool OnDocumentCreated(imtdoc::CEventBase* eventPtr)
const;
39 virtual bool OnDocumentOpened(imtdoc::CEventBase* eventPtr)
const;
40 virtual bool OnDocumentRenamed(imtdoc::CEventBase* eventPtr)
const;
41 virtual bool OnDocumentChanged(imtdoc::CEventBase* eventPtr)
const;
42 virtual bool OnDocumentUndoRedoChanged(imtdoc::CEventBase* eventPtr)
const;
43 virtual bool OnDocumentSaved(imtdoc::CEventBase* eventPtr)
const;
44 virtual bool OnDocumentSavedAs(imtdoc::CEventBase* eventPtr)
const;
45 virtual bool OnDocumentClosed(imtdoc::CEventBase* eventPtr)
const;
46 virtual bool OnDocumentDataLoaded(imtdoc::CEventBase* eventPtr)
const;
49 void FillDocumentNotification(
50 const imtdoc::CEventBase* eventPtr,
51 imtdoc::IDocumentManager::DocumentNotification& notification)
const;
52 void FillSdlNotification(
53 const imtdoc::IDocumentManager::DocumentNotification& notification,
54 sdl::imtbase::CollectionDocumentManager::EDocumentOperation operation,
55 sdl::imtbase::CollectionDocumentManager::CDocumentManagerNotification::V1_0& sdlNotification)
const;
56 QByteArray ConvertUrlToObjectId(
const QUrl& url)
const;
57 QByteArray GetCommandId()
const;
59 template<
class Representation>
60 void PublishRepresentation(
61 const QByteArray& commandId,
62 const QByteArray& userId,
63 const Representation& representation)
const;
66 I_ATTR(QByteArray, m_collectionIdAttrPtr);
72template<
class Representation>
73void CCollectionDocumentManagerPublisherComp::PublishRepresentation(
74 const QByteArray& commandId,
75 const QByteArray& userId,
76 const Representation& representation)
const
78 QJsonObject jsonObject;
79 if (!representation.WriteToJsonObject(jsonObject)){
83 QJsonDocument jsonDoc;
84 jsonDoc.setObject(jsonObject);
86 QByteArray data = jsonDoc.toJson(QJsonDocument::Compact);
88 for (
const RequestNetworks& networkRequest : m_registeredSubscribers){
89 if (!userId.isEmpty()){
91 if (contextPtr !=
nullptr){
93 if (userInfoPtr !=
nullptr){
94 if (userInfoPtr->
GetId() != userId){
101 if (commandId == networkRequest.gqlRequest.GetCommandId()){
102 PublishData(commandId, data);
virtual QByteArray GetId() const =0