6#include <QtNetwork/QUdpSocket>
7#include <QtNetwork/QNetworkDatagram>
10#include <istd/TPointerVector.h>
11#include <ibase/TRuntimeStatusHanderCompWrap.h>
12#include <ilog/TLoggerCompWrap.h>
13#include <istd/TDelPtr.h>
14#include <iprm/IParamsSet.h>
15#include <ifile/IFileNameParam.h>
16#include <imod/CMultiModelDispatcherBase.h>
19#include <imtcom/IServerConnectionInterface.h>
20#include <imtrest/IRequest.h>
21#include <imtrest/IRequestServlet.h>
22#include <imtrest/IProtocolEngine.h>
23#include <imtrest/IResponseDispatcher.h>
24#include <imtrest/IServer.h>
25#include <imtrest/CUdpRequest.h>
37 public ibase::TRuntimeStatusHanderCompWrap<ilog::CLoggerComponentBase>,
38 private imod::CMultiModelDispatcherBase,
44 typedef ibase::TRuntimeStatusHanderCompWrap<ilog::CLoggerComponentBase> BaseClass;
45 typedef imod::CMultiModelDispatcherBase BaseClass2;
50 I_ASSIGN(m_requestHandlerCompPtr,
"RequestHandler",
"Request handler registered for the server",
true,
"RequestHandler");
51 I_ASSIGN(m_protocolEngineCompPtr,
"ProtocolEngine",
"Protocol engine used in the server",
true,
"ProtocolEngine");
52 I_ASSIGN(m_startServerOnCreateAttrPtr,
"StartServerOnCreate",
"If enabled, the server will be started on after component creation",
true,
true);
53 I_ASSIGN(m_serverConnnectionInterfaceCompPtr,
"ServerInterface",
"Parameter providing the server connection interface to be listened",
true,
"ServerInterface");
59 imtrest::IRequestServlet* GetRequestServlet();
60 int GetThreadsLimit();
64 virtual void OnModelChanged(
int modelId,
const istd::IChangeable::ChangeSet& changeSet)
override;
67 virtual void OnSystemShutdown()
override;
70 virtual void OnComponentCreated()
override;
73 virtual bool SendResponse(
const QByteArray& requestId, ConstResponsePtr& response)
const override;
74 virtual bool SendRequest(
const QByteArray& requestId, ConstRequestPtr& request)
const override;
77 virtual bool StartServer()
override;
78 virtual bool StopServer()
override;
79 virtual ServerStatus GetServerStatus()
const override;
82 bool StartListening(
const QHostAddress& address = QHostAddress::Any, quint16 port = 0);
83 bool EnsureServerStarted();
86 void ReadPendingDatagrams();
87 void SendedResponse(QByteArray);
90 I_REF(imtrest::IRequestServlet, m_requestHandlerCompPtr);
94 I_ATTR(
bool, m_startServerOnCreateAttrPtr);
96 QUdpSocket m_udpSocket;
98 typedef istd::TPointerVector<CUdpRequest> Requests;
101 bool m_isInitialized =
false;
Interface for describing server connection configuration with multi-protocol support.