Agora Java API Reference for Android
NGIAgoraRtcConnection.h
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 #include "time_utils.h"
12 #include <api/cpp/aosl_ares_class.h>
13 
14 namespace agora {
15 namespace rtc {
16 class IAudioEncodedFrameSender;
17 class IRtcConnectionObserver;
18 class INetworkObserver;
19 class IRtcConnection;
20 class IVideoEncodedImageSender;
21 class ILocalUser;
22 
30  conn_id_t id;
38  CONNECTION_STATE_TYPE state;
46  uid_t internalUid;
47 
48  int proxyType;
49 
50  util::AString connectionIp;
51 
52  TConnectionInfo() : id(-1), state(CONNECTION_STATE_DISCONNECTED), internalUid(0), proxyType(0) {}
53 };
54 
59  const char* token;
70  const char* channelId;
76  user_id_t userId;
77  /*Reserved for future use*/
78  const char* info;
79  /*
80  App can provide a app defined start time to trace some events like connect cost , first video, etc.
81  */
82  agora::Optional<int64_t> appDefinedStartTimeMs;
83 };
84 
116  int minPort;
120  int maxPort;
124  CLIENT_ROLE_TYPE clientRoleType;
127  CHANNEL_PROFILE_TYPE channelProfile;
128 
133 
138 
143 
152 
157 
159  : autoSubscribeAudio(true),
160  autoSubscribeVideo(true),
162  maxSendBitrate(-1),
163  minPort(0),
164  maxPort(0),
165  clientRoleType(CLIENT_ROLE_AUDIENCE),
166  channelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING),
167  audioRecvEncodedFrame(false),
168  audioRecvMediaPacket(false),
169  videoRecvMediaPacket(false),
170  isInteractiveAudience(false),
171  isDataChannelOnly(false) {}
172 };
173 
185  protected:
186  ~IRtcConnection() {}
187 
188  public:
216  virtual int connect(const char* token, const char* channelId, const char* info, user_id_t userId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
217 
229  virtual int connect(const TConnectSettings& settings, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
230 
242  virtual int disconnect(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
243 
271  virtual int startLastmileProbeTest(const LastmileProbeConfig& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
272 
279  virtual int stopLastmileProbeTest(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
280 
292  virtual int renewToken(const char* token, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
293 
302 
310  virtual ILocalUser* getLocalUser() = 0;
311 
324  virtual int getRemoteUsers(UserList& users) = 0;
325 
336  virtual int getUserInfo(user_id_t userId, agora::UserInfo& userInfo) = 0;
337 
346  virtual int registerObserver(IRtcConnectionObserver* observer, void(*safeDeleter)(IRtcConnectionObserver*) = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
347 
357  virtual int unregisterObserver(IRtcConnectionObserver* observer) = 0;
358 
367  virtual int registerNetworkObserver(INetworkObserver* observer, void(*safeDeleter)(INetworkObserver*) = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
368 
378  virtual int unregisterNetworkObserver(INetworkObserver* observer) = 0;
379 
387  virtual conn_id_t getConnId() = 0;
388 
397 
406 
426  virtual int createDataStream(int* streamId, bool reliable, bool ordered, bool sync) = 0;
427 
443  virtual int sendStreamMessage(int streamId, const char* data, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
444 
455  virtual int sendRdtMessage(user_id_t userId, RdtStreamType type, const char *data, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
456 
467  virtual int sendMediaControlMessage(user_id_t userId, const char* data, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
468 
487  virtual int enableEncryption(bool enabled, const EncryptionConfig& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
488 
502  virtual int sendCustomReportMessage(const char* id, const char* category, const char* event, const char* label, int value, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
514  virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0;
526  virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0;
527 
546  virtual int enableMultipath(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
547 
560  virtual int setUplinkMultipathMode(MultipathMode mode, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
561 
574  virtual int setDownlinkMultipathMode(MultipathMode mode, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
575 
588  virtual int setPreferMultipathType(MultipathType type, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
589 };
590 
595  public:
596  virtual ~IRtcConnectionObserver() {}
597 
604  virtual void onConnected(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
605 
612  virtual void onDisconnected(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
613 
620  virtual void onConnecting(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
621 
628  virtual void onReconnecting(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
629 
630  // This should be deleted. onConnected is enough.
631  virtual void onReconnected(const TConnectionInfo& connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason) = 0;
632 
638  virtual void onConnectionLost(const TConnectionInfo& connectionInfo) = 0;
639 
647  virtual void onLastmileQuality(const QUALITY_TYPE quality) = 0;
648 
656  virtual void onLastmileProbeResult(const LastmileProbeResult& result) = 0;
657 
668  virtual void onTokenPrivilegeWillExpire(const char* token) = 0;
669 
676  virtual void onTokenPrivilegeDidExpire() = 0;
677 
689  virtual void onRenewTokenResult(const char* token, RENEW_TOKEN_ERROR_CODE code) = 0;
690 
697  virtual void onConnectionFailure(const TConnectionInfo& connectionInfo,
698  CONNECTION_CHANGED_REASON_TYPE reason) = 0;
699 
707  virtual void onUserJoined(user_id_t userId) = 0;
708 
717  virtual void onUserLeft(user_id_t userId, USER_OFFLINE_REASON_TYPE reason) = 0;
718 
726  virtual void onTransportStats(const RtcStats& stats) = 0;
727 
735  virtual void onChangeRoleSuccess(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions& newRoleOptions) {
736  (void)oldRole;
737  (void)newRole;
738  (void)newRoleOptions;
739  }
740 
744  virtual void onChangeRoleFailure(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) {
745  (void)reason;
746  (void)currentRole;
747  }
748 
755  virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error) {
756  (void)error;
757  }
758 
769  virtual void onUserNetworkQuality(user_id_t userId, QUALITY_TYPE txQuality,
770  QUALITY_TYPE rxQuality) {
771  (void)userId;
772  (void)txQuality;
773  (void)rxQuality;
774  }
775 
779  virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
780  (void)type;
781  }
782 
784  virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) { (void)result; }
797  virtual void onSnapshotTaken(user_id_t userId, const char* filePath, int width, int height, int errCode) {
798  (void)userId;
799  (void)filePath;
800  (void)width;
801  (void)height;
802  (void)errCode;
803  }
809  virtual void onError(ERROR_CODE_TYPE error, const char* msg) {
810  (void)error;
811  (void)msg;
812  }
813 
843  virtual void onChannelMediaRelayStateChanged(int state, int code) = 0;
844 
850  virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
851  (void)uid;
852  (void)userAccount;
853  }
854 
856  virtual void onUserAccountUpdated(uid_t uid, const char* userAccount) {
857  (void)uid;
858  (void)userAccount;
859  }
860 
870  virtual void onStreamMessageError(user_id_t userId, int streamId, int code, int missed,
871  int cached) {
872  (void)userId;
873  (void)streamId;
874  (void)code;
875  (void)missed;
876  (void)cached;
877  }
878 
883  virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) {
884  (void)errorType;
885  }
892  virtual void onUploadLogResult(const char* requestId, bool success, UPLOAD_ERROR_REASON reason) {
893  (void)requestId;
894  (void)success;
895  (void)reason;
896  }
897 
903  virtual void onSetRtmFlagResult(int code) {
904  (void)code;
905  }
906 
912  virtual void onMultipathStats(const MultipathStats& stats) {
913  (void)stats;
914  }
915 };
916 
918  public:
919  virtual ~INetworkObserver() {}
920 
921  public:
930  virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo& info) {
931  (void)info;
932  }
933 
942  (void)info;
943  }
944 };
945 
946 } // namespace rtc
947 } // namespace agora
agora::rtc::IRtcConnectionObserver::onUserNetworkQuality
virtual void onUserNetworkQuality(user_id_t userId, QUALITY_TYPE txQuality, QUALITY_TYPE rxQuality)
Definition: NGIAgoraRtcConnection.h:769
agora::rtc::TConnectionInfo::state
CONNECTION_STATE_TYPE state
Definition: NGIAgoraRtcConnection.h:38
agora::rtc::RtcConnectionConfiguration::audioRecvEncodedFrame
bool audioRecvEncodedFrame
Definition: NGIAgoraRtcConnection.h:132
agora::rtc::RtcConnectionConfiguration::channelProfile
CHANNEL_PROFILE_TYPE channelProfile
Definition: NGIAgoraRtcConnection.h:127
agora::rtc::UserInfo
Definition: AgoraBase.h:7053
agora::rtc::LastmileProbeResult
Definition: AgoraBase.h:4758
agora::rtc::IRtcConnection::getConnectionInfo
virtual TConnectionInfo getConnectionInfo()=0
agora::rtc::IRtcConnectionObserver::onEncryptionError
virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType)
Definition: NGIAgoraRtcConnection.h:883
agora::rtc::IRtcConnectionObserver::onError
virtual void onError(ERROR_CODE_TYPE error, const char *msg)
Definition: NGIAgoraRtcConnection.h:809
agora::rtc::IRtcConnectionObserver::onConnecting
virtual void onConnecting(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
agora::base::IAgoraParameter
Definition: IAgoraParameter.h:147
agora::rtc::IRtcConnection::sendMediaControlMessage
virtual int sendMediaControlMessage(user_id_t userId, const char *data, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::RtcConnectionConfiguration::minPort
int minPort
Definition: NGIAgoraRtcConnection.h:116
agora::rtc::LastmileProbeConfig
Definition: AgoraBase.h:4688
agora::rtc::IRtcConnectionObserver::onTransportStats
virtual void onTransportStats(const RtcStats &stats)=0
agora::rtc::INetworkObserver
Definition: NGIAgoraRtcConnection.h:917
agora::rtc::IRtcConnection::startLastmileProbeTest
virtual int startLastmileProbeTest(const LastmileProbeConfig &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnection::sendStreamMessage
virtual int sendStreamMessage(int streamId, const char *data, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnectionObserver::onChangeRoleSuccess
virtual void onChangeRoleSuccess(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions &newRoleOptions)
Definition: NGIAgoraRtcConnection.h:735
agora::rtc::IRtcConnection::sendRdtMessage
virtual int sendRdtMessage(user_id_t userId, RdtStreamType type, const char *data, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnectionObserver::onChangeRoleFailure
virtual void onChangeRoleFailure(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
Definition: NGIAgoraRtcConnection.h:744
agora::rtc::IRtcConnectionObserver
Definition: NGIAgoraRtcConnection.h:594
agora::rtc::IRtcConnectionObserver::onUserJoined
virtual void onUserJoined(user_id_t userId)=0
agora::rtc::IRtcConnection::getUserInfo
virtual int getUserInfo(user_id_t userId, agora::UserInfo &userInfo)=0
agora::rtc::IRtcConnection::renewToken
virtual int renewToken(const char *token, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::util::AList
Definition: AgoraBase.h:233
agora::rtc::IRtcConnectionObserver::onMultipathStats
virtual void onMultipathStats(const MultipathStats &stats)
Definition: NGIAgoraRtcConnection.h:912
agora::rtc::IRtcConnectionObserver::onReconnecting
virtual void onReconnecting(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
agora::rtc::IRtcConnectionObserver::onDisconnected
virtual void onDisconnected(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
agora::rtc::IRtcConnection::getAgoraParameter
virtual agora::base::IAgoraParameter * getAgoraParameter()=0
agora::rtc::IRtcConnection::getUserInfoByUid
virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo *userInfo)=0
agora::rtc::RtcConnectionConfiguration::autoSubscribeAudio
bool autoSubscribeAudio
Definition: NGIAgoraRtcConnection.h:96
agora::rtc::TConnectSettings
Definition: NGIAgoraRtcConnection.h:55
agora::rtc::RtcConnectionConfiguration::audioRecvMediaPacket
bool audioRecvMediaPacket
Definition: NGIAgoraRtcConnection.h:137
agora::rtc::IRtcConnectionObserver::onContentInspectResult
virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result)
Definition: NGIAgoraRtcConnection.h:784
agora::rtc::IRtcConnection::getTransportStats
virtual RtcStats getTransportStats()=0
agora::rtc::IRtcConnection::unregisterNetworkObserver
virtual int unregisterNetworkObserver(INetworkObserver *observer)=0
agora::rtc::TConnectionInfo
Definition: NGIAgoraRtcConnection.h:26
agora::rtc::IRtcConnection::getRemoteUsers
virtual int getRemoteUsers(UserList &users)=0
agora::rtc::IRtcConnection::setUplinkMultipathMode
virtual int setUplinkMultipathMode(MultipathMode mode, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnectionObserver::onTokenPrivilegeWillExpire
virtual void onTokenPrivilegeWillExpire(const char *token)=0
agora::rtc::IRtcConnectionObserver::onUserAccountUpdated
virtual void onUserAccountUpdated(uid_t uid, const char *userAccount)
Definition: NGIAgoraRtcConnection.h:856
agora::rtc::RtcConnectionConfiguration::isInteractiveAudience
bool isInteractiveAudience
Definition: NGIAgoraRtcConnection.h:151
agora::rtc::IRtcConnectionObserver::onSetRtmFlagResult
virtual void onSetRtmFlagResult(int code)
Definition: NGIAgoraRtcConnection.h:903
agora::rtc::IRtcConnectionObserver::onTokenPrivilegeDidExpire
virtual void onTokenPrivilegeDidExpire()=0
agora::rtc::IRtcConnection::createDataStream
virtual int createDataStream(int *streamId, bool reliable, bool ordered, bool sync)=0
agora::rtc::IRtcConnection::connect
virtual int connect(const char *token, const char *channelId, const char *info, user_id_t userId, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::TConnectionInfo::channelId
util::AString channelId
Definition: NGIAgoraRtcConnection.h:34
agora::rtc::IRtcConnectionObserver::onLastmileProbeResult
virtual void onLastmileProbeResult(const LastmileProbeResult &result)=0
agora::rtc::IRtcConnectionObserver::onConnected
virtual void onConnected(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
agora::rtc::IRtcConnectionObserver::onLocalUserRegistered
virtual void onLocalUserRegistered(uid_t uid, const char *userAccount)
Definition: NGIAgoraRtcConnection.h:850
agora::rtc::IRtcConnectionObserver::onStreamMessageError
virtual void onStreamMessageError(user_id_t userId, int streamId, int code, int missed, int cached)
Definition: NGIAgoraRtcConnection.h:870
agora::rtc::IRtcConnection::getLocalUser
virtual ILocalUser * getLocalUser()=0
agora::rtc::INetworkObserver::onDownlinkNetworkInfoUpdated
virtual void onDownlinkNetworkInfoUpdated(const DownlinkNetworkInfo &info)
Definition: NGIAgoraRtcConnection.h:941
agora::rtc::IRtcConnectionObserver::onChannelMediaRelayStateChanged
virtual void onChannelMediaRelayStateChanged(int state, int code)=0
agora::UserInfo
Definition: AgoraBase.h:859
agora::rtc::IRtcConnectionObserver::onConnectionFailure
virtual void onConnectionFailure(const TConnectionInfo &connectionInfo, CONNECTION_CHANGED_REASON_TYPE reason)=0
agora::rtc::IRtcConnectionObserver::onRenewTokenResult
virtual void onRenewTokenResult(const char *token, RENEW_TOKEN_ERROR_CODE code)=0
Reports the result of calling renewToken.
agora::rtc::ILocalUser
Definition: NGIAgoraLocalUser.h:56
agora::rtc::RtcConnectionConfiguration::clientRoleType
CLIENT_ROLE_TYPE clientRoleType
Definition: NGIAgoraRtcConnection.h:124
agora::rtc::RtcConnectionConfiguration::enableAudioRecordingOrPlayout
bool enableAudioRecordingOrPlayout
Definition: NGIAgoraRtcConnection.h:108
agora::rtc::IRtcConnection::stopLastmileProbeTest
virtual int stopLastmileProbeTest(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnectionObserver::onNetworkTypeChanged
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: NGIAgoraRtcConnection.h:779
agora::rtc::IRtcConnectionObserver::onConnectionLost
virtual void onConnectionLost(const TConnectionInfo &connectionInfo)=0
agora::rtc::RtcConnectionConfiguration::videoRecvMediaPacket
bool videoRecvMediaPacket
Definition: NGIAgoraRtcConnection.h:142
agora::rtc::RtcConnectionConfiguration::autoSubscribeVideo
bool autoSubscribeVideo
Definition: NGIAgoraRtcConnection.h:102
agora::rtc::IRtcConnectionObserver::onUserLeft
virtual void onUserLeft(user_id_t userId, USER_OFFLINE_REASON_TYPE reason)=0
agora::rtc::IRtcConnectionObserver::onSnapshotTaken
virtual void onSnapshotTaken(user_id_t userId, const char *filePath, int width, int height, int errCode)
snapshot taken callback
Definition: NGIAgoraRtcConnection.h:797
agora::rtc::IRtcConnection::connect
virtual int connect(const TConnectSettings &settings, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::MultipathStats
Aggregates statistics for all network paths used in multipath transmission.
Definition: AgoraBase.h:2625
agora::rtc::EncryptionConfig
Definition: AgoraBase.h:6811
agora::rtc::IRtcConnection::disconnect
virtual int disconnect(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnection::enableMultipath
virtual int enableMultipath(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnectionObserver::onLastmileQuality
virtual void onLastmileQuality(const QUALITY_TYPE quality)=0
agora::rtc::TConnectSettings::token
const char * token
Definition: NGIAgoraRtcConnection.h:59
agora::rtc::RtcStats
Definition: AgoraBase.h:2672
agora::rtc::IRtcConnectionObserver::onLicenseValidationFailure
virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error)
Definition: NGIAgoraRtcConnection.h:755
agora::rtc::IRtcConnection::setDownlinkMultipathMode
virtual int setDownlinkMultipathMode(MultipathMode mode, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::RtcConnectionConfiguration
Definition: NGIAgoraRtcConnection.h:90
agora::rtc::IRtcConnection::sendCustomReportMessage
virtual int sendCustomReportMessage(const char *id, const char *category, const char *event, const char *label, int value, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IRtcConnection::registerObserver
virtual int registerObserver(IRtcConnectionObserver *observer, void(*safeDeleter)(IRtcConnectionObserver *)=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::RtcConnectionConfiguration::maxPort
int maxPort
Definition: NGIAgoraRtcConnection.h:120
agora::rtc::TConnectSettings::userId
user_id_t userId
Definition: NGIAgoraRtcConnection.h:76
agora::rtc::INetworkObserver::onUplinkNetworkInfoUpdated
virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo &info)
Definition: NGIAgoraRtcConnection.h:930
agora::rtc::TConnectionInfo::localUserId
util::AString localUserId
Definition: NGIAgoraRtcConnection.h:42
agora::rtc::IRtcConnectionObserver::onUploadLogResult
virtual void onUploadLogResult(const char *requestId, bool success, UPLOAD_ERROR_REASON reason)
Definition: NGIAgoraRtcConnection.h:892
agora::rtc::TConnectSettings::channelId
const char * channelId
Definition: NGIAgoraRtcConnection.h:70
agora::rtc::IRtcConnection
Definition: NGIAgoraRtcConnection.h:184
agora::util::CopyableAutoPtr
Definition: AgoraBase.h:156
agora::rtc::RtcConnectionConfiguration::isDataChannelOnly
bool isDataChannelOnly
Definition: NGIAgoraRtcConnection.h:156
agora::rtc::IRtcConnection::getConnId
virtual conn_id_t getConnId()=0
agora::rtc::IRtcConnection::enableEncryption
virtual int enableEncryption(bool enabled, const EncryptionConfig &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRtcConnection::getUserInfoByUserAccount
virtual int getUserInfoByUserAccount(const char *userAccount, rtc::UserInfo *userInfo)=0
agora::rtc::IRtcConnection::unregisterObserver
virtual int unregisterObserver(IRtcConnectionObserver *observer)=0
agora::rtc::RtcConnectionConfiguration::maxSendBitrate
int maxSendBitrate
Definition: NGIAgoraRtcConnection.h:112
agora::rtc::TConnectionInfo::internalUid
uid_t internalUid
Definition: NGIAgoraRtcConnection.h:46
agora::Optional< int64_t >
agora::rtc::IRtcConnection::setPreferMultipathType
virtual int setPreferMultipathType(MultipathType type, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ClientRoleOptions
Definition: AgoraBase.h:2927
agora::rtc::IRtcConnection::registerNetworkObserver
virtual int registerNetworkObserver(INetworkObserver *observer, void(*safeDeleter)(INetworkObserver *)=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::TConnectionInfo::id
conn_id_t id
Definition: NGIAgoraRtcConnection.h:30