Diarkis C++Client Library API Document
Diarkis::Modules::IDiarkisSession Class Referenceabstract

Interface class for Session function. More...

#include <session.h>

Public Member Functions

virtual ~IDiarkisSession ()
 Destructor of IDiarkisSession. More...
 
virtual void SetLoggerFactory (const std::shared_ptr< IDiarkisLoggerFactory > &loggerFactory, const Diarkis::StdString &loggerNameSuffix)=0
 Register a logger. More...
 
virtual bool SetupAsTcp (std::shared_ptr< IDiarkisTcp > tcp)=0
 Set up Session as a TCP protocol. More...
 
virtual bool SetupAsUdp (std::shared_ptr< IDiarkisUdp > udp)=0
 Set up Session as a UDP protocol. More...
 
virtual bool SetTcp (std::shared_ptr< IDiarkisTcp > tcp)=0
 Set IDiarkisTcp class. More...
 
virtual bool SetUdp (std::shared_ptr< IDiarkisUdp > udp)=0
 Set IDiarkisUdp class. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionCreateResponseEventArgs & > > GetCreateResponseEvent ()=0
 Get the callback event called when a Session is created. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionInviteEventArgs & > > GetInviteEvent ()=0
 Get callback event for receiving Session Invite. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionNotificationEventArgs & > > GetJoinEvent ()=0
 Get the callback event called when another member joins the Session. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionNotificationEventArgs & > > GetBroadcastEvent ()=0
 Get the callback event called when a broadcast message is received. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionNotificationEventArgs & > > GetMessageToEvent ()=0
 Get the callback event called when a Session MessageTo is received. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionNotificationEventArgs & > > GetLeaveEvent ()=0
 Get the callback event called when a member leaves a Session. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionInfoEventArgs & > > GetSessionInfoEvent ()=0
 Called when a Session info response is received.
. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionNotificationEventArgs & > > GetKickEvent ()=0
 Get the callback event when a push is received from the server to a Session kick. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionResponseEventArgs & > > GetInviteResponseEvent ()=0
 Get the callback event when a response is received from the server to a Session invitation. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionResponseEventArgs & > > GetKickResponseEvent ()=0
 Get the callback event when a response is received from the server to a Session kick. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionResponseEventArgs & > > GetJoinResponseEvent ()=0
 Get the callback event when a response is received from the server for joining a Session. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionResponseEventArgs & > > GetBroadcastResponseEvent ()=0
 Get callback event when a server response to Broadcast is received. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionResponseEventArgs & > > GetMessageToResponseEvent ()=0
 Get callback event when a server response to MessageTo is received. More...
 
virtual std::shared_ptr< IDiarkisEvent< const DiarkisSessionResponseEventArgs & > > GetLeaveResponseEvent ()=0
 Get callback event when a server response to Leave is received. More...
 
virtual Diarkis::System::Result SendCreate (uint8_t sessionType, uint8_t maxMembers, uint8_t ttl)=0
 Create a new Session. More...
 
virtual Diarkis::System::Result SendInvite (const char **uids, size_t uidsCount, uint8_t sessionType)=0
 Invite a user to the Session they are currently in. More...
 
virtual Diarkis::System::Result SendInvite (const Diarkis::StdVector< Diarkis::StdString > &uids, uint8_t sessionType)=0
 Same as SendInvite(const char**, size_t, uint8_t) More...
 
virtual Diarkis::System::Result SendInvite (const char **uids, size_t uidsCount, uint8_t sessionType, const uint8_t *message, size_t messageSize)=0
 Invite a user to the Session they are currently in. More...
 
virtual Diarkis::System::Result SendInvite (const Diarkis::StdVector< Diarkis::StdString > &uids, uint8_t sessionType, const Diarkis::StdVector< uint8_t > &message)=0
 Same as SendInvite(const char**, size_t, uint8_t, const uint8_t*, size_t) More...
 
virtual Diarkis::System::Result SendBroadcast (uint8_t sessionType, const uint8_t *message, size_t messageSize)=0
 Broadcast a message. More...
 
virtual Diarkis::System::Result SendBroadcast (uint8_t sessionType, const Diarkis::StdVector< uint8_t > &message)=0
 Same as SendBroadcast() More...
 
