Server Gateway SDK v3.8.202.20 for Linux C++
NGIAgoraRtcConnection.h
Go to the documentation of this file.
1//
2// Agora SDK
3//
4// Created by Sting Feng in 2018-01.
5// Copyright (c) 2018 Agora.io. All rights reserved.
6//
7
8#pragma once // NOLINT(build/header_guard)
9
10#include "AgoraBase.h"
11
12namespace agora {
13namespace rtc {
14class IAudioEncodedFrameSender;
15class IRtcConnectionObserver;
16class INetworkObserver;
17class IRtcConnection;
18class IVideoEncodedImageSender;
19class ILocalUser;
20
42
45 uid_t internalUid;
48};
49
55 packetOnly(false),
58 sampleRateHz(0) {
59 }
60
66 }
67
69 {
70 if (this == &rhs) {
71 return *this;
72 }
73
78 return *this;
79 }
99 uint32_t sampleRateHz;
100};
101
149
154
159
161 : autoSubscribeAudio(true),
162 autoSubscribeVideo(true),
164 maxSendBitrate(-1),
165 minPort(0),
166 maxPort(0),
170 videoRecvMediaPacket(false) {}
171};
172
183class IRtcConnection : public RefCountInterface {
184 protected:
186
187 public:
215 virtual int connect(const char* token, const char* channelId, user_id_t userId) = 0;
216
228 virtual int disconnect() = 0;
229
257 virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
258
265 virtual int stopLastmileProbeTest() = 0;
266
277 virtual int renewToken(const char* token) = 0;
278
287
295 virtual ILocalUser* getLocalUser() = 0;
296
309 virtual int getRemoteUsers(UserList& users) = 0;
310
321 virtual int getUserInfo(user_id_t userId, agora::UserInfo& userInfo) = 0;
322
331 virtual int registerObserver(IRtcConnectionObserver* observer, void(*safeDeleter)(IRtcConnectionObserver*) = NULL) = 0;
332
342 virtual int unregisterObserver(IRtcConnectionObserver* observer) = 0;
343
352 virtual int registerNetworkObserver(INetworkObserver* observer, void(*safeDeleter)(INetworkObserver*) = NULL) = 0;
353
363 virtual int unregisterNetworkObserver(INetworkObserver* observer) = 0;
364
372 virtual conn_id_t getConnId() = 0;
373
382
391
410 virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0;
411
423 virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0;
435 virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0;
436};
437
442 public:
444
451 virtual void onConnected(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
452
459 virtual void onDisconnected(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
460
467 virtual void onConnecting(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
468
475 virtual void onReconnecting(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
476
477 // This should be deleted. onConnected is enough.
478 virtual void onReconnected(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
479
485 virtual void onConnectionLost(const TConnectionInfo& connectionInfo) = 0;
486
494 virtual void onLastmileQuality(const QUALITY_TYPE quality) = 0;
495
503 virtual void onLastmileProbeResult(const LastmileProbeResult& result) = 0;
504
515 virtual void onTokenPrivilegeWillExpire(const char* token) = 0;
516
522 virtual void onTokenPrivilegeDidExpire() = 0;
523
530 virtual void onConnectionFailure(const TConnectionInfo& connectionInfo,
532
540 virtual void onUserJoined(user_id_t userId) = 0;
541
550 virtual void onUserLeft(user_id_t userId, USER_OFFLINE_REASON_TYPE reason) = 0;
551
559 virtual void onTransportStats(const RtcStats& stats) = 0;
560
568 (void)oldRole;
569 (void)newRole;
570 }
571
575 virtual void onChangeRoleFailure() {}
576
587 virtual void onUserNetworkQuality(user_id_t userId, QUALITY_TYPE txQuality,
588 QUALITY_TYPE rxQuality) {
589 (void)userId;
590 (void)txQuality;
591 (void)rxQuality;
592 }
593
598 (void)type;
599 }
600
609 virtual void onApiCallExecuted(int err, const char* api, const char* result) {
610 (void)err;
611 (void)api;
612 (void)result;
613 }
615
616 virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) { (void)result; }
629 virtual void onSnapshotTaken(const char* channel, uid_t uid, const char* filePath, int width, int height, int errCode) {
630 (void)channel;
631 (void)uid;
632 (void)filePath;
633 (void)width;
634 (void)height;
635 (void)errCode;
636 }
642 virtual void onError(ERROR_CODE_TYPE error, const char* msg) {
643 (void)error;
644 (void)msg;
645 }
646
652 virtual void onWarning(WARN_CODE_TYPE warning, const char* msg) {
653 (void)warning;
654 (void)msg;
655 }
657
686 virtual void onChannelMediaRelayStateChanged(int state, int code) = 0;
688
693 virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
694 (void)uid;
695 (void)userAccount;
696 }
697
699 virtual void onUserAccountUpdated(uid_t uid, const char* userAccount){
700 (void)uid;
701 (void)userAccount;
702 }
703
713 virtual void onStreamMessageError(user_id_t userId, int streamId, int code, int missed,
714 int cached) {
715 (void)userId;
716 (void)streamId;
717 (void)code;
718 (void)missed;
719 (void)cached;
720 }
722
726 virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) {
727 (void)errorType;
728 }
730
736 virtual void onUploadLogResult(const char* requestId, bool success, UPLOAD_ERROR_REASON reason) {
737 (void)requestId;
738 (void)success;
739 (void)reason;
740 }
742};
743
745 public:
746 virtual ~INetworkObserver() {}
747
748 public:
758 (void)info;
759 }
760
769 (void)info;
770 }
771};
772
773} // namespace rtc
774} // namespace agora
Definition: IAgoraParameter.h:226
Definition: NGIAgoraLocalUser.h:48
Definition: NGIAgoraRtcConnection.h:744
virtual void onDownlinkNetworkInfoUpdated(const DownlinkNetworkInfo &info)
Definition: NGIAgoraRtcConnection.h:768
virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo &info)
Definition: NGIAgoraRtcConnection.h:757
virtual ~INetworkObserver()
Definition: NGIAgoraRtcConnection.h:746
Definition: NGIAgoraRtcConnection.h:183
virtual int connect(const char *token, const char *channelId, user_id_t userId)=0
virtual int stopLastmileProbeTest()=0
virtual conn_id_t getConnId()=0
virtual int unregisterNetworkObserver(INetworkObserver *observer)=0
~IRtcConnection()
Definition: NGIAgoraRtcConnection.h:185
virtual int renewToken(const char *token)=0
virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo *userInfo)=0
virtual ILocalUser * getLocalUser()=0
virtual int registerNetworkObserver(INetworkObserver *observer, void(*safeDeleter)(INetworkObserver *)=NULL)=0
virtual int disconnect()=0
virtual RtcStats getTransportStats()=0
virtual int getUserInfoByUserAccount(const char *userAccount, rtc::UserInfo *userInfo)=0
virtual TConnectionInfo getConnectionInfo()=0
virtual int startLastmileProbeTest(const LastmileProbeConfig &config)=0
virtual int registerObserver(IRtcConnectionObserver *observer, void(*safeDeleter)(IRtcConnectionObserver *)=NULL)=0
virtual int getRemoteUsers(UserList &users)=0
virtual int getUserInfo(user_id_t userId, agora::UserInfo &userInfo)=0
virtual int unregisterObserver(IRtcConnectionObserver *observer)=0
virtual int enableEncryption(bool enabled, const EncryptionConfig &config)=0
virtual agora::base::IAgoraParameter * getAgoraParameter()=0
Definition: NGIAgoraRtcConnection.h:441
virtual void onChannelMediaRelayStateChanged(int state, int code)=0
virtual void onUserLeft(user_id_t userId, USER_OFFLINE_REASON_TYPE reason)=0
virtual void onConnectionLost(const TConnectionInfo &connectionInfo)=0
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: NGIAgoraRtcConnection.h:597
virtual void onConnected(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType)
Definition: NGIAgoraRtcConnection.h:726
virtual void onLastmileQuality(const QUALITY_TYPE quality)=0
virtual void onChangeRoleSuccess(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)
Definition: NGIAgoraRtcConnection.h:567
virtual void onTokenPrivilegeWillExpire(const char *token)=0
virtual void onConnectionFailure(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
virtual ~IRtcConnectionObserver()
Definition: NGIAgoraRtcConnection.h:443
virtual void onReconnecting(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
virtual void onLastmileProbeResult(const LastmileProbeResult &result)=0
virtual void onTransportStats(const RtcStats &stats)=0
virtual void onApiCallExecuted(int err, const char *api, const char *result)
Definition: NGIAgoraRtcConnection.h:609
virtual void onUserNetworkQuality(user_id_t userId, QUALITY_TYPE txQuality, QUALITY_TYPE rxQuality)
Definition: NGIAgoraRtcConnection.h:587
virtual void onReconnected(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
virtual void onTokenPrivilegeDidExpire()=0
virtual void onUserJoined(user_id_t userId)=0
virtual void onDisconnected(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
virtual void onChangeRoleFailure()
Definition: NGIAgoraRtcConnection.h:575
virtual void onConnecting(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
Definition: AgoraBase.h:241
Definition: AgoraBase.h:164
CONNECTION_CHANGED_REASON_TYPE
Definition: AgoraBase.h:3388
ENCRYPTION_ERROR_TYPE
Definition: AgoraBase.h:4624
CLIENT_ROLE_TYPE
Definition: AgoraBase.h:2330
@ CLIENT_ROLE_AUDIENCE
Definition: AgoraBase.h:2338
CONNECTION_STATE_TYPE
Definition: AgoraBase.h:3259
@ CONNECTION_STATE_DISCONNECTED
Definition: AgoraBase.h:3263
USER_OFFLINE_REASON_TYPE
Definition: AgoraBase.h:1200
@ TWO_BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:42
NETWORK_TYPE
Definition: AgoraBase.h:3471
unsigned int uid_t
Definition: AgoraMediaBase.h:25
unsigned int conn_id_t
Definition: AgoraMediaBase.h:27
QUALITY_TYPE
Definition: AgoraBase.h:1236
Definition: AgoraBase.h:85
const char * user_id_t
Definition: AgoraBase.h:1165
CHANNEL_PROFILE_TYPE
Definition: AgoraBase.h:275
@ CHANNEL_PROFILE_LIVE_BROADCASTING
Definition: AgoraBase.h:287
Definition: AgoraBase.h:1171
Definition: NGIAgoraRtcConnection.h:53
AudioSubscriptionOptions()
Definition: NGIAgoraRtcConnection.h:54
uint32_t sampleRateHz
Definition: NGIAgoraRtcConnection.h:99
size_t bytesPerSample
Definition: NGIAgoraRtcConnection.h:91
size_t numberOfChannels
Definition: NGIAgoraRtcConnection.h:95
AudioSubscriptionOptions(const AudioSubscriptionOptions &rhs)
Definition: NGIAgoraRtcConnection.h:61
bool packetOnly
Definition: NGIAgoraRtcConnection.h:87
AudioSubscriptionOptions & operator=(const AudioSubscriptionOptions &rhs)
Definition: NGIAgoraRtcConnection.h:68
Definition: AgoraBase.h:4575
Definition: AgoraBase.h:3287
Definition: AgoraBase.h:3361
Definition: NGIAgoraRtcConnection.h:107
bool autoSubscribeAudio
Definition: NGIAgoraRtcConnection.h:113
bool audioRecvMediaPacket
Definition: NGIAgoraRtcConnection.h:153
RtcConnectionConfiguration()
Definition: NGIAgoraRtcConnection.h:160
CLIENT_ROLE_TYPE clientRoleType
Definition: NGIAgoraRtcConnection.h:145
int maxSendBitrate
Definition: NGIAgoraRtcConnection.h:129
int maxPort
Definition: NGIAgoraRtcConnection.h:137
CHANNEL_PROFILE_TYPE channelProfile
Definition: NGIAgoraRtcConnection.h:148
int minPort
Definition: NGIAgoraRtcConnection.h:133
bool videoRecvMediaPacket
Definition: NGIAgoraRtcConnection.h:158
bool enableAudioRecordingOrPlayout
Definition: NGIAgoraRtcConnection.h:125
AudioSubscriptionOptions audioSubscriptionOptions
Definition: NGIAgoraRtcConnection.h:141
bool autoSubscribeVideo
Definition: NGIAgoraRtcConnection.h:119
Definition: AgoraBase.h:2091
Definition: NGIAgoraRtcConnection.h:24
TConnectionInfo()
Definition: NGIAgoraRtcConnection.h:47
conn_id_t id
Definition: NGIAgoraRtcConnection.h:28
util::AString localUserId
Definition: NGIAgoraRtcConnection.h:40
CONNECTION_STATE_TYPE state
Definition: NGIAgoraRtcConnection.h:36
util::AString channelId
Definition: NGIAgoraRtcConnection.h:32
Definition: AgoraBase.h:4714