Diarkis C++Client Library API Document
DiarkisSessionBase.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 "diarkis/network/tcp.h"
9 #include "diarkis/network/udp.h"
10 #include "logging/LoggerFactory.h"
11 #include "protocol.h"
12 
13 using namespace Diarkis::Modules;
14 
22 {
23  public:
31 
38  virtual ~DiarkisSessionBase();
39 
54  virtual void SetupUdpSession(const std::shared_ptr<IDiarkisUdp>& udp, const std::shared_ptr<LoggerFactory>& loggerFactory, bool bRetry);
55 
70  virtual void SetupTcpSession(const std::shared_ptr<IDiarkisTcp>& tcp, const std::shared_ptr<LoggerFactory>& loggerFactory, bool bRetry);
71 
78  bool HasSession(uint8_t sessionType) const;
79 
94  virtual void SendCreate(uint8_t sessionType, uint8_t maxMembers, uint8_t ttl);
95 
110  virtual void SendInvite(uint8_t sessionType, const char** uids, size_t uidsCount);
111 
118  virtual void SendInvite(uint8_t sessionType, const std::vector<std::string>& uids);
119 
138  virtual void SendInvite(uint8_t sessionType, const char** uids, size_t uidsCount, const uint8_t* message, size_t messageSize);
139 
146  virtual void SendInvite(uint8_t sessionType, const std::vector<std::string>& uids, const std::string& message);
147 
154  virtual void SendInvite(uint8_t sessionType, const char** uids, size_t uidsCount, const char* message);
155 
170  virtual void SendBroadcast(uint8_t sessionType, const uint8_t* message, size_t messageSize);
171 
178  virtual void SendBroadcast(uint8_t sessionType, const std::string& message);
179 
186  virtual void SendBroadcast(uint8_t sessionType, const char* message);
187 
206  virtual void SendMessageTo(uint8_t sessionType, const char** uids, size_t uidsCount, const uint8_t* message, size_t messageSize);
207 
214  virtual void SendMessageTo(uint8_t sessionType, const char** uids, size_t uidsCount, const char* message);
215 
222  virtual void SendMessageTo(uint8_t sessionType, const std::vector<std::string>& memberIDs, const std::string& message);
223 
234  virtual void SendGetSessionInfoBySessionType(uint8_t sessionType);
235 
246  virtual void SendGetSessionInfoBySessionID(const char* sessionID);
247 
254  virtual void SendGetSessionInfoBySessionID(const std::string& sessionID);
255 
266  Diarkis::StdString GetSessionID(uint8_t sessionType) const;
267 
278  virtual void SendKick(uint8_t sessionType, const char* userID);
279 
286  virtual void SendKick(uint8_t sessionType, const std::string& userID);
287 
298  virtual void SendJoin(uint8_t sessionType, const char* sessionID);
299 
306  virtual void SendJoin(uint8_t sessionType, const std::string& sessionID);
307 
316  virtual void SendLeave(uint8_t sessionType);
317 
326  void SetUserID(const char* userID);
327 
334  void SetUserID(const std::string& userID);
335 
342  Diarkis::StdString GetUserID() const;
343 
344  protected:
351  virtual void OnSessionCreateResponse(const DiarkisSessionCreateResponseEventArgs& e);
352 
359  virtual void OnSessionInvite(const DiarkisSessionInviteEventArgs& e);
360 
367  virtual void OnSessionJoin(const DiarkisSessionNotificationEventArgs& e);
368 
375  virtual void OnSessionLeave(const DiarkisSessionNotificationEventArgs& e);
376 
383  virtual void OnSessionBroadcast(const DiarkisSessionNotificationEventArgs& e);
384 
391  virtual void OnSessionMessageTo(const DiarkisSessionNotificationEventArgs& e);
392 
399  virtual void OnSessionInfo(const DiarkisSessionInfoEventArgs& e);
400 
407  virtual void OnSessionKick(const DiarkisSessionNotificationEventArgs& e);
408 
415  virtual void OnSessionInviteResponse(const DiarkisSessionResponseEventArgs& e);
416 
423  virtual void OnSessionKickResponse(const DiarkisSessionResponseEventArgs& e);
424 
431  virtual void OnSessionJoinResponse(const DiarkisSessionResponseEventArgs& e);
432 
439  virtual void OnSessionMessageToResponse(const DiarkisSessionResponseEventArgs& e);
440 
447  virtual void OnSessionBroadcastResponse(const DiarkisSessionResponseEventArgs& e);
448 
455  virtual void OnSessionLeaveResponse(const DiarkisSessionResponseEventArgs& e);
456 
463  std::shared_ptr<IDiarkisUdp> udp_;
464 
471  std::shared_ptr<IDiarkisTcp> tcp_;
472 
479  std::shared_ptr<IDiarkisSession> session_;
480 
487  std::shared_ptr<IDiarkisLogger> logger_;
488 
496 };
DiarkisSessionBase::session_
std::shared_ptr< IDiarkisSession > session_
Pointer to IDiarkisSession class.
Definition: DiarkisSessionBase.h:479
Diarkis::DiarkisSessionResponseEventArgs
Arguments of the callback event called when received Session response.
Definition: eventArgs.h:2131
Diarkis::DiarkisSessionNotificationEventArgs
Arguments of the callback event called when received Session Notification.
Definition: eventArgs.h:1952
Diarkis::DiarkisSessionInfoEventArgs
Arguments of the callback event called when received Session Info.
Definition: eventArgs.h:2022
Diarkis::StdString
Definition: common.h:432
Diarkis::DiarkisSessionInviteEventArgs
Arguments of the callback event called when received Session Invite.
Definition: eventArgs.h:1980
DiarkisSessionBase
Base class that wraps the IDiarkisSession class for easy use of Session functionality.
Definition: DiarkisSessionBase.h:21
protocol.h
Diarkis::Modules
Definition: directMessage.h:16
Diarkis::StdVector
Definition: common.h:406
Diarkis::DiarkisSessionCreateResponseEventArgs
Arguments of the callback event called when received Session Create response.
Definition: eventArgs.h:1892
DiarkisSessionBase::logger_
std::shared_ptr< IDiarkisLogger > logger_
Pointer to IDiarkisLogger class.
Definition: DiarkisSessionBase.h:487
common.h
tcp.h
udp.h
DiarkisSessionBase::udp_
std::shared_ptr< IDiarkisUdp > udp_
IDiarkisUdpクラスへのポインタ
Definition: DiarkisSessionBase.h:463
session.h
DiarkisSessionBase::eventUnsubscriptions_
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
List of lambda functions.
Definition: DiarkisSessionBase.h:495
DiarkisSessionBase::tcp_
std::shared_ptr< IDiarkisTcp > tcp_
Pointer to IDiarkisTcp class.
Definition: DiarkisSessionBase.h:471