Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
IAgoraRtmService.h
1//
2// Agora Rtm SDK
3//
4// Created by junhao Wang in 2018-05.
5// Copyright (c) 2018 Agora IO. All rights reserved.
6//
7#pragma once
8
9#include <stdint.h>
10#include <api/cpp/aosl_ares_class.h>
11
12namespace agora {
13
14namespace rtm {
15
23
65
78
98
113
172
207
221
261
272
293
296class IMessage {
297 public:
308 virtual ~IMessage() {}
313 virtual int64_t getMessageId() const = 0;
320 virtual int getMessageType() const = 0;
326 virtual void setText(const char *str) = 0;
332 virtual const char *getText() const = 0;
338 virtual const unsigned char *getRawMessageData() const = 0;
344 virtual int getRawMessageLength() const = 0;
348 virtual void setMessageType(int32_t type) = 0;
352 virtual void setRawMessage(const uint8_t* data, int length) = 0;
356 virtual void release() = 0;
357};
358
363 public:
364 virtual ~IChannelMember() {}
369 virtual const char *getMemberId() const = 0;
374 virtual const char *getChannelId() const = 0;
378 virtual void release() = 0;
379};
380
384 public:
400 virtual int addAttribute(const char *key, const char *value) = 0;
408 virtual int removeAttribute(const char *key) = 0;
415 virtual int getAttributesSize() const = 0;
422 virtual void getAttributes(int size, char **key,
423 char **value) const = 0; // todo: discussion, how to traveral
428 virtual const char *getAttributeValue(const char *key) const = 0;
435 virtual int release() = 0;
436};
437
441 public:
446 virtual void onJoinSuccess() {}
451 virtual void onJoinFailure(JOIN_CHANNEL_ERR errorCode) {}
456 virtual void onLeave(LEAVE_CHANNEL_ERR errorCode) {}
461 virtual void onMessageReceived(const char *userId, const IMessage *message) {}
467 virtual void onSendMessageState(int64_t messageId, CHANNEL_MESSAGE_STATE state) {}
474 virtual void onSendMessageResult(long long messageId, CHANNEL_MESSAGE_ERR_CODE state) {}
479 virtual void onMemberJoined(IChannelMember *member) {}
484 virtual void onMemberLeft(IChannelMember *member) {}
490 virtual void onMembersGotten(IChannelMember **members, int userCount) {}
495 virtual void onAttributesUpdated(const IChannelAttributes *attributes) {}
501 virtual void onUpdateAttributesResponse(int64_t requestId, RESPONSE_CODE resCode) {}
506 virtual void onAttributesDeleted(const IChannelAttributes *attributes) {}
512 virtual void onDeleteAttributesResponse(int64_t requestId, RESPONSE_CODE resCode) {}
513};
514
517class IChannel {
518 public:
523 virtual int setEventHandler(IChannelEventHandler *eventHandler, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
533 virtual int join(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
542 virtual int leave(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
553 virtual int sendMessage(const IMessage *message, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
564 virtual int updateAttributes(IChannelAttributes *attributes, int64_t &requestId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
575 virtual int deleteAttributes(IChannelAttributes *attributes, int64_t &requestId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
582 virtual const char *getId() const = 0;
583
584 // sync_call
594 virtual int release() = 0;
595};
596
600 public:
602
606 virtual void onLoginSuccess() {}
611 virtual void onLoginFailure(LOGIN_ERR_CODE errorCode) {}
615 virtual void onLogout() {}
626 virtual void onSendMessageState(int64_t messageId, PEER_MESSAGE_STATE state) {}
632 virtual void onMessageReceivedFromPeer(const char *peerId, const IMessage *message) {}
633};
634
638 public:
639 virtual ~IRtmService() {}
649 virtual int initialize(const char *appId, IRtmServiceEventHandler *eventHandler) = 0;
654 virtual void unregisterObserver(IRtmServiceEventHandler *eventHandler) = 0;
665 virtual int release(bool sync = false) = 0;
678 virtual int login(const char *token, const char *userId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
685 virtual int logout(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
695 virtual int sendMessageToPeer(const char *peerId, const IMessage *message, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
712 virtual IChannel *createChannel(const char *channelId, IChannelEventHandler *eventHandler) = 0;
713};
714
715} // namespace rtm
716} // namespace agora
Definition IAgoraRtmService.h:383
virtual int getAttributesSize() const =0
static IChannelAttributes * createChannelAttributes()
virtual int addAttribute(const char *key, const char *value)=0
virtual const char * getAttributeValue(const char *key) const =0
virtual int removeAttribute(const char *key)=0
virtual void getAttributes(int size, char **key, char **value) const =0
Definition IAgoraRtmService.h:440
virtual void onAttributesUpdated(const IChannelAttributes *attributes)
Definition IAgoraRtmService.h:495
virtual void onSendMessageState(int64_t messageId, CHANNEL_MESSAGE_STATE state)
Definition IAgoraRtmService.h:467
virtual void onJoinSuccess()
Definition IAgoraRtmService.h:446
virtual void onSendMessageResult(long long messageId, CHANNEL_MESSAGE_ERR_CODE state)
Definition IAgoraRtmService.h:474
virtual void onMemberJoined(IChannelMember *member)
Definition IAgoraRtmService.h:479
virtual void onMembersGotten(IChannelMember **members, int userCount)
Definition IAgoraRtmService.h:490
virtual void onUpdateAttributesResponse(int64_t requestId, RESPONSE_CODE resCode)
Definition IAgoraRtmService.h:501
virtual void onMessageReceived(const char *userId, const IMessage *message)
Definition IAgoraRtmService.h:461
virtual ~IChannelEventHandler()
Definition IAgoraRtmService.h:442
virtual void onLeave(LEAVE_CHANNEL_ERR errorCode)
Definition IAgoraRtmService.h:456
virtual void onMemberLeft(IChannelMember *member)
Definition IAgoraRtmService.h:484
virtual void onJoinFailure(JOIN_CHANNEL_ERR errorCode)
Definition IAgoraRtmService.h:451
virtual void onAttributesDeleted(const IChannelAttributes *attributes)
Definition IAgoraRtmService.h:506
virtual void onDeleteAttributesResponse(int64_t requestId, RESPONSE_CODE resCode)
Definition IAgoraRtmService.h:512
Definition IAgoraRtmService.h:517
virtual int deleteAttributes(IChannelAttributes *attributes, int64_t &requestId, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int join(aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int sendMessage(const IMessage *message, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int leave(aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual const char * getId() const =0
virtual int release()=0
virtual int updateAttributes(IChannelAttributes *attributes, int64_t &requestId, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setEventHandler(IChannelEventHandler *eventHandler, aosl_ref_t ares=AOSL_REF_INVALID)=0
Definition IAgoraRtmService.h:362
virtual ~IChannelMember()
Definition IAgoraRtmService.h:364
virtual const char * getChannelId() const =0
virtual void release()=0
virtual const char * getMemberId() const =0
Definition IAgoraRtmService.h:296
virtual ~IMessage()
Definition IAgoraRtmService.h:308
virtual void setText(const char *str)=0
virtual const char * getText() const =0
virtual int getMessageType() const =0
virtual int64_t getMessageId() const =0
virtual void release()=0
static IMessage * createMessage()
virtual const unsigned char * getRawMessageData() const =0
virtual int getRawMessageLength() const =0
virtual void setMessageType(int32_t type)=0
virtual void setRawMessage(const uint8_t *data, int length)=0
Definition IAgoraRtmService.h:599
virtual void onConnectionStateChanged(CONNECTION_STATE state)
Definition IAgoraRtmService.h:620
virtual void onLoginFailure(LOGIN_ERR_CODE errorCode)
Definition IAgoraRtmService.h:611
virtual void onLogout()
Definition IAgoraRtmService.h:615
virtual void onSendMessageState(int64_t messageId, PEER_MESSAGE_STATE state)
Definition IAgoraRtmService.h:626
virtual void onLoginSuccess()
Definition IAgoraRtmService.h:606
virtual ~IRtmServiceEventHandler()
Definition IAgoraRtmService.h:601
virtual void onMessageReceivedFromPeer(const char *peerId, const IMessage *message)
Definition IAgoraRtmService.h:632
Definition IAgoraRtmService.h:637
virtual void unregisterObserver(IRtmServiceEventHandler *eventHandler)=0
virtual int release(bool sync=false)=0
virtual int initialize(const char *appId, IRtmServiceEventHandler *eventHandler)=0
virtual IChannel * createChannel(const char *channelId, IChannelEventHandler *eventHandler)=0
virtual int logout(aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int sendMessageToPeer(const char *peerId, const IMessage *message, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual ~IRtmService()
Definition IAgoraRtmService.h:639
virtual int login(const char *token, const char *userId, aosl_ref_t ares=AOSL_REF_INVALID)=0
Definition IAgoraRtmService.h:14
LEAVE_CHANNEL_REASON
Definition IAgoraRtmService.h:211
@ LEAVE_CHANNEL_REASON_QUIT
Definition IAgoraRtmService.h:215
@ LEAVE_CHANNEL_REASON_KICKED
Definition IAgoraRtmService.h:219
RESPONSE_CODE
Definition IAgoraRtmService.h:265
@ RESPONSE_CODE_SUCCESS
Definition IAgoraRtmService.h:269
@ RESPONSE_CODE_FAILURE
Definition IAgoraRtmService.h:270
PEER_MESSAGE_STATE
Definition IAgoraRtmService.h:16
@ PEER_MESSAGE_INIT
Definition IAgoraRtmService.h:17
@ PEER_MESSAGE_PEER_UNREACHABLE
Definition IAgoraRtmService.h:19
@ PEER_MESSAGE_FAILURE
Definition IAgoraRtmService.h:18
@ PEER_MESSAGE_SENT_TIMEOUT
Definition IAgoraRtmService.h:21
@ PEER_MESSAGE_RECEIVED_BY_PEER
Definition IAgoraRtmService.h:20
LOGIN_ERR_CODE
Definition IAgoraRtmService.h:26
@ LOGIN_ERR_INVALID_ARGUMENT
Definition IAgoraRtmService.h:43
@ LOGIN_ERR_OK
Definition IAgoraRtmService.h:30
@ LOGIN_ERR_TOKEN_EXPIRED
Definition IAgoraRtmService.h:55
@ LOGIN_ERR_INVALID_APP_ID
Definition IAgoraRtmService.h:47
@ LOGIN_ERR_REJECTED
Definition IAgoraRtmService.h:39
@ LOGIN_ERR_UNKNOWN
Definition IAgoraRtmService.h:34
@ LOGIN_ERR_INVALID_TOKEN
Definition IAgoraRtmService.h:51
@ LOGIN_ERR_NOT_AUTHORIZED
Definition IAgoraRtmService.h:59
@ LOGIN_ERR_TIMEOUT
Definition IAgoraRtmService.h:63
MESSAGE_TYPE
Definition IAgoraRtmService.h:275
@ MESSAGE_TYPE_BINARY
Definition IAgoraRtmService.h:287
@ MESSAGE_TYPE_UNDEFINED
Definition IAgoraRtmService.h:279
@ MESSAGE_TYPE_CONVERGE
Definition IAgoraRtmService.h:291
@ MESSAGE_TYPE_TEXT
Definition IAgoraRtmService.h:283
CONNECTION_STATE
Definition IAgoraRtmService.h:81
@ CONNECTION_STATE_ABORTED
Definition IAgoraRtmService.h:96
@ CONNECTION_STATE_DISCONNECTED
Definition IAgoraRtmService.h:89
@ CONNECTION_STATE_CONNECTED
Definition IAgoraRtmService.h:85
CHANNEL_MESSAGE_STATE
Definition IAgoraRtmService.h:102
@ CHANNEL_MESSAGE_RECEIVED_BY_SERVER
Definition IAgoraRtmService.h:106
@ CHANNEL_MESSAGE_SENT_TIMEOUT
Definition IAgoraRtmService.h:111
CHANNEL_MESSAGE_ERR_CODE
Error codes related to sending a channel message.
Definition IAgoraRtmService.h:224
@ CHANNEL_MESSAGE_ERR_NOT_INITIALIZED
Definition IAgoraRtmService.h:254
@ CHANNEL_MESSAGE_ERR_USER_NOT_LOGGED_IN
Definition IAgoraRtmService.h:259
@ CHANNEL_MESSAGE_ERR_FAILURE
Definition IAgoraRtmService.h:234
@ CHANNEL_MESSAGE_ERR_SENT_TIMEOUT
Definition IAgoraRtmService.h:239
@ CHANNEL_MESSAGE_ERR_INVALID_MESSAGE
Definition IAgoraRtmService.h:249
@ CHANNEL_MESSAGE_ERR_TOO_OFTEN
Definition IAgoraRtmService.h:244
@ CHANNEL_MESSAGE_ERR_OK
Definition IAgoraRtmService.h:229
LEAVE_CHANNEL_ERR
Error codes related to leaving a channel.
Definition IAgoraRtmService.h:175
@ LEAVE_CHANNEL_ERR_OK
Definition IAgoraRtmService.h:180
@ LEAVE_CHANNEL_ERR_NOT_INITIALIZED
Definition IAgoraRtmService.h:200
@ LEAVE_CHANNEL_ERR_REJECTED
Definition IAgoraRtmService.h:190
@ LEAVE_CHANNEL_ERR_NOT_IN_CHANNEL
Definition IAgoraRtmService.h:195
@ LEAVE_CHANNEL_ERR_FAILURE
Definition IAgoraRtmService.h:185
@ LEAVE_CHANNEL_ERR_USER_NOT_LOGGED_IN
Definition IAgoraRtmService.h:205
JOIN_CHANNEL_ERR
Definition IAgoraRtmService.h:116
@ JOIN_CHANNEL_ERR_JOIN_SAME_CHANNEL_TOO_OFTEN
Definition IAgoraRtmService.h:160
@ JOIN_CHANNEL_ERR_FAILURE
Definition IAgoraRtmService.h:125
@ JOIN_CHANNEL_ERR_USER_NOT_LOGGED_IN
Definition IAgoraRtmService.h:170
@ JOIN_CHANNEL_ERR_OK
Definition IAgoraRtmService.h:120
@ JOIN_CHANNEL_ERR_REJECTED
Definition IAgoraRtmService.h:130
@ JOIN_CHANNEL_ERR_TOO_OFTEN
Definition IAgoraRtmService.h:155
@ JOIN_CHANNEL_ERR_ALREADY_JOINED
Definition IAgoraRtmService.h:150
@ JOIN_CHANNEL_TIMEOUT
Definition IAgoraRtmService.h:140
@ JOIN_CHANNEL_ERR_EXCEED_LIMIT
Definition IAgoraRtmService.h:145
@ JOIN_CHANNEL_ERR_NOT_INITIALIZED
Definition IAgoraRtmService.h:165
@ JOIN_CHANNEL_ERR_INVALID_ARGUMENT
Definition IAgoraRtmService.h:135
LOGOUT_ERR_CODE
Definition IAgoraRtmService.h:68
@ LOGOUT_ERR_OK
Definition IAgoraRtmService.h:72
@ LOGOUT_ERR_REJECTED
Definition IAgoraRtmService.h:76
Definition AgoraAtomicOps.h:21