ImagingTools Core SDK
CConnectionCollectionComp.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
5// ACF includes
6#include <ilog/TLoggerCompWrap.h>
7#include <ilog/ITracingConfiguration.h>
8#include <ibase/IApplicationInfo.h>
9
10// ImtCore includes
11#include <imtbase/TAggergatedObjectCollectionWrap.h>
12#include <imtservice/IConnectionCollection.h>
13#include <imtcom/IServerConnectionInterface.h>
14
15
16namespace imtservice
17{
18
19
20class CConnectionCollectionComp:
21 public ilog::CLoggerComponentBase,
22 virtual public IConnectionCollection
23{
24public:
25 typedef ilog::CLoggerComponentBase BaseClass;
26
27 I_BEGIN_COMPONENT(CConnectionCollectionComp);
28 I_REGISTER_INTERFACE(imtservice::IConnectionCollection);
29 I_ASSIGN(m_applicationInfoCompPtr, "ApplicationInfo", "Application info of the service", true, "ApplicationInfo");
30 I_ASSIGN(m_serviceTypeId, "ServiceTypeId", "Service type ID for service", true, "");
31 I_ASSIGN_MULTI_0(m_connectionNames, "ConnectionNames", "Connection names", true);
32 I_ASSIGN_MULTI_0(m_connectionServiceTypeIds, "ConnectionServiceTypeIds", "Service type IDs for connections", true);
33 I_ASSIGN_MULTI_0(m_connectionDescriptions, "ConnectionDescriptions", "Service connection descriptions", true);
34 I_ASSIGN_MULTI_0(m_connectionTypes, "ConnectionTypes", "Service connection types: 0 - input, 1 - output", true);
35 I_ASSIGN_MULTI_0(m_serverInterfaceListCompPtr, "ServerInterfaces", "List of server connection interfaces", true);
36 I_ASSIGN(m_tracingConfigurationCompPtr, "TracingConfiguration", "Tracing configuration of verbose messages", true, "TracingConfiguration");
37 I_END_COMPONENT;
38
39 // reimplemented (imtservice::IConnectionCollection)
40 virtual QString GetServiceVersion() const override;
41 virtual QString GetServiceTypeId() const override;
42 virtual bool SetServiceTypeId(const QString& serviceTypeName) const override;
43 virtual const imtbase::ICollectionInfo* GetServerConnectionList() const override;
44 virtual const imtcom::IServerConnectionInterface* GetServerConnection(const QByteArray& id) const override;
45 virtual const IServiceConnectionInfo* GetConnectionMetaInfo(const QByteArray& id) const override;
46 virtual bool SetServerConnectionInterface(const QByteArray& id, const imtcom::IServerConnectionInterface& connectionInterface) override;
47 virtual QByteArray InsertNewConnection(
48 const QByteArray& connectionId,
49 const QUrl& url,
50 IServiceConnectionInfo::ConnectionType connectionType,
51 const QString& name = QString(),
52 const QString& description = QString() ) override;
53
54 // reimplemented (ilog::ITracingConfiguration)
55 virtual int GetTracingLevel() const override;
56 virtual void SetTracingLevel(int tracingLevel) override;
57
58protected:
59 // reimplemented (icomp::CComponentBase)
60 virtual void OnComponentCreated() override;
61
62private:
63 I_REF(ibase::IApplicationInfo, m_applicationInfoCompPtr);
64 I_ATTR(QByteArray, m_serviceTypeId);
65 I_MULTIATTR(QByteArray, m_connectionNames);
66 I_MULTIATTR(QByteArray, m_connectionServiceTypeIds);
67 I_MULTIATTR(QByteArray, m_connectionDescriptions);
68 I_MULTIATTR(int, m_connectionTypes);
69 I_MULTIREF(imtcom::IServerConnectionInterface, m_serverInterfaceListCompPtr);
70 I_REF(ilog::ITracingConfiguration, m_tracingConfigurationCompPtr);
71
72 imtbase::CObjectCollection m_collection;
73};
74
75
76} // namespace imtservice
77
78
79
Interface for describing server connection configuration with multi-protocol support.