Diarkis C++Client Library API Document
DiarkisDirectMessageBase.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"
8 #include "logging/LoggerFactory.h"
9 #include "protocol.h"
10 
11 using namespace Diarkis::Modules;
12 
20 {
21  public:
29 
36  virtual ~DiarkisDirectMessageBase();
37 
46  virtual void SetupTcp(const std::shared_ptr<IDiarkisTcp>& tcp, const std::shared_ptr<LoggerFactory>& loggerFactory);
47 
60  virtual void SetupUdp(const std::shared_ptr<IDiarkisUdp>& udp, const std::shared_ptr<LoggerFactory>& loggerFactory);
61 
78  virtual void Disconnect(const char* uid, const uint8_t* message, size_t messageSize);
79 
86  virtual void Disconnect(const std::string& uid, const std::vector<uint8_t>& message);
87 
108  virtual void Send(const char* uid, const uint8_t* message, size_t messageSize);
109 
116  virtual void Send(const std::string& uid, const std::vector<uint8_t>& message);
117 
138  virtual void RSend(const char* uid, const uint8_t* message, size_t messageSize);
139 
146  virtual void RSend(const std::string& uid, const std::vector<uint8_t>& message);
147 
148  protected:
157  virtual void OnDisconnect(const DiarkisDirectMessageEventArgs& e);
158 
167  virtual void OnMessage(const DiarkisDirectMessageEventArgs& e);
168 
175  std::shared_ptr<IDiarkisDirectMessage> dm_;
176 
183  std::shared_ptr<IDiarkisLogger> logger_;
184 
192 
193 };
DiarkisDirectMessageBase::eventUnsubscriptions_
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
Lambda functions list.
Definition: DiarkisDirectMessageBase.h:191
DiarkisDirectMessageBase::dm_
std::shared_ptr< IDiarkisDirectMessage > dm_
Pointer to IDiarkisDirectMessage class.
Definition: DiarkisDirectMessageBase.h:175
DiarkisDirectMessageBase::logger_
std::shared_ptr< IDiarkisLogger > logger_
Pointer to IDiarkisLogger class.
Definition: DiarkisDirectMessageBase.h:183
protocol.h
Diarkis::Modules
Definition: directMessage.h:16
Diarkis::StdVector
Definition: common.h:406
common.h
directMessage.h
DiarkisDirectMessageBase
Base class that wraps the IDiarkisDirectMessage class for easy use of DirectMessage functionality.
Definition: DiarkisDirectMessageBase.h:19
DIARKIS_API
#define DIARKIS_API
Definition: common.h:47
Diarkis::DiarkisDirectMessageEventArgs
Arguments of the callback event called when DM received.
Definition: eventArgs.h:1860