Go to the documentation of this file. 1 #ifndef HIVEMIND_BRIDGE_HIVEMINDBRIDGEIMPL_H
2 #define HIVEMIND_BRIDGE_HIVEMINDBRIDGEIMPL_H
14 #include "pheromones/FunctionCallRequestDTO.h"
16 #include <cpp-common/ILogger.h>
20 #include <pheromones/BytesDTO.h>
21 #include <pheromones/HiveMindHostDeserializer.h>
22 #include <pheromones/HiveMindHostSerializer.h>
47 IHiveMindHostSerializer& serializer,
48 IHiveMindHostDeserializer& deserializer,
56 uint32_t keepAliveNbSpin);
62 void onConnect(std::function<
void()> hook);
66 bool onBytesReceived(std::function<
void(uint8_t* bytes, uint64_t bytesLength)> callback);
76 bool sendBytes(uint32_t destinationId,
const uint8_t*
const payload, uint16_t payloadSize);
116 #endif // HIVEMIND_BRIDGE_HIVEMINDBRIDGEIMPL_H
constexpr int DELAY_BRFORE_DROP_S
Definition: HiveMindBridgeImpl.h:26
uint32_t m_swarmAgentID
Definition: HiveMindBridgeImpl.h:105
std::vector< UserCallbackArgumentDescription > CallbackArgsManifest
Definition: Callback.h:11
IMessageHandler & m_messageHandler
Definition: HiveMindBridgeImpl.h:94
std::thread m_inboundThread
Definition: HiveMindBridgeImpl.h:97
bool onBytesReceived(std::function< void(uint8_t *bytes, uint64_t bytesLength)> callback)
Definition: HiveMindBridgeImpl.cpp:115
constexpr int THREAD_SLEEP_MS
Definition: HiveMindBridgeImpl.h:25
std::thread m_outboundThread
Definition: HiveMindBridgeImpl.h:99
Definition: IUserCallbackMap.h:6
bool sendNeighborListUpdateRequest()
Definition: HiveMindBridgeImpl.cpp:296
std::function< std::optional< CallbackReturn >CallbackArgs)> CallbackFunction
Definition: Callback.h:31
IThreadSafeQueue< MessageDTO > & m_inboundQueue
Definition: HiveMindBridgeImpl.h:96
bool queueAndSend(MessageDTO message)
Definition: HiveMindBridgeImpl.cpp:130
Definition: ITCPServer.h:7
void outboundThread()
Definition: HiveMindBridgeImpl.cpp:188
const uint32_t m_keepAliveNbSpin
Definition: HiveMindBridgeImpl.h:106
IHiveMindHostDeserializer & m_deserializer
Definition: HiveMindBridgeImpl.h:88
bool sendBytes(uint32_t destinationId, const uint8_t *const payload, uint16_t payloadSize)
Definition: HiveMindBridgeImpl.cpp:140
Definition: InboundRequestHandle.h:13
IUserCallRequestHandler & m_userCallRequestHandler
Definition: HiveMindBridgeImpl.h:90
bool sendNeighborUpdateRequest(uint16_t neighborId)
Definition: HiveMindBridgeImpl.cpp:287
std::unordered_map< uint32_t, InboundResponseHandle > m_inboundResponsesMap
Definition: HiveMindBridgeImpl.h:103
Definition: HiveMindBridgeImpl.h:29
uint32_t getSwarmAgentId() const
Definition: HiveMindBridgeImpl.cpp:175
bool registerCustomAction(std::string name, CallbackFunction callback, CallbackArgsManifest manifest)
Definition: HiveMindBridgeImpl.cpp:119
std::mutex m_mutex
Definition: HiveMindBridgeImpl.h:100
std::deque< InboundRequestHandle > m_inboundRequestsQueue
Definition: HiveMindBridgeImpl.h:102
IUserCallbackMap & m_userCallbackMap
Definition: HiveMindBridgeImpl.h:93
bool isTCPClientConnected()
Definition: HiveMindBridgeImpl.cpp:235
bool greet()
Definition: HiveMindBridgeImpl.cpp:268
ILogger & m_logger
Definition: HiveMindBridgeImpl.h:85
ITCPServer & m_tcpServer
Definition: HiveMindBridgeImpl.h:87
Definition: IHiveMindHostApiRequestHandler.h:8
IHiveMindHostRequestHandler & m_hmRequestHandler
Definition: HiveMindBridgeImpl.h:91
void spin()
Definition: HiveMindBridgeImpl.cpp:40
uint32_t m_keepAliveCounter
Definition: HiveMindBridgeImpl.h:107
void onDisconnect(std::function< void()> hook)
Definition: HiveMindBridgeImpl.cpp:111
IHiveMindHostSerializer & m_serializer
Definition: HiveMindBridgeImpl.h:89
void sendReturn(InboundRequestHandle &result)
Definition: HiveMindBridgeImpl.cpp:240
void inboundThread()
Definition: HiveMindBridgeImpl.cpp:177
IThreadSafeQueue< OutboundRequestHandle > & m_outboundQueue
Definition: HiveMindBridgeImpl.h:98
Definition: IUserCallRequestHandler.h:7
~HiveMindBridgeImpl()
Definition: HiveMindBridgeImpl.cpp:28
void onConnect(std::function< void()> hook)
Definition: HiveMindBridgeImpl.cpp:107
HiveMindBridgeImpl(ITCPServer &tcpServer, IHiveMindHostSerializer &serializer, IHiveMindHostDeserializer &deserializer, IUserCallRequestHandler &userCallRequestManager, IHiveMindHostRequestHandler &hmRequestHandler, IUserCallbackMap &userCallbackMap, IMessageHandler &messageHandler, IThreadSafeQueue< MessageDTO > &inboundQueue, IThreadSafeQueue< OutboundRequestHandle > &outboundQueue, ILogger &logger, uint32_t keepAliveNbSpin)
Definition: HiveMindBridgeImpl.cpp:5
Definition: IMessageHandler.h:17