Agora C++ API Reference for All Platforms

Loading...
Searching...
No Matches
NGIAgoraDataChannel.h
1
2// Copyright (c) 2022 Agora.io. All rights reserved
3
4// This program is confidential and proprietary to Agora.io.
5// And may not be copied, reproduced, modified, disclosed to others, published
6// or used, in whole or in part, without the express prior written permission
7// of Agora.io.
8#pragma once // NOLINT(build/header_guard)
9
10#include "AgoraRefPtr.h"
11#include "AgoraBase.h"
12#include <api/cpp/aosl_ares_class.h>
13namespace agora {
14
18 struct DataChannelConfig {
24 bool syncWithMedia;
30 bool ordered;
31
37 int compressionLength;
38 // optional
39 Optional<int> channelId; // 0~7
40
44 int32_t priority;
45 DataChannelConfig() :
46 syncWithMedia(false),
47 ordered(false),
48 compressionLength(0),
49 priority(-1) {}
50};
51
55 struct DataChannelInfo {
59 int dataChannelId;
63 util::AString metadata;
64};
65
69 struct UserDataChannelInfo {
73 util::AString userId;
77 const DataChannelInfo* infos;
81 size_t info_size;
82};
83
84 class ILocalDataChannel : public RefCountInterface {
85 public:
95 virtual int sendDataPacket(const char* packet, size_t length, uint64_t capture_time_ms, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
105 virtual int setMetaData(const char* metaData, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
106
112 virtual Optional<int> configuredChannelId() const = 0;
113
114 protected:
115 virtual ~ILocalDataChannel() {}
116};
117
118 class IRemoteDataChannel: public RefCountInterface {
119 public:
120 virtual util::AString UserId() const = 0;
121 virtual int ChannelId() const = 0;
122 virtual util::AString Meta() = 0;
123
124 protected:
125 virtual ~IRemoteDataChannel() {}
126};
127
128 class IDataChannelObserver {
129 public:
134 virtual void onLocalDataChannelPublished(agora_refptr<ILocalDataChannel> channel) {}
135
140 virtual void onRemoteDataChannelSubscribed(agora_refptr<IRemoteDataChannel> channel) {}
141
146 virtual void onRemoteDataChannelUnsubscribed(agora_refptr<IRemoteDataChannel> channel) {}
152 virtual void onRemoteDataPacketReceived(const UserDataChannelInfo& info, util::AString packet) {}
153
161 virtual void onRemoteDataChannelInfoUpdated(const UserDataChannelInfo* modified_infos, size_t modified_infos_size,
162 const UserDataChannelInfo* deleted_infos, size_t deleted_infos_size) {}
163 virtual ~IDataChannelObserver() {}
164};
165
166} // namespace agora
agora::IDataChannelObserver
Definition NGIAgoraDataChannel.h:128
agora::IDataChannelObserver::onRemoteDataChannelInfoUpdated
virtual void onRemoteDataChannelInfoUpdated(const UserDataChannelInfo *modified_infos, size_t modified_infos_size, const UserDataChannelInfo *deleted_infos, size_t deleted_infos_size)
Definition NGIAgoraDataChannel.h:161
agora::IDataChannelObserver::onRemoteDataPacketReceived
virtual void onRemoteDataPacketReceived(const UserDataChannelInfo &info, util::AString packet)
Definition NGIAgoraDataChannel.h:152
agora::IDataChannelObserver::onRemoteDataChannelSubscribed
virtual void onRemoteDataChannelSubscribed(agora_refptr< IRemoteDataChannel > channel)
Definition NGIAgoraDataChannel.h:140
agora::IDataChannelObserver::onLocalDataChannelPublished
virtual void onLocalDataChannelPublished(agora_refptr< ILocalDataChannel > channel)
Definition NGIAgoraDataChannel.h:134
agora::IDataChannelObserver::~IDataChannelObserver
virtual ~IDataChannelObserver()
Definition NGIAgoraDataChannel.h:163
agora::IDataChannelObserver::onRemoteDataChannelUnsubscribed
virtual void onRemoteDataChannelUnsubscribed(agora_refptr< IRemoteDataChannel > channel)
Definition NGIAgoraDataChannel.h:146
agora::ILocalDataChannel
Definition NGIAgoraDataChannel.h:84
agora::ILocalDataChannel::~ILocalDataChannel
virtual ~ILocalDataChannel()
Definition NGIAgoraDataChannel.h:115
agora::ILocalDataChannel::setMetaData
virtual int setMetaData(const char *metaData, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::ILocalDataChannel::configuredChannelId
virtual Optional< int > configuredChannelId() const =0
agora::ILocalDataChannel::sendDataPacket
virtual int sendDataPacket(const char *packet, size_t length, uint64_t capture_time_ms, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::IRemoteDataChannel
Definition NGIAgoraDataChannel.h:118
agora::IRemoteDataChannel::Meta
virtual util::AString Meta()=0
agora::IRemoteDataChannel::ChannelId
virtual int ChannelId() const =0
agora::IRemoteDataChannel::~IRemoteDataChannel
virtual ~IRemoteDataChannel()
Definition NGIAgoraDataChannel.h:125
agora::IRemoteDataChannel::UserId
virtual util::AString UserId() const =0
agora::Optional
Definition AgoraOptional.h:413
agora::RefCountInterface
Definition AgoraRefPtr.h:31
agora::agora_refptr
Definition AgoraRefPtr.h:44
agora::util::AString
CopyableAutoPtr< IString > AString
Definition AgoraBase.h:182
agora
Definition AgoraAtomicOps.h:21
agora::DataChannelConfig::syncWithMedia
bool syncWithMedia
Definition NGIAgoraDataChannel.h:24
agora::DataChannelConfig::compressionLength
int compressionLength
Definition NGIAgoraDataChannel.h:37
agora::DataChannelConfig::priority
int32_t priority
Definition NGIAgoraDataChannel.h:44
agora::DataChannelConfig::ordered
bool ordered
Definition NGIAgoraDataChannel.h:30
agora::DataChannelConfig::DataChannelConfig
DataChannelConfig()
Definition NGIAgoraDataChannel.h:45
agora::DataChannelConfig::channelId
Optional< int > channelId
Definition NGIAgoraDataChannel.h:39
agora::DataChannelInfo
Definition NGIAgoraDataChannel.h:55
agora::DataChannelInfo::dataChannelId
int dataChannelId
Definition NGIAgoraDataChannel.h:59
agora::DataChannelInfo::metadata
util::AString metadata
Definition NGIAgoraDataChannel.h:63
agora::UserDataChannelInfo
Definition NGIAgoraDataChannel.h:69
agora::UserDataChannelInfo::userId
util::AString userId
Definition NGIAgoraDataChannel.h:73
agora::UserDataChannelInfo::info_size
size_t info_size
Definition NGIAgoraDataChannel.h:81
agora::UserDataChannelInfo::infos
const DataChannelInfo * infos
Definition NGIAgoraDataChannel.h:77