Easemob Windows SDK
emchatroom.h
1 /************************************************************
2  * * EaseMob CONFIDENTIAL
3  * __________________
4  * Copyright (C) 2015 EaseMob Technologies. All rights reserved.
5  *
6  * NOTICE: All information contained herein is, and remains
7  * the property of EaseMob Technologies.
8  * Dissemination of this information or reproduction of this material
9  * is strictly forbidden unless prior written permission is obtained
10  * from EaseMob Technologies.
11  */
12 
13 #ifndef __easemob__emchatroom__
14 #define __easemob__emchatroom__
15 
16 #include <string>
17 #include <memory>
18 #include <vector>
19 
20 #include "embaseobject.h"
21 
22 namespace easemob
23 {
24 typedef std::vector<std::string> EMChatroomMemberList;
25 
26 class EMChatroomPrivate;
27 class EMChatroomManager;
28 class EMDatabase;
29 class EASEMOB_API EMChatroom : public EMBaseObject
30 {
31 public:
32  typedef enum
33  {
34  BE_KICKED, //User is kicked out by the chatroom owner
35  DESTROYED //Chatroom was destroyed by the chatroom owner.
36  } EMChatroomLeaveReason;
37 
38  virtual ~EMChatroom();
39 
46  const std::string& chatroomId() const;
47 
54  const std::string& chatroomSubject() const;
55 
62  const std::string& chatroomDescription() const;
63 
70  const std::string& owner() const;
71 
79  int chatroomMemberCount() const;
80 
88  int chatroomMemberMaxCount() const;
89 
97  EMChatroomMemberList chatroomMembers() const;
98 
99 private:
107  EMChatroom(const std::string &chatroomId);
108  EMChatroom(const EMChatroom&);
109  EMChatroom& operator=(const EMChatroom&);
110 
111  EMChatroomPrivate *mPrivate;
112  friend EMChatroomManager;
113  friend EMDatabase;
114 };
115 
116 typedef std::shared_ptr<EMChatroom> EMChatroomPtr;
117 
118 }
119 
120 #endif /* defined(__easemob__emchatroom__) */
Definition: emattributevalue.h:28
Definition: embaseobject.h:28
Definition: emchatroom.h:29