 |
Diarkis C++Client Library API Document
|
Go to the documentation of this file.
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_;
std::shared_ptr< IDiarkisUdp > udp_
Pointer to the IDiarkisUdp class.
Definition: DiarkisP2PBase.h:439
Diarkis::StdUnorderedMap< Diarkis::StdString, std::shared_ptr< Peer > > p2pList_
List of P2P connections. key:UID, value:pointer to IDiarkisP2P.
Definition: DiarkisP2PBase.h:423
std::function< void()> schedulerAddNotifyEventFunc_
Callback function called when P2P-related events are added.
Definition: DiarkisP2PBase.h:463
Diarkis::StdString myUid_
My user ID.
Definition: DiarkisP2PBase.h:479
std::unordered_map< Key, Value, StdStringHash< Key >, std::equal_to< Key >, Diarkis::DiarkisStdAllocator< std::pair< const Key, Value > >> StdUnorderedMap
Definition: common.h:535
std::shared_ptr< LoggerFactory > loggerFactory_
Pointer to logger class.
Definition: DiarkisP2PBase.h:447
Base class that wraps the IDiarkisP2P class for easy use of P2P functionality.
Definition: DiarkisP2PBase.h:44
std::recursive_mutex p2pListMutex_
P2P list Mutex.
Definition: DiarkisP2PBase.h:431
Definition: directMessage.h:16
Diarkis::StdString ownGlobalAddress_
My Global IP address.
Definition: DiarkisP2PBase.h:471
Arguments of the callback event called when a P2P connection fails.
Definition: eventArgs.h:354
Structure for managing peer connection status.
Definition: DiarkisP2PBase.h:19
Arguments of the callback event called when sending or receiving fails in P2P.
Definition: eventArgs.h:499
Arguments of the callback event called when a P2P connection is completed.
Definition: eventArgs.h:298
Arguments of the callback event called when a P2P is disconnected.
Definition: eventArgs.h:402
std::shared_ptr< IDiarkisP2P > GetDiarkisP2P() const
Definition: DiarkisP2PBase.h:30
RudpType
Type of P2P RUDP functionality.
Definition: p2p.h:21
Arguments of the callback event called when a message is received by P2P.
Definition: eventArgs.h:450
#define DIARKIS_API
Definition: common.h:47
std::shared_ptr< IDiarkisLogger > logger_
Pointer to logger class.
Definition: DiarkisP2PBase.h:455