virtual Diarkis::System::Result SendMessageTo (uint8_t sessionType, const char **uids, size_t uidsCount, const uint8_t *message, size_t messageSize)=0
 Send a message to particular members. More...
 
virtual Diarkis::System::Result SendMessageTo (uint8_t sessionType, const Diarkis::StdVector< Diarkis::StdString > &memberIDs, const Diarkis::StdVector< uint8_t > &message)=0
 Same as SendMessageTo() More...
 
virtual Diarkis::System::Result SendJoin (uint8_t sessionType, const char *sessionID)=0
 Join a Session. More...
 
virtual Diarkis::System::Result SendJoin (uint8_t sessionType, const Diarkis::StdString &sessionID)=0
 Same as SendJoin() More...
 
virtual Diarkis::System::Result SendLeave (uint8_t sessionType)=0
 Leave a Session. More...
 
virtual Diarkis::System::Result SendKick (uint8_t sessionType, const Diarkis::StdString &userID)=0
 Kick a Session member. More...
 
virtual Diarkis::System::Result SendKick (uint8_t sessionType, const char *userID)=0
 Same as SendKick() More...
 
virtual Diarkis::System::Result SendGetSessionInfoBySessionType (uint8_t sessionType)=0
 Raises OnSessionInfo event and retrieves information of the Session. More...
 
virtual Diarkis::System::Result SendGetSessionInfoBySessionID (const char *sessionID)=0
 Raises OnSessionInfo event and retrieves information of the Session. More...
 
virtual Diarkis::System::Result SendGetSessionInfoBySessionID (const Diarkis::StdString &sessionID)=0
 Same as SendGetSessionInfoBySessionID() More...
 
virtual Diarkis::StdString GetSessionIDByType (uint8_t sessionType) const =0
 Get the Session ID of the Session in which you are participating. More...
 
virtual bool HasSession (uint8_t sessionType) const =0
 Check if you are joining at least one Session. More...
 
virtual void SetUID (const char *userID)=0
 Set user ID. More...
 
virtual void SetUID (const Diarkis::StdString &userID)=0
 Same as SetUID() More...
 
virtual Diarkis::StdString GetUID () const =0
 Get user ID. More...
 

Detailed Description

Interface class for Session function.

Constructor & Destructor Documentation

◆ ~IDiarkisSession()

virtual Diarkis::Modules::IDiarkisSession::~IDiarkisSession ( )
inlinevirtual

Destructor of IDiarkisSession.

Member Function Documentation

◆ SetLoggerFactory()

virtual void Diarkis::Modules::IDiarkisSession::SetLoggerFactory ( const std::shared_ptr< IDiarkisLoggerFactory > &  loggerFactory,
const Diarkis::StdString loggerNameSuffix 
)
pure virtual

Register a logger.

Parameters
[in]loggerFactoryPointer to IDiarkisLoggerFactory
[in]loggerNameSuffixString to be added to the tag that will be output to the log

◆ SetupAsTcp()

virtual bool Diarkis::Modules::IDiarkisSession::SetupAsTcp ( std::shared_ptr< IDiarkisTcp tcp)
pure virtual

Set up Session as a TCP protocol.

◆ SetupAsUdp()

virtual bool Diarkis::Modules::IDiarkisSession::SetupAsUdp ( std::shared_ptr< IDiarkisUdp udp)
pure virtual

Set up Session as a UDP protocol.

◆ SetTcp()

virtual bool Diarkis::Modules::IDiarkisSession::SetTcp ( std::shared_ptr< IDiarkisTcp tcp)
pure virtual

Set IDiarkisTcp class.

◆ SetUdp()

virtual bool Diarkis::Modules::IDiarkisSession::SetUdp ( std::shared_ptr< IDiarkisUdp udp)
pure virtual

Set IDiarkisUdp class.

◆ GetCreateResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionCreateResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetCreateResponseEvent ( )
pure virtual

Get the callback event called when a Session is created.

Called when a Session Create response is received.
The content of the event is the Session ID. This user is automatically the Session owner.

◆ GetInviteEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionInviteEventArgs&> > Diarkis::Modules::IDiarkisSession::GetInviteEvent ( )
pure virtual

