ImagingTools Core SDK
CServerDispatcherComp.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 <icomp/CComponentBase.h>
7
8// ImtCore includes
9#include <imtrest/IServer.h>
10#include <imtcom/IServerDispatcher.h>
11
12
13namespace imtcom
14{
15
16
374class CServerDispatcherComp: public icomp::CComponentBase, virtual public imtcom::IServerDispatcher
375{
376public:
377 typedef icomp::CComponentBase BaseClass;
378
379 I_BEGIN_COMPONENT(CServerDispatcherComp);
380 I_REGISTER_INTERFACE(imtcom::IServerDispatcher);
381 I_ASSIGN(m_httpServerCompPtr, "HttpServer", "HTTP server", false, "HttpServer");
382 I_ASSIGN(m_wsServerCompPtr, "WebSocketServer", "Web socket server", false, "WebSocketServer");
383 I_END_COMPONENT;
384
385protected:
386 // reimplemented (imtcom/CServerConnectionInterfaceParam)
387 virtual bool StartServer(IServerConnectionInterface::ProtocolType protocolType) override;
388 virtual bool StopServer(IServerConnectionInterface::ProtocolType protocolType) override;
389 virtual imtrest::IServer::ServerStatus GetServerStatus(IServerConnectionInterface::ProtocolType protocolType) const override;
390 virtual IServerConnectionInterface::ProtocolTypes GetSupportedProtocols() const override;
391
392private:
393 I_REF(imtrest::IServer, m_httpServerCompPtr);
394 I_REF(imtrest::IServer, m_wsServerCompPtr);
395};
396
397
398} // namespace imtcom
399
400
ACF component implementing multi-protocol server dispatch for HTTP and WebSocket.
ProtocolType
Communication protocols supported by server connections.
QList< ProtocolType > ProtocolTypes
List of protocol types for querying supported protocols.
Interface for managing the lifecycle of multi-protocol servers.
Server Communication and Connection Management Module.