Easemob Windows SDK
emgroupmanager_interface.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 EMCORE_GROUPMANAGER_INTERFACE_H
14 #define EMCORE_GROUPMANAGER_INTERFACE_H
15 
16 #include <vector>
17 #include <string>
18 
19 #include "emgroup.h"
20 #include "emerror.h"
21 #include "emcursorresult.h"
22 #include "emgroupmanager_listener.h"
23 
24 namespace easemob {
25 
26 typedef std::vector<EMGroupPtr> EMGroupList;
27 
28 class EASEMOB_API EMGroupManagerInterface {
29 public:
30  virtual ~EMGroupManagerInterface() {};
31 
38  virtual void addListener(EMGroupManagerListener*) = 0;
39 
46  virtual void removeListener(EMGroupManagerListener*) = 0;
47 
54  virtual void clearListeners() = 0;
55 
62  virtual EMGroupPtr groupWithId(const std::string& groupId) = 0;
63 
70  virtual EMGroupList allMyGroups(EMError &error) = 0;
71 
77  virtual EMGroupList loadAllMyGroupsFromDB() = 0;
78 
86  virtual EMGroupList fetchAllMyGroups(EMError &error) = 0;
87 
97  virtual EMCursorResult fetchPublicGroupsWithCursor(
98  const std::string &cursor,
99  int pageSize,
100  EMError &error) = 0;
101 
114  virtual EMGroupPtr createGroup(
115  const std::string &subject,
116  const std::string &description,
117  const std::string &welcomeMessage,
118  const EMGroupSetting &setting,
119  const EMGroupMemberList &members,
120  EMError &error) = 0;
121 
130  virtual EMGroupPtr joinPublicGroup(
131  const std::string &groupId,
132  EMError &error
133  ) = 0;
134 
145  virtual EMGroupPtr applyJoinPublicGroup(
146  const std::string &groupId,
147  const std::string &nickName,
148  const std::string &message,
149  EMError &error
150  ) = 0;
151 
160  virtual EMGroupPtr leaveGroup(
161  const std::string &groupId,
162  EMError &error
163  ) = 0;
164 
173  virtual EMGroupPtr destroyGroup(
174  const std::string &groupId,
175  EMError &error
176  ) = 0;
177 
188  virtual EMGroupPtr addGroupMembers(
189  const std::string &groupId,
190  const EMGroupMemberList &members,
191  const std::string &welcomeMessage,
192  EMError &error
193  ) = 0;
194 
204  virtual EMGroupPtr removeGroupMembers(
205  const std::string &groupId,
206  const EMGroupMemberList &members,
207  EMError &error
208  ) = 0;
209 
220  virtual EMGroupPtr blockGroupMembers(
221  const std::string &groupId,
222  const EMGroupMemberList &members,
223  EMError &error,
224  const std::string &reason = ""
225  ) = 0;
226 
236  virtual EMGroupPtr unblockGroupMembers(
237  const std::string &groupId,
238  const EMGroupMemberList &members,
239  EMError &error
240  ) = 0;
241 
251  virtual EMGroupPtr changeGroupSubject(
252  const std::string &groupId,
253  const std::string &newSubject,
254  EMError &error
255  ) = 0;
256 
266  virtual EMGroupPtr changeGroupDescription(
267  const std::string &groupId,
268  const std::string &newDescription,
269  EMError &error
270  ) = 0;
271 
280  virtual EMGroupPtr fetchGroupSpecification(
281  const std::string &groupId,
282  EMError &error,
283  bool fetchMembers = true
284  ) = 0;
285 
293  virtual const EMGroupMemberList* fetchGroupBans(
294  const std::string &groupId,
295  EMError &error
296  ) = 0;
297 
305  virtual EMGroupPtr searchPublicGroup(
306  const std::string &groupId,
307  EMError &error
308  ) = 0;
309 
318  virtual EMGroupPtr blockGroupMessage(
319  const std::string &groupId,
320  EMError &error
321  ) = 0;
322 
330  virtual EMGroupPtr unblockGroupMessage(
331  const std::string &groupId,
332  EMError &error
333  ) = 0;
334 
344  virtual EMGroupPtr acceptJoinGroupApplication(
345  const std::string &groupId,
346  const std::string &user,
347  EMError &error) = 0;
348 
359  virtual EMGroupPtr declineJoinGroupApplication(
360  const std::string &groupId,
361  const std::string &user,
362  const std::string &reason,
363  EMError &error) = 0;
364 
373  virtual EMGroupPtr acceptInvitationFromGroup(
374  const std::string &groupId,
375  const std::string &inviter,
376  EMError &error) = 0;
377 
387  virtual void declineInvitationFromGroup(
388  const std::string &groupId,
389  const std::string &inviter,
390  const std::string &reason,
391  EMError &error) = 0;
392 };
393 
394 }
395 
396 #endif
Definition: emcursorresult.h:24
Definition: emgroupmanager_listener.h:23
Definition: emerror.h:27
Definition: emgroupsetting.h:22
Definition: emattributevalue.h:28
Definition: emgroupmanager_interface.h:28