Conscience Core
CscMessagingRequestContext.h
Go to the documentation of this file.
1 #ifndef CscMessagingRequestContext_H_
2 #define CscMessagingRequestContext_H_
3 
4 #include "CscCommon.h"
5 #include "TcpClient.h"
6 
7 #define ENTITY_PORT_UDP_DEFAULT 1705
8 #define ENTITY_PORT_TCP_DEFAULT 1805
9 #define ENGINE_PORT_UDP_DEFAULT 1707
10 #define ENGINE_PORT_TCP_DEFAULT 1807
11 #define MESSAGE_META_PARAM_UDP_RESPONSE_PORT "udpP"
12 #define MESSAGE_META_PARAMS_SEPARATOR ":|:"
13 
15  typedef unsigned int CscMessagingPort;
16 
18  UDP = 0,
19  TCP = 1
20  };
21 
23  public:
24  string getRemoteIp() const;
26 
28  void setRemotePortForUdp(CscMessagingPort remotePort);
29 
31  void setRemoteUdpClientId(optional<string> remoteUdpClientId);
32 
33  TcpClient *getTcpClient() const;
34 
35  static ptr<CscMessagingRequestContext> forUdp(const string &remoteIp, CscMessagingPort remotePort);
37  static ptr<CscMessagingRequestContext> forTcp(const string &remoteIpAddress, CscMessagingPort remotePort);
38 
40 
41  operator string() const;
42  string toString() const;
43 
47  bool shouldAutoCloseAfterResponse() const;
48 
53  void setAutoCloseAfterResponse(bool enabled);
54 
56 
57  optional<unsigned> sendTimoutSeconds = {};
58 
62  ptr<bool> destroyed = nullptr;
63 
64  private:
65  CscMessagingRequestContext(const string &remoteIp, CscMessagingPort remotePort, CscMessagingProtocol protocol, TcpClient *tcpClient);
66 
67  bool autoCloseAfterResponse = true;
68  string remoteIp;
70  CscMessagingPort remotePort;
71  optional<string> remoteUdpClientId = {};
72  TcpClient *tcpClient = nullptr;
73  };
74 }
75 
76 #endif
conscience_core::communication::UDP
@ UDP
Definition: CscMessagingRequestContext.h:18
conscience_core::communication::CscMessagingRequestContext::getRemotePort
CscMessagingPort getRemotePort() const
Definition: CscMessagingRequestContext.cpp:35
conscience_core::communication::CscMessagingRequestContext::~CscMessagingRequestContext
~CscMessagingRequestContext()
Definition: CscMessagingRequestContext.cpp:9
conscience_core::communication::CscMessagingRequestContext::getProtocol
CscMessagingProtocol getProtocol() const
Definition: CscMessagingRequestContext.cpp:32
conscience_core::communication::TCP
@ TCP
Definition: CscMessagingRequestContext.h:19
conscience_core::communication::CscMessagingRequestContext::lastCommandResponse
optional< string > lastCommandResponse
Definition: CscMessagingRequestContext.h:55
conscience_core::communication::TcpClient
Definition: TcpClient.h:20
conscience_core::communication::CscMessagingRequestContext::getRemoteIp
string getRemoteIp() const
Definition: CscMessagingRequestContext.cpp:29
conscience_core::communication::CscMessagingRequestContext::destroyed
ptr< bool > destroyed
Definition: CscMessagingRequestContext.h:62
conscience_core::communication::CscMessagingRequestContext::setRemoteUdpClientId
void setRemoteUdpClientId(optional< string > remoteUdpClientId)
Definition: CscMessagingRequestContext.cpp:44
conscience_core::communication::CscMessagingRequestContext::setAutoCloseAfterResponse
void setAutoCloseAfterResponse(bool enabled)
Definition: CscMessagingRequestContext.cpp:66
TcpClient.h
conscience_core::communication::CscMessagingRequestContext::sendTimoutSeconds
optional< unsigned > sendTimoutSeconds
Definition: CscMessagingRequestContext.h:57
CscCommon.h
conscience_core::communication::CscMessagingRequestContext
Definition: CscMessagingRequestContext.h:22
conscience_core::communication::CscMessagingProtocol
CscMessagingProtocol
Definition: CscMessagingRequestContext.h:17
conscience_core::communication::CscMessagingRequestContext::shouldAutoCloseAfterResponse
bool shouldAutoCloseAfterResponse() const
Definition: CscMessagingRequestContext.cpp:62
conscience_core::communication::CscMessagingRequestContext::setRemotePortForUdp
void setRemotePortForUdp(CscMessagingPort remotePort)
Definition: CscMessagingRequestContext.cpp:38
conscience_core::communication
Definition: CscEntityClient.h:6
conscience_core::communication::CscMessagingRequestContext::forTcp
static ptr< CscMessagingRequestContext > forTcp(TcpClient *tcpClient)
Definition: CscMessagingRequestContext.cpp:20
conscience_core::communication::CscMessagingRequestContext::getTcpClient
TcpClient * getTcpClient() const
Definition: CscMessagingRequestContext.cpp:47
conscience_core::communication::CscMessagingPort
unsigned int CscMessagingPort
Definition: CscMessagingRequestContext.h:15
conscience_core::communication::CscMessagingRequestContext::toString
string toString() const
Definition: CscMessagingRequestContext.cpp:55
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
conscience_core::communication::CscMessagingRequestContext::getRemoteUdpClientId
optional< string > getRemoteUdpClientId() const
Definition: CscMessagingRequestContext.cpp:41
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::communication::CscMessagingRequestContext::forUdp
static ptr< CscMessagingRequestContext > forUdp(const string &remoteIp, CscMessagingPort remotePort)
Definition: CscMessagingRequestContext.cpp:16