8 #include "logging/LoggerFactory.h"
22 Peer(std::shared_ptr<IDiarkisP2P> p2p);
29 void RegisterSchedulerAddNotifyEvent(std::function<
void(
void*,
void*)> lambda);
30 std::shared_ptr<IDiarkisP2P>
GetDiarkisP2P()
const {
return diarkisP2P_; }
33 std::shared_ptr<IDiarkisP2P> diarkisP2P_;
35 std::mutex eventMutex_;
77 virtual void SetupP2P(
const std::shared_ptr<IDiarkisUdp>& udp,
const std::shared_ptr<LoggerFactory>& loggerFactory,
const char* uid);
99 virtual void ConnectClient(
const char* uid,
const char** address,
size_t addressCount,
size_t timeoutInMilliseconds = 5000,
bool bBuffering =
true);
107 virtual void ConnectClient(
const std::string& uid,
const std::vector<std::string>& address,
size_t timeoutInMilliseconds = 5000,
bool bBuffering =
true);
130 SetEncryptionKeys(
bool bEncryption,
const uint8_t* key,
size_t keySize,
const uint8_t* iv,
size_t ivSize,
const uint8_t* mkey,
size_t mkeySize);
138 virtual void SetEncryptionKeys(
bool bEncryption,
const std::vector<uint8_t>& key,
const std::vector<uint8_t>& iv,
const std::vector<uint8_t>& mkey);
158 virtual uint16_t SendUnicast(
const uint8_t* payload,
size_t payloadSize,
RudpType type,
const char* uid);
166 virtual uint16_t SendUnicast(
const uint8_t* payload,
size_t payloadSize,
RudpType type,
const std::string& uid);
174 virtual uint16_t SendUnicast(
const std::vector<uint8_t>& payload,
RudpType type,
const std::string& uid);
196 virtual uint16_t SendMulticast(
const uint8_t* payload,
size_t payloadSize,
RudpType type,
const char** uids,
size_t uidsLen);
204 virtual uint16_t SendMulticast(
const uint8_t* payload,
size_t payloadSize,
RudpType type,
const std::vector<std::string>& uid);
212 virtual uint16_t SendMulticast(
const std::vector<uint8_t>& payload,
RudpType type,
const std::vector<std::string>& uid);
230 virtual uint16_t SendBroadcast(
const uint8_t* payload,
size_t payloadSize,
RudpType type);
238 virtual uint16_t SendBroadcast(
const std::vector<uint8_t>& payload,
RudpType type);
262 bool Disconnect(
const char* uid);
278 void SetSchedulerAddNotifyEvent(std::function<
void()> notifyEventFunc);
286 uint16_t GetConnectedNum();
296 #if defined(DIARKIS_DEBUG_FEATURES)
311 void SetDebugP2PFailMode(
bool enable);
327 void SetDebugP2PFailUIDs(
const char** UIDList,
size_t UIDListSize);
335 void SetDebugP2PFailUIDs(
const std::vector<std::string>& UIDList);
345 void ClearDebugP2PFailUIDs();
439 std::shared_ptr<IDiarkisUdp>
udp_;
481 #if defined(DIARKIS_DEBUG_FEATURES)
488 std::atomic<bool> debugP2PFailMode_;
497 std::mutex debugP2PFailUIDsMutex_;