HiveMindBridge
IHiveMindBridge.h
Go to the documentation of this file.
1 #ifndef HIVEMIND_BRIDGE_IHIVEMINDBRIDGE_H
2 #define HIVEMIND_BRIDGE_IHIVEMINDBRIDGE_H
3 
4 #include "IMessageHandler.h"
6 #include "pheromones/PheromonesSettings.h"
7 #include <string.h>
8 
15  public:
16  static constexpr uint16_t NEIGHBORS_MAX_SIZE = NEIGHBORS_LIST_SIZE;
17 
21  virtual void spin() = 0;
22 
27  virtual void onConnect(std::function<void()> callback) = 0;
28 
33  virtual void onDisconnect(std::function<void()> callback) = 0;
34 
42  virtual bool onBytesReceived(
43  std::function<void(uint8_t* bytes, uint64_t bytesLength)> callback) = 0;
44 
50  virtual bool onNeighborListUpdated(std::function<void(std::array<uint16_t, NEIGHBORS_MAX_SIZE>,
51  uint64_t bytesLength)> callback) = 0;
52 
58  virtual bool onNeighborUpdated(
59  std::function<void(uint16_t neighborId, std::optional<Position> position)> callback) = 0;
60 
71  virtual bool registerCustomAction(std::string name,
72  CallbackFunction callback,
73  CallbackArgsManifest manifest) = 0;
74 
84  virtual bool registerCustomAction(std::string name, CallbackFunction callback) = 0;
85 
91  virtual bool queueAndSend(MessageDTO message) = 0;
92 
100  virtual bool sendBytes(uint32_t destinationId,
101  const uint8_t* const payload,
102  uint16_t payloadSize) = 0;
103 
111  virtual bool sendNeighborUpdateRequest(uint16_t neighborId) = 0;
112 
119  virtual bool sendNeighborListUpdateRequest() = 0;
120 };
121 
122 #endif // HIVEMIND_BRIDGE_IHIVEMINDBRIDGE_H
CallbackArgsManifest
std::vector< UserCallbackArgumentDescription > CallbackArgsManifest
Definition: Callback.h:11
IHiveMindBridge
Definition: IHiveMindBridge.h:14
IHiveMindBridge::onBytesReceived
virtual bool onBytesReceived(std::function< void(uint8_t *bytes, uint64_t bytesLength)> callback)=0
IHiveMindBridge::sendNeighborUpdateRequest
virtual bool sendNeighborUpdateRequest(uint16_t neighborId)=0
CallbackFunction
std::function< std::optional< CallbackReturn >CallbackArgs)> CallbackFunction
Definition: Callback.h:31
IHiveMindBridge::queueAndSend
virtual bool queueAndSend(MessageDTO message)=0
IHiveMindBridge::sendBytes
virtual bool sendBytes(uint32_t destinationId, const uint8_t *const payload, uint16_t payloadSize)=0
IHiveMindBridge::sendNeighborListUpdateRequest
virtual bool sendNeighborListUpdateRequest()=0
IHiveMindBridge::spin
virtual void spin()=0
HiveMindHostApiResponseHandler.h
IHiveMindBridge::onNeighborUpdated
virtual bool onNeighborUpdated(std::function< void(uint16_t neighborId, std::optional< Position > position)> callback)=0
IHiveMindBridge::onConnect
virtual void onConnect(std::function< void()> callback)=0
IHiveMindBridge::onNeighborListUpdated
virtual bool onNeighborListUpdated(std::function< void(std::array< uint16_t, NEIGHBORS_MAX_SIZE >, uint64_t bytesLength)> callback)=0
IHiveMindBridge::onDisconnect
virtual void onDisconnect(std::function< void()> callback)=0
IMessageHandler.h
IHiveMindBridge::NEIGHBORS_MAX_SIZE
static constexpr uint16_t NEIGHBORS_MAX_SIZE
Definition: IHiveMindBridge.h:16
IHiveMindBridge::registerCustomAction
virtual bool registerCustomAction(std::string name, CallbackFunction callback, CallbackArgsManifest manifest)=0