Easemob Windows SDK
emgroup.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__emgroup__
14 #define __easemob__emgroup__
15 
16 #include "emgroupsetting.h"
17 #include "embaseobject.h"
18 
19 #include <string>
20 #include <vector>
21 #include <memory>
22 
23 namespace easemob
24 {
25 
26 typedef std::vector<std::string> EMGroupMemberList;
27 
28 class EMGroupPrivate;
29 class EMGroupManager;
30 class EMDatabase;
31 class EASEMOB_API EMGroup : public EMBaseObject
32 {
33 public:
34 
35  typedef enum
36  {
37  BE_KICKED, //User is kicked out by the group owner
38  DESTROYED //Group was destroyed by the group owner.
39  } EMGroupLeaveReason;
40 
41  virtual ~EMGroup();
42 
49  const std::string& groupId() const;
50 
57  const std::string& groupSubject() const;
58 
65  const std::string& groupDescription() const;
66 
73  const std::string& groupOwner() const;
74 
82  const EMGroupSetting* groupSetting() const;
83 
91  int groupMembersCount() const;
92 
99  bool isPushEnabled() const;
100 
108  bool isMessageBlocked() const;
109 
117  const EMGroupMemberList* groupMembers() const;
118 
126  const EMGroupMemberList* groupBans() const;
127 private:
135  EMGroup(const std::string &groupId);
136  EMGroup(const EMGroup&);
137  EMGroup& operator=(const EMGroup&);
138 
139  EMGroupPrivate *mPrivate;
140  friend EMGroupManager;
141  friend EMDatabase;
142 };
143 
144 typedef std::shared_ptr<EMGroup> EMGroupPtr;
145 
146 }
147 
148 #endif /* defined(__easemob__emgroup__) */
Definition: emgroupsetting.h:22
Definition: emattributevalue.h:28
Definition: emgroup.h:31
Definition: embaseobject.h:28