Diarkis C++Client Library API Document
DiarkisFieldBase.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"
9 #include "diarkis/network/tcp.h"
10 #include "diarkis/network/udp.h"
11 #include "logging/LoggerFactory.h"
12 #include "protocol.h"
13 
14 using namespace Diarkis::Modules;
15 
23 {
24  public:
32 
39  virtual ~DiarkisFieldBase();
40 
53  virtual void SetupTcpField(const std::shared_ptr<IDiarkisTcp>& tcp, const std::shared_ptr<LoggerFactory>& loggerFactory);
54 
67  virtual void SetupUdpField(const std::shared_ptr<IDiarkisUdp>& udp, const std::shared_ptr<LoggerFactory>& loggerFactory);
68 
95  virtual void
96  SendFieldJoin(int64_t x, int64_t y, int64_t z, const uint8_t* payload, size_t payloadSize, uint32_t syncLimit, uint32_t customFilterID, bool reliable);
97 
104  virtual void
105  SendFieldJoin(int64_t x, int64_t y, int64_t z, const std::vector<uint8_t>& payload, uint32_t syncLimit, uint32_t customFilterID, bool reliable);
106 
133  virtual void
134  SendFieldSync(int64_t x, int64_t y, int64_t z, const uint8_t* payload, size_t payloadSize, uint32_t syncLimit, uint32_t customFilterID, bool reliable);
135 
141  virtual void
142  SendFieldSync(int64_t x, int64_t y, int64_t z, const std::vector<uint8_t>& payload, uint32_t syncLimit, uint32_t customFilterID, bool reliable);
143 
150  virtual void SendFieldDisappear();
151 
158  virtual void SendFieldLeave();
159 
160  protected:
167  virtual void OnJoin(const DiarkisSuccessEventArgs& e);
168 
177  virtual void OnSync(const Diarkis::StdVector<uint8_t>& payload);
178 
187  virtual void OnDisappear(const Diarkis::StdString& remoteUid);
188 
195  virtual void OnLeave(const DiarkisSuccessEventArgs& e);
196 
203  std::shared_ptr<IDiarkisTcp> tcp_;
204 
211  std::shared_ptr<IDiarkisUdp> udp_;
212 
219  std::shared_ptr<IDiarkisField> field_;
220 
227  std::shared_ptr<IDiarkisLogger> logger_;
228 
236 
244 };
DiarkisFieldBase::tcp_
std::shared_ptr< IDiarkisTcp > tcp_
Pointer to the IDiarkisTcp class.
Definition: DiarkisFieldBase.h:203
DiarkisFieldBase::eventUnsubscriptions_
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
Lambda functions list.
Definition: DiarkisFieldBase.h:235
Diarkis::DiarkisSuccessEventArgs
Arguments of the callback event called when joining or leaving a Field.
Definition: eventArgs.h:2175
Diarkis::StdString
Definition: common.h:432
DiarkisFieldBase::logger_
std::shared_ptr< IDiarkisLogger > logger_
Pointer to the IDiarkisLogger class.
Definition: DiarkisFieldBase.h:227
DiarkisFieldBase::fieldConnect_
ConnectState fieldConnect_
Field status.
Definition: DiarkisFieldBase.h:243
Logger.h
protocol.h
Diarkis::Modules
Definition: directMessage.h:16
Diarkis::StdVector< uint8_t >
DiarkisFieldBase::field_
std::shared_ptr< IDiarkisField > field_
Pointer to the IDiarkisField class.
Definition: DiarkisFieldBase.h:219
ConnectState
ConnectState
connection state
Definition: protocol.h:40
field.h
DiarkisFieldBase
Base class that wraps the IDiarkisField class for easy use of Field functionality.
Definition: DiarkisFieldBase.h:22
DiarkisFieldBase::udp_
std::shared_ptr< IDiarkisUdp > udp_
Pointer to the IDiarkisUdp class.
Definition: DiarkisFieldBase.h:211
common.h
tcp.h
udp.h
DIARKIS_API
#define DIARKIS_API
Definition: common.h:47