Get callback event for receiving Session Invite.

The event that is pushed from the server when a Session Invite is received.
The content of the event is the Session ID and the message written by the invitee.

◆ GetJoinEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionNotificationEventArgs&> > Diarkis::Modules::IDiarkisSession::GetJoinEvent ( )
pure virtual

Get the callback event called when another member joins the Session.

The event pushed by the server when another member joins the Session. The event is the new member's user ID.

◆ GetBroadcastEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionNotificationEventArgs&> > Diarkis::Modules::IDiarkisSession::GetBroadcastEvent ( )
pure virtual

Get the callback event called when a broadcast message is received.

The event pushed by the server when a message is sent by a participant in the Session via Broadcast.

◆ GetMessageToEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionNotificationEventArgs&> > Diarkis::Modules::IDiarkisSession::GetMessageToEvent ( )
pure virtual

Get the callback event called when a Session MessageTo is received.

The event pushed from the server when a Session participant sends a message with MessageTo.

◆ GetLeaveEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionNotificationEventArgs&> > Diarkis::Modules::IDiarkisSession::GetLeaveEvent ( )
pure virtual

Get the callback event called when a member leaves a Session.

The event pushed by the server when a member leaves a Session (including when communication with the server is lost). The content of the event is the user ID of the member who left the room.

◆ GetSessionInfoEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionInfoEventArgs&> > Diarkis::Modules::IDiarkisSession::GetSessionInfoEvent ( )
pure virtual

Called when a Session info response is received.
.

◆ GetKickEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionNotificationEventArgs&> > Diarkis::Modules::IDiarkisSession::GetKickEvent ( )
pure virtual

Get the callback event when a push is received from the server to a Session kick.

◆ GetInviteResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetInviteResponseEvent ( )
pure virtual

Get the callback event when a response is received from the server to a Session invitation.

◆ GetKickResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetKickResponseEvent ( )
pure virtual

Get the callback event when a response is received from the server to a Session kick.

◆ GetJoinResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetJoinResponseEvent ( )
pure virtual

Get the callback event when a response is received from the server for joining a Session.

◆ GetBroadcastResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetBroadcastResponseEvent ( )
pure virtual

Get callback event when a server response to Broadcast is received.

◆ GetMessageToResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetMessageToResponseEvent ( )
pure virtual

Get callback event when a server response to MessageTo is received.

◆ GetLeaveResponseEvent()

virtual std::shared_ptr<IDiarkisEvent<const DiarkisSessionResponseEventArgs&> > Diarkis::Modules::IDiarkisSession::GetLeaveResponseEvent ( )
pure virtual

Get callback event when a server response to Leave is received.

◆ SendCreate()

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendCreate ( uint8_t  sessionType,
uint8_t  maxMembers,
uint8_t  ttl 
)
pure virtual

Create a new Session.

Callback events registered with GetCreateEvent() (e.g. OnSessionCreate) will be triggered.

Parameters
[in]sessionTypeSession type
[in]maxMembersMaximum number of participants in the Session
[in]ttlDuration of the Session in seconds after it is empty.

◆ SendInvite() [1/4]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendInvite ( const char **  uids,
size_t  uidsCount,
uint8_t  sessionType 
)
pure virtual

Invite a user to the Session they are currently in.

OnSessionInvite is triggered by the invited user.

Parameters
[in]uidsList of user IDs to send the invite to
[in]uidsCountNumber of user IDs
[in]sessionTypeType of Session to invite.

◆ SendInvite() [2/4]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendInvite ( const Diarkis::StdVector< Diarkis::StdString > &  uids,
uint8_t  sessionType 
)
pure virtual

◆ SendInvite() [3/4]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendInvite ( const char **  uids,
size_t  uidsCount,
uint8_t  sessionType,
const uint8_t *  message,
size_t  messageSize 
)
pure virtual

Invite a user to the Session they are currently in.

OnSessionInvite is triggered by the invited user.

Parameters
[in]uidsList of user IDs to send the invite to
[in]uidsCountNumber of user IDs
[in]sessionTypeType of Session to invite.
[in]messageMessage to be sent
[in]messageSizeLength of the message

