Diarkis C++Client Library API Document
field.h
Go to the documentation of this file.
1 // © 2019-2024 Diarkis Inc. All rights reserved.
2 
3 #pragma once
4 
5 #include "diarkis/common.h"
7 #include "diarkis/network/tcp.h"
8 #include "diarkis/network/udp.h"
9 #include "diarkis/system/Event.h"
10 #include "diarkis/system/result.h"
11 
12 using namespace Diarkis::Network;
13 
14 // ADD NAMESPACE NAME TAG
15 namespace Diarkis
16 {
17 namespace Modules
18 {
26 {
27  public:
34  virtual ~IDiarkisField() {}
35 
46  virtual void SetLoggerFactory(std::shared_ptr<IDiarkisLoggerFactory> loggerFactory, Diarkis::StdString loggerNameSuffix) = 0;
47 
54  virtual bool SetupAsTcp(const std::shared_ptr<IDiarkisTcp>& tcp) = 0;
55 
62  virtual bool SetupAsUdp(const std::shared_ptr<IDiarkisUdp>& udp) = 0;
63 
70  virtual Diarkis::System::Result Disappear() = 0;
71 
78  virtual Diarkis::System::Result Leave() = 0;
79 
106  Join(int64_t x, int64_t y, int64_t z, uint16_t syncLimit, uint8_t customFilterID, const uint8_t* message, size_t messageSize, bool reliable = false) = 0;
107 
115  Join(int64_t x, int64_t y, int64_t z, uint16_t syncLimit, uint8_t customFilterID, const Diarkis::StdVector<uint8_t>& message, bool reliable = false) = 0;
116 
144  Sync(int64_t x, int64_t y, int64_t z, uint16_t syncLimit, uint8_t customFilterID, const uint8_t* message, size_t messageSize, bool reliable = true) = 0;
145 
153  Sync(int64_t x, int64_t y, int64_t z, uint16_t syncLimit, uint8_t customFilterID, const Diarkis::StdVector<uint8_t>& message, bool reliable = true) = 0;
154 
161  virtual std::shared_ptr<IDiarkisEvent<const Diarkis::StdVector<Diarkis::StdVector<uint8_t>>&>> GetResponseSyncInitEvent() = 0;
162 
169  virtual std::shared_ptr<IDiarkisEvent<const DiarkisSuccessEventArgs&>> GetJoinEvent() = 0;
170 
177  virtual std::shared_ptr<IDiarkisEvent<const Diarkis::StdVector<uint8_t>&>> GetSyncEvent() = 0;
178 
185  virtual std::shared_ptr<IDiarkisEvent<const Diarkis::StdString&>> GetDisappearEvent() = 0;
186 
193  virtual std::shared_ptr<IDiarkisEvent<void*>> GetReconnectEvent() = 0;
194 
201  virtual std::shared_ptr<IDiarkisEvent<const DiarkisSuccessEventArgs&>> GetLeaveEvent() = 0;
202 };
203 
204 extern "C"
205 {
212  DIARKIS_EXPORT IDiarkisField* DiarkisCreateField();
213 }
214 
215 } // namespace Modules
216 } // namespace Diarkis
217  // ADD NAMESPACE } TAG
LoggerFactory.h
Diarkis::Modules::IDiarkisField::~IDiarkisField
virtual ~IDiarkisField()
Destructor for the IDiarkisField class.
Definition: field.h:34
Diarkis::StdString
Definition: common.h:432
Diarkis::System::Result
Contains information about a specific result value. Can be compared against another Result structure....
Definition: result.h:37
Diarkis::StdVector< uint8_t >
Diarkis
Definition: commands.h:9
Diarkis::Network
Definition: eventArgs.h:10
result.h
Event.h
Diarkis::Modules::IDiarkisField
Interface class for Field.
Definition: field.h:25
common.h
tcp.h
udp.h
Diarkis::Modules::DiarkisCreateField
DIARKIS_EXPORT IDiarkisField * DiarkisCreateField()
Create IDiarkisField class.