C++SDK  1.0.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 
61  virtual void onLeaveIndication(Result reason, const UserId& fromId) = 0;
62 
64 
72  virtual void onPublicData(const char* data, uint32 len, const UserId& fromId) = 0;
73 
82  virtual void onPrivateData(const char* data, uint32 len, const UserId& fromId) = 0;
83 
91  virtual void onAppDataNotify(const String& key, const String& value) = 0;
92 
97  virtual void onRoomStatusNotify(RoomStatus status) = 0;
98 
103  virtual void onConnectionStatus(ConnectionStatus status) = 0;
104  protected:
105  virtual ~IListener() {}
106  };
107  public:
114  static IRoom* obtain(const RoomId& roomId);
124  static IRoom* obtain(const RoomId& roomId, const UserId& userId);
130  virtual void release() = 0;
131 
132  public:
140  virtual Result setListener(IListener* listener) = 0;
141 
151  virtual Result join(const User& user, const String& password, FuncJoinResult joinresult) = 0;
152 
161  virtual Result leave(Result reason) = 0; // leave myself
162 
168  virtual Result close() = 0;
169 
175  virtual Result reJoin() = 0;
176 
182  virtual Result reConnect() = 0;
183 
193  virtual Result kickoutUser(Result reason, const UserId& userId) = 0; // leave someone else, who's onLeaveIndication
194 
202  virtual Result updateRoomStatus(RoomStatus status) = 0;
203 
209  virtual RoomStatus getRoomStatus() const = 0;
210 
215  virtual const RoomId& getRoomId() const = 0;
216 
222  virtual const String& getAppRoomId() const = 0;
223 
228  virtual const String& getRoomName() const = 0;
229 
234  virtual const String& getRoomTopic() const = 0;
235 
241  virtual const RoomInfo& getRoomInfo() const = 0;
242 
251  virtual Result sendPublicData(const char* data, uint32 len) = 0;
252 
262  virtual Result sendPrivateData(const char* data, uint32 len, const UserId& toId) = 0;
263 
271  virtual String getAppData(const String& key) const = 0;
279  virtual Result updateAppData(const String& key, const String& value) = 0;
288  virtual DeviceId createFakeDeviceID(const DeviceId& fakeId) = 0;
289 
290  virtual bool isWorking() const = 0;
291 
302  virtual Result join(const User& user, const String& password, FuncJoinResult joinresult, const String& roomToken) = 0;
303 
309  virtual Result enableStats(bool isEnable) = 0;
314  virtual const RoomStats& getRoomStats() const = 0;
320  virtual const MediaStats& getMediaStats(const DeviceId& deviceId) const = 0;
321  virtual const MediaStats& getAudioStats() = 0;
322 
323  public:
331  virtual Result setOption(RoomOption type, void* value) = 0;
332  virtual Result setOption(RoomOption type, const String& value) = 0;
340  virtual Result getOption(RoomOption type, void* value) = 0;
341  virtual String getOption(RoomOption type) = 0;
342 
348  virtual Result SendMeiaDataOnce() = 0;
349 
356  virtual void createLogPduMsg(std::string msg, int level, int64 timestamp = 0) = 0;
357  protected:
358  virtual ~IRoom() {}
359  };
360 
367  public:
373  virtual IRoom* getRoom() = 0;
374 
380  virtual IMUserManager* getUserManager() = 0;
381 
386  virtual bool isSelfUser(const UserId& userId) const = 0;
387 
392  virtual bool isSelfDevice(const DeviceId& deviceId) const = 0;
393 
398  virtual const UserId getOwnerId(const DeviceId& deviceId) const = 0;
403  virtual const String& getOwnerName(const DeviceId& deviceId) const = 0;
404 
405  protected:
406  virtual ~IModule() {}
407  };
408 
409  } // namespace avd
410 } // namespace tee3
411 #endif//RT_Room_H
Definition: common.h:374
NAMESPACE_TEE3_BEGIN typedef std::string String
Definition: common.h:10
Definition: common.h:352
String UserId
Definition: common.h:13
int Result
Definition: combase.h:13
String DeviceId
Definition: common.h:12
Definition: room.h:17
#define RT_API_EXPORT
Definition: defines.h:188
unsigned int uint32
Definition: defines.h:393
Definition: room.h:366
long long int64
Definition: defines.h:383
Definition: room.h:32
Definition: common.h:33
RoomStatus
Definition: combase.h:223
virtual ~IListener()
Definition: room.h:105
String RoomId
Definition: common.h:11
Definition: musermanager.h:14
Definition: musermanager.h:34
virtual ~IRoom()
Definition: room.h:358
ConnectionStatus
Definition: combase.h:230
virtual ~IModule()
Definition: room.h:406
Definition: audiocapture.h:5
RoomOption
Definition: combase.h:423