Diarkis C++Client Library API Document
DiarkisRpcBase.h
Go to the documentation of this file.
1 // © 2019-2024 Diarkis Inc. All rights reserved.
2 
3 #pragma once
4 
5 #include <functional>
6 #include "diarkis/common.h"
7 #include "diarkis/modules/room.h"
9 #include "logging/LoggerFactory.h"
10 #include "protocol.h"
11 
12 using namespace Diarkis::Modules;
13 using namespace Diarkis::Network;
14 
22 {
23  public:
31 
38  virtual ~DiarkisRpcBase();
39 
54  virtual void SetupRpc(const char* uid, const std::shared_ptr<IDiarkisRoom>& room, const std::shared_ptr<LoggerFactory>& loggerFactory);
55 
62  virtual void SetupRpc(const std::string& uid, const std::shared_ptr<IDiarkisRoom>& room, const std::shared_ptr<LoggerFactory>& loggerFactory);
63 
73  virtual bool RPCAll(uint32_t rpcID, const uint8_t* payload, size_t payloadSize, bool reliable = true);
74 
81  virtual bool RPCAll(uint32_t rpcID, const std::vector<uint8_t>& payload, bool reliable = true);
82 
101  virtual bool RPCMany(uint32_t rpcID, const char** memberIDs, size_t memberIDsCount, const uint8_t* payload, size_t payloadSize, bool reliable = true);
102 
109  virtual bool RPCMany(uint32_t rpcID, const std::vector<std::string>& memberIDs, const std::vector<uint8_t>& payload, bool reliable = true);
110 
127  virtual bool RPCOne(uint32_t rpcID, const char* userID, const uint8_t* payload, size_t payloadSize, bool reliable = true);
128 
135  virtual bool RPCOne(uint32_t rpcID, const std::string& userID, const std::vector<uint8_t>& payload, bool reliable = true);
136 
137  protected:
144  std::shared_ptr<IDiarkisRPC> rpc_;
145 
152  std::shared_ptr<IDiarkisRoom> room_;
153 
160  std::shared_ptr<IDiarkisLogger> logger_;
161 
169 
177 };
DiarkisRpcBase::rpc_
std::shared_ptr< IDiarkisRPC > rpc_
Pointer to IDiarkisRPC class.
Definition: DiarkisRpcBase.h:144
DiarkisRpcBase::room_
std::shared_ptr< IDiarkisRoom > room_
Pointer to IDiarkisRoom class.
Definition: DiarkisRpcBase.h:152
rpcModule.h
Diarkis::StdString
Definition: common.h:432
DiarkisRpcBase::logger_
std::shared_ptr< IDiarkisLogger > logger_
Pointer to IDiarkisLogger.
Definition: DiarkisRpcBase.h:160
DiarkisRpcBase
Base class implementing sample RPC functionality.
Definition: DiarkisRpcBase.h:21
protocol.h
Diarkis::Modules
Definition: directMessage.h:16
Diarkis::StdVector
Definition: common.h:406
DiarkisRpcBase::eventUnsubscriptions_
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
Lambda functions list.
Definition: DiarkisRpcBase.h:176
DiarkisRpcBase::ownUid_
Diarkis::StdString ownUid_
My user ID.
Definition: DiarkisRpcBase.h:168
Diarkis::Network
Definition: eventArgs.h:10
common.h
room.h
DIARKIS_API
#define DIARKIS_API
Definition: common.h:47