Go to the documentation of this file. 1 #ifndef HIVEMIND_BRIDGE_HIVEMINDBRIDGE_H
2 #define HIVEMIND_BRIDGE_HIVEMINDBRIDGE_H
14 #include <cpp-common/ILogger.h>
16 #include <pheromones/HiveMindHostDeserializer.h>
17 #include <pheromones/HiveMindHostSerializer.h>
28 HiveMindBridge(
int tcpPort, ILogger& logger, uint32_t keepAliveNbSpin = 0);
34 void onConnect(std::function<
void()> hook);
39 std::function<
void(uint8_t* bytes, uint64_t bytesLength)> callback)
override;
42 uint64_t bytesLength)> callback);
45 std::function<
void(uint16_t neighborId, std::optional<Position> position)> callback);
55 bool sendBytes(uint32_t destinationId,
const uint8_t*
const payload, uint16_t payloadSize);
76 #endif // HIVEMIND_BRIDGE_HIVEMINDBRIDGE_H
HiveMindBridge(int tcpPort, ILogger &logger, uint32_t keepAliveNbSpin=0)
Definition: HiveMindBridge.cpp:3
std::vector< UserCallbackArgumentDescription > CallbackArgsManifest
Definition: Callback.h:11
Definition: UserCallbackMap.h:7
void onDisconnect(std::function< void()> hook)
Definition: HiveMindBridge.cpp:28
UserCallbackMap m_userCallbackMap
Definition: HiveMindBridge.h:66
HiveMindHostApiRequestHandler m_hmRequestHandler
Definition: HiveMindBridge.h:68
UserCallRequestHandler m_userCallRequestHandler
Definition: HiveMindBridge.h:67
bool queueAndSend(MessageDTO message)
Definition: HiveMindBridge.cpp:54
bool onBytesReceived(std::function< void(uint8_t *bytes, uint64_t bytesLength)> callback) override
Definition: HiveMindBridge.cpp:30
Definition: HiveMindHostApiRequestHandler.h:10
Definition: HiveMindBridge.h:19
Definition: IHiveMindBridge.h:14
ThreadSafeQueue< MessageDTO > m_inboundQueue
Definition: HiveMindBridge.h:71
Definition: UserCallRequestHandler.h:10
std::function< std::optional< CallbackReturn >CallbackArgs)> CallbackFunction
Definition: Callback.h:31
Definition: MessageHandler.h:13
bool sendNeighborUpdateRequest(uint16_t neighborId)
Definition: HiveMindBridge.cpp:62
bool onNeighborListUpdated(std::function< void(std::array< uint16_t, NEIGHBORS_MAX_SIZE >, uint64_t bytesLength)> callback)
Definition: HiveMindBridge.cpp:34
bool onNeighborUpdated(std::function< void(uint16_t neighborId, std::optional< Position > position)> callback)
Definition: HiveMindBridge.cpp:39
MessageHandler m_messageHandler
Definition: HiveMindBridge.h:70
Definition: HiveMindHostApiResponseHandler.h:11
Definition: HiveMindBridgeImpl.h:29
bool registerCustomAction(std::string name, CallbackFunction callback, CallbackArgsManifest manifest)
Definition: HiveMindBridge.cpp:44
HiveMindHostDeserializer m_deserializer
Definition: HiveMindBridge.h:64
ThreadSafeQueue< OutboundRequestHandle > m_outboundQueue
Definition: HiveMindBridge.h:72
void onConnect(std::function< void()> hook)
Definition: HiveMindBridge.cpp:26
Definition: TCPServer.h:15
HiveMindHostSerializer m_serializer
Definition: HiveMindBridge.h:65
HiveMindBridgeImpl m_bridge
Definition: HiveMindBridge.h:73
bool sendBytes(uint32_t destinationId, const uint8_t *const payload, uint16_t payloadSize)
Definition: HiveMindBridge.cpp:56
bool sendNeighborListUpdateRequest()
Definition: HiveMindBridge.cpp:66
void spin()
Definition: HiveMindBridge.cpp:24
HiveMindHostApiResponseHandler m_hmResponseHandler
Definition: HiveMindBridge.h:69
ILogger & m_logger
Definition: HiveMindBridge.h:62
TCPServer m_tcpServer
Definition: HiveMindBridge.h:63
~HiveMindBridge()=default