cn.tee3.avd_SDK-C++  2.1.0
room.h
浏览该文件的文档.
1 #ifndef RT_Room_H
2 #define RT_Room_H
3 
4 #include "common.h"
5 
6 namespace tee3 {
7  namespace avd {
8  class User;
9  class IMUserManager;
10 
11 
18  public:
19 
25  typedef void(*FuncJoinResult) (const RoomId& roomId, Result result);
26 
32  class IListener {
33  public:
35 
45  virtual void onJoinResult(Result result) = 0;
46 
48 
58  virtual void onLeaveIndication(Result reason, const UserId& fromId) = 0;
59 
61 
69  virtual void onPublicData(const char* data, uint32 len, const UserId& fromId) = 0;
70 
79  virtual void onPrivateData(const char* data, uint32 len, const UserId& fromId) = 0;
80 
88  virtual void onAppDataNotify(const String& key, const String& value) = 0;
89 
94  virtual void onRoomStatusNotify(RoomStatus status) = 0;
95 
100  virtual void onConnectionStatus(ConnectionStatus status) = 0;
101  protected:
102  virtual ~IListener() {}
103  };
104  public:
111  static IRoom* obtain(const RoomId& roomId);
121  static IRoom* obtain(const RoomId& roomId, const UserId& userId);
127  virtual void release() = 0;
128 
129  public:
137  virtual Result setListener(IListener* listener) = 0;
138 
148  virtual Result join(const User& user, const String& password, FuncJoinResult joinresult) = 0;
149 
158  virtual Result leave(Result reason) = 0; // leave myself
159 
165  virtual Result close() = 0;
166 
172  virtual Result reJoin() = 0;
173 
179  virtual Result reConnect() = 0;
180 
190  virtual Result kickoutUser(Result reason, const UserId& userId) = 0; // leave someone else, who's onLeaveIndication
191 
199  virtual Result updateRoomStatus(RoomStatus status) = 0;
200 
206  virtual RoomStatus getRoomStatus() const = 0;
207 
212  virtual const RoomId& getRoomId() const = 0;
213 
219  virtual const String& getAppRoomId() const = 0;
220 
225  virtual const String& getRoomName() const = 0;
226 
231  virtual const String& getRoomTopic() const = 0;
232 
238  virtual const RoomInfo& getRoomInfo() const = 0;
239 
248  virtual Result sendPublicData(const char* data, uint32 len) = 0;
249 
259  virtual Result sendPrivateData(const char* data, uint32 len, const UserId& toId) = 0;
260 
268  virtual String getAppData(const String& key) const = 0;
276  virtual Result updateAppData(const String& key, const String& value) = 0;
285  virtual DeviceId createFakeDeviceID(const DeviceId& fakeId) = 0;
286 
287  virtual bool isWorking() const = 0;
288 
299  virtual Result join(const User& user, const String& password, FuncJoinResult joinresult, const String& roomToken) = 0;
300 
306  virtual Result enableStats(bool isEnable) = 0;
311  virtual const RoomStats& getRoomStats() const = 0;
317  virtual const MediaStats& getMediaStats(const DeviceId& deviceId) const = 0;
318  virtual const MediaStats& getAudioStats() = 0;
319 
320  public:
328  virtual Result setOption(RoomOption type, void* value) = 0;
329  virtual Result setOption(RoomOption type, const String& value) = 0;
337  virtual Result getOption(RoomOption type, void* value) = 0;
338  virtual String getOption(RoomOption type) = 0;
339 
340  protected:
341  virtual ~IRoom() {}
342  };
343 
350  public:
356  virtual IRoom* getRoom() = 0;
357 
363  virtual IMUserManager* getUserManager() = 0;
364 
369  virtual bool isSelfUser(const UserId& userId) const = 0;
370 
375  virtual bool isSelfDevice(const DeviceId& deviceId) const = 0;
376 
381  virtual const UserId getOwnerId(const DeviceId& deviceId) const = 0;
386  virtual const String& getOwnerName(const DeviceId& deviceId) const = 0;
387 
388  protected:
389  virtual ~IModule() {}
390  };
391 
392  } // namespace avd
393 } // namespace tee3
394 #endif//RT_Room_H
房间统计信息结构.
Definition: common.h:349
房间回调接口类
Definition: room.h:32
用户管理接口类
Definition: musermanager.h:33
String UserId
用户号类型,唯一标识房间内一个用户,长度不大于Max_UserId定义;由应用层定义传递给AVD SDK,要求保证房间...
Definition: common.h:13
房间信息结构.
Definition: common.h:30
int Result
返回值类型
Definition: combase.h:9
String DeviceId
设备号类型,唯一标识房间内一个设备,长度不大于Max_DeviceId定义;定义如下:userId+"_"+md5[os.getdeviceid() or os.getsystemid()]
Definition: common.h:12
#define RT_API_EXPORT
Definition: defines.h:186
媒体统计信息结构.
Definition: common.h:371
房间模块接口类
Definition: room.h:349
unsigned int uint32
Definition: defines.h:391
std::string String
tee3定义的String类型
Definition: common.h:10
RoomStatus
房间状态
Definition: combase.h:211
String RoomId
房间号类型,唯一标识房间内一个房间,长度不大于Max_RoomId定义;定义如下:[RId_P|T_H|F_P|M_type_guid];...
Definition: common.h:11
房间接口类
Definition: room.h:17
virtual ~IRoom()
Definition: room.h:341
ConnectionStatus
房间网络状态
Definition: combase.h:218
virtual ~IListener()
Definition: room.h:102
用户数据结构.用户集合类型
Definition: musermanager.h:14
virtual ~IModule()
Definition: room.h:389
Definition: audiocapture.h:5
RoomOption
房间选项
Definition: combase.h:388