◆ SendInvite() [4/4]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendInvite ( const Diarkis::StdVector< Diarkis::StdString > &  uids,
uint8_t  sessionType,
const Diarkis::StdVector< uint8_t > &  message 
)
pure virtual

◆ SendBroadcast() [1/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendBroadcast ( uint8_t  sessionType,
const uint8_t *  message,
size_t  messageSize 
)
pure virtual

Broadcast a message.

The message is delivered to all members of the Session, including yourself.

Parameters
[in]sessionTypeType of Session
[in]messageMessage to be sent
[in]messageSizeLength of the message

◆ SendBroadcast() [2/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendBroadcast ( uint8_t  sessionType,
const Diarkis::StdVector< uint8_t > &  message 
)
pure virtual

Same as SendBroadcast()

◆ SendMessageTo() [1/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendMessageTo ( uint8_t  sessionType,
const char **  uids,
size_t  uidsCount,
const uint8_t *  message,
size_t  messageSize 
)
pure virtual

Send a message to particular members.

The message is delivered to particular members of the Session.

Parameters
[in]sessionTypeType of the Session
[in]uidsList of user IDs the message will be sent to
[in]uidsCountNumber of user IDs
[in]messagepayload data
[in]messageSizeLength of the message

◆ SendMessageTo() [2/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendMessageTo ( uint8_t  sessionType,
const Diarkis::StdVector< Diarkis::StdString > &  memberIDs,
const Diarkis::StdVector< uint8_t > &  message 
)
pure virtual

Same as SendMessageTo()

◆ SendJoin() [1/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendJoin ( uint8_t  sessionType,
const char *  sessionID 
)
pure virtual

Join a Session.

Parameters
[in]sessionTypeSession type
[in]sessionIDSession ID

◆ SendJoin() [2/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendJoin ( uint8_t  sessionType,
const Diarkis::StdString sessionID 
)
pure virtual

Same as SendJoin()

◆ SendLeave()

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendLeave ( uint8_t  sessionType)
pure virtual

Leave a Session.

Parameters
[in]sessionTypeSession type

◆ SendKick() [1/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendKick ( uint8_t  sessionType,
const Diarkis::StdString userID 
)
pure virtual

Kick a Session member.

Parameters
[in]sessionTypeSession type
[in]userIDID of the user to kick

◆ SendKick() [2/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendKick ( uint8_t  sessionType,
const char *  userID 
)
pure virtual

Same as SendKick()

◆ SendGetSessionInfoBySessionType()

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendGetSessionInfoBySessionType ( uint8_t  sessionType)
pure virtual

Raises OnSessionInfo event and retrieves information of the Session.

Parameters
[in]sessionTypeSession type

◆ SendGetSessionInfoBySessionID() [1/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendGetSessionInfoBySessionID ( const char *  sessionID)
pure virtual

Raises OnSessionInfo event and retrieves information of the Session.

Parameters
[in]sessionIDSession ID

◆ SendGetSessionInfoBySessionID() [2/2]

virtual Diarkis::System::Result Diarkis::Modules::IDiarkisSession::SendGetSessionInfoBySessionID ( const Diarkis::StdString sessionID)
pure virtual

◆ GetSessionIDByType()

virtual Diarkis::StdString Diarkis::Modules::IDiarkisSession::GetSessionIDByType ( uint8_t  sessionType) const
pure virtual

Get the Session ID of the Session in which you are participating.

Empty string is returned if you are not in a Session.

Parameters
[in]sessionTypeSession type

◆ HasSession()

virtual bool Diarkis::Modules::IDiarkisSession::HasSession ( uint8_t  sessionType) const
pure virtual

Check if you are joining at least one Session.

◆ SetUID() [1/2]

virtual void Diarkis::Modules::IDiarkisSession::SetUID ( const char *  userID)
pure virtual

Set user ID.

Parameters
[in]userIDuser ID

◆ SetUID() [2/2]

virtual void Diarkis::Modules::IDiarkisSession::SetUID ( const Diarkis::StdString userID)
pure virtual

Same as SetUID()

◆ GetUID()

virtual Diarkis::StdString Diarkis::Modules::IDiarkisSession::GetUID ( ) const
pure virtual

Get user ID.


The documentation for this class was generated from the following file: