ImagingTools Core SDK
CSettingsControllerComp.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// ImtCore includes
6#include <imtcom/IServerConnectionInterface.h>
7#include <imtauth/IUserSettings.h>
8#include <imtserverapp/IJsonRepresentationController.h>
9#include <imtbase/IObjectCollection.h>
10#include <GeneratedFiles/imtbasesdl/SDL/1.0/CPP/Settings.h>
11
12
13namespace imtservergql
14{
15
16
17class CSettingsControllerComp: public sdl::imtbase::Settings::CGraphQlHandlerCompBase
18{
19public:
20 typedef sdl::imtbase::Settings::CGraphQlHandlerCompBase BaseClass;
21
22 I_BEGIN_COMPONENT(CSettingsControllerComp);
23 I_ASSIGN(m_userSettingsRepresentationControllerCompPtr, "UserSettingsRepresentationController", "Controller for user related data model representation", true, "RepresentationController");
24 I_ASSIGN(m_userSettingsCollectionCompPtr, "UserSettingsCollection", "User settings collection", true, "UserSettingsCollection");
25 I_ASSIGN(m_serverInterfaceCompPtr, "ServerConnectionInterface", "Server connection interface", true, "ServerConnectionInterface");
26 I_ASSIGN(m_userSettingsInfoFactCompPtr, "UserSettingsFactory", "Factory used for creation of the new user settings instance", true, "UserSettingsFactory");
27 I_ASSIGN(m_styleFileNamePrefixAttrPtr, "StyleFileNamePrefix", "Style file name prefix", false, "");
28 I_END_COMPONENT;
29
30protected:
31 // reimplemented (sdl::imtbase::Settings::CGraphQlHandlerCompBase)
32 virtual sdl::imtbase::Settings::CSetSettingsPayload OnSetSettings(
33 const sdl::imtbase::Settings::CSetSettingsGqlRequest& setSettingsRequest,
34 const ::imtgql::CGqlRequest& gqlRequest,
35 QString& errorMessage) const override;
36 virtual sdl::imtbase::ImtBaseTypes::CParamsSet OnGetSettings(
37 const sdl::imtbase::Settings::CGetSettingsGqlRequest& getSettingsRequest,
38 const ::imtgql::CGqlRequest& gqlRequest,
39 QString& errorMessage) const override;
40 virtual sdl::imtbase::Settings::CStyleData OnGetStyleData(
41 const sdl::imtbase::Settings::CGetStyleDataGqlRequest& getStyleRequest,
42 const ::imtgql::CGqlRequest& gqlRequest,
43 QString& errorMessage) const override;
44 virtual sdl::imtbase::ImtBaseTypes::CUrlParam OnGetWebSocketUrl(
45 const sdl::imtbase::Settings::CGetWebSocketUrlGqlRequest& getWebSocketUrlRequest,
46 const ::imtgql::CGqlRequest& gqlRequest,
47 QString& errorMessage) const override;
48
49private:
50 imtauth::IUserSettingsSharedPtr GetOrCreateUserSettings(const QByteArray& userId) const;
51 bool SetUserSettings(const QByteArray& userId, const imtauth::IUserSettings& userSettings) const;
52
53protected:
54 I_REF(imtserverapp::IJsonRepresentationController, m_userSettingsRepresentationControllerCompPtr);
55 I_REF(imtbase::IObjectCollection, m_userSettingsCollectionCompPtr);
56 I_REF(imtcom::IServerConnectionInterface, m_serverInterfaceCompPtr);
57 I_ATTR(QString, m_styleFileNamePrefixAttrPtr);
58 I_FACT(imtauth::IUserSettings, m_userSettingsInfoFactCompPtr);
59};
60
61
62} // namespace imtservergql
63
64
Interface for describing server connection configuration with multi-protocol support.