15 #import <Foundation/Foundation.h>
17 #import "EMCommonDefs.h"
18 #import "EMGroupManagerDelegate.h"
20 #import "EMGroupOptions.h"
21 #import "EMCursorResult.h"
22 #import "EMGroupSharedFile.h"
35 #pragma mark - Delegate
51 delegateQueue:(dispatch_queue_t _Nullable )aQueue;
64 - (void)removeDelegate:(
id _Nonnull)aDelegate;
67 #pragma mark - Get Group
109 - (NSArray *)getGroupsWithoutPushNotification:(
EMError **)pError EM_DEPRECATED_IOS(3_3_2, 3_8_3, "Use -
IEMPushManager::noPushGroups");
112 #pragma mark - Get group from server
137 - (
EMCursorResult<
EMGroup*> *_Nullable)getPublicGroupsFromServerWithCursor:(NSString *_Nullable)aCursor
138 pageSize:(NSInteger)aPageSize
139 error:(
EMError **_Nullable)pError;
162 - (void)getPublicGroupsFromServerWithCursor:(NSString *_Nullable)aCursor
163 pageSize:(NSInteger)aPageSize
187 - (
EMGroup * _Nullable)searchPublicGroupWithId:(NSString *_Nonnull)aGroundId
188 error:(
EMError **_Nullable)pError;
205 - (void)searchPublicGroupWithId:(NSString *_Nonnull)aGroundId
206 completion:(
void (^_Nullable)(
EMGroup *aGroup,
EMError *_Nullable aError))aCompletionBlock;
225 - (void)getJoinedGroupsCountFromServerWithCompletion:(
void (^_Nullable)(NSInteger groupCount,
EMError *_Nullable aError))aCompletionBlock;
227 #pragma mark - Create
258 - (
EMGroup * _Nullable)createGroupWithSubject:(NSString *_Nullable)aSubject
259 description:(NSString *_Nullable)aDescription
260 invitees:(NSArray<NSString *> * _Nullable)aInvitees
261 message:(NSString *_Nullable)aMessage
263 error:(
EMError **_Nullable)pError;
294 - (void)createGroupWithSubject:(NSString *_Nullable)subject
295 avatar:(NSString *_Nullable)avatar
296 description:(NSString *_Nullable)description
297 invitees:(NSArray<NSString *> * _Nullable)invitees
298 message:(NSString *_Nullable)message
300 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
329 - (void)createGroupWithSubject:(NSString *_Nullable)aSubject
330 description:(NSString *_Nullable)aDescription
331 invitees:(NSArray<NSString *> * _Nullable)aInvitees
332 message:(NSString *_Nullable)aMessage
334 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
336 #pragma mark - Fetch Info
359 - (
EMGroup * _Nullable)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
360 error:(
EMError **_Nullable)pError;
385 - (
EMGroup * _Nullable)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
386 fetchMembers:(BOOL)fetchMembers
387 error:(
EMError **_Nullable)pError;
408 - (void)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
409 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
430 - (void)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
431 fetchMembers:(BOOL)fetchMembers
432 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
465 - (
EMCursorResult<NSString*> *)getGroupMemberListFromServerWithId:(NSString *_Nonnull)aGroupId
466 cursor:(NSString *_Nullable)aCursor
467 pageSize:(NSInteger)aPageSize
468 error:(
EMError **_Nullable)pError;
493 - (void)getGroupMemberListFromServerWithId:(NSString *_Nonnull)aGroupId
494 cursor:(NSString *_Nullable)aCursor
495 pageSize:(NSInteger)aPageSize
496 completion:(
void (^_Nullable)(
EMCursorResult<NSString*> *aResult,
EMError *_Nullable aError))aCompletionBlock;
521 - (void)fetchGroupMemberInfoListFromServerWithGroupId:(NSString *_Nonnull)groupId
522 cursor:(NSString *_Nonnull)cursor
523 limit:(NSInteger)limit
555 - (NSArray<NSString *> * _Nullable)getGroupBlacklistFromServerWithId:(NSString *_Nonnull)aGroupId
556 pageNumber:(NSInteger)aPageNum
557 pageSize:(NSInteger)aPageSize
558 error:(
EMError **_Nullable)pError;
583 - (void)getGroupBlacklistFromServerWithId:(NSString *_Nonnull)aGroupId
584 pageNumber:(NSInteger)aPageNum
585 pageSize:(NSInteger)aPageSize
586 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
614 - (NSArray<NSString *> * _Nullable)getGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
615 pageNumber:(NSInteger)aPageNum
616 pageSize:(NSInteger)aPageSize
617 error:(
EMError **_Nullable)pError;
642 - (void)getGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
643 pageNumber:(NSInteger)aPageNum
644 pageSize:(NSInteger)aPageSize
645 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
670 - (void)fetchGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
671 pageNumber:(NSInteger)aPageNum
672 pageSize:(NSInteger)aPageSize
673 completion:(
void (^_Nullable)(NSDictionary<NSString *, NSNumber *> *_Nullable aDict,
EMError *_Nullable aError))aCompletionBlock;
696 - (NSArray<
EMGroupSharedFile *> *_Nullable)getGroupFileListWithId:(NSString *_Nonnull)aGroupId
697 pageNumber:(NSInteger)aPageNum
698 pageSize:(NSInteger)aPageSize
699 error:(
EMError **_Nullable)pError;
722 - (void)getGroupFileListWithId:(NSString *_Nonnull)aGroupId
723 pageNumber:(NSInteger)aPageNum
724 pageSize:(NSInteger)aPageSize
725 completion:(
void (^_Nullable)(NSArray<
EMGroupSharedFile *> *_Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
747 - (NSArray *)getGroupWhiteListFromServerWithId:(NSString *_Nonnull)aGroupId
748 error:(
EMError **_Nullable)pError;
766 - (void)getGroupWhiteListFromServerWithId:(NSString *_Nonnull)aGroupId
767 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
788 - (BOOL)isMemberInWhiteListFromServerWithGroupId:(NSString *_Nonnull)aGroupId
789 error:(
EMError **_Nullable)pError;
806 - (void)isMemberInWhiteListFromServerWithGroupId:(NSString *_Nonnull)aGroupId
807 completion:(
void (^_Nullable)(BOOL inWhiteList,
EMError *_Nullable aError))aCompletionBlock;
826 - (NSString *_Nullable)getGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
827 error:(
EMError **_Nullable)pError;
844 - (void)isMemberInMuteListFromServerWithGroupId:(NSString * _Nonnull)aGroupId
845 completion:(
void (^ _Nonnull)(BOOL inMuteList,
EMError * _Nullable aError))aCompletionBlock;
862 - (void)getGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
863 completion:(
void (^_Nullable)(NSString *aAnnouncement,
EMError *_Nullable aError))aCompletionBlock;
865 #pragma mark - Edit Group
892 - (
EMGroup * _Nullable)addOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
893 toGroup:(NSString *_Nonnull)aGroupId
894 welcomeMessage:(NSString *_Nullable)aWelcomeMessage
895 error:(
EMError **_Nullable)pError;
916 - (void)addMembers:(NSArray<NSString *> * _Nonnull)aUsers
917 toGroup:(NSString *_Nonnull)aGroupId
918 message:(NSString *_Nullable)aMessage
919 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
948 - (
EMGroup * _Nullable)removeOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
949 fromGroup:(NSString *_Nonnull)aGroupId
950 error:(
EMError **_Nullable)pError;
973 - (void)removeMembers:(NSArray<NSString *> * _Nonnull)aUsers
974 fromGroup:(NSString *_Nonnull)aGroupId
975 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1004 - (
EMGroup * _Nullable)blockOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
1005 fromGroup:(NSString *_Nonnull)aGroupId
1006 error:(
EMError **_Nullable)pError;
1029 - (void)blockMembers:(NSArray<NSString *> * _Nonnull)aMembers
1030 fromGroup:(NSString *_Nonnull)aGroupId
1031 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1061 - (
EMGroup * _Nullable)unblockOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
1062 forGroup:(NSString *_Nonnull)aGroupId
1063 error:(
EMError **_Nullable)pError;
1086 - (void)unblockMembers:(NSArray<NSString *> * _Nonnull)aMembers
1087 fromGroup:(NSString *_Nonnull)aGroupId
1088 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1117 - (
EMGroup * _Nullable)changeGroupSubject:(NSString *_Nullable)aSubject
1118 forGroup:(NSString *_Nonnull)aGroupId
1119 error:(
EMError **_Nullable)pError;
1142 - (void)updateGroupSubject:(NSString *_Nullable)aSubject
1143 forGroup:(NSString *_Nonnull)aGroupId
1144 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1166 - (void)updateGroupAvatar:(NSString *_Nullable)avatar
1167 groupId:(NSString *_Nonnull)groupId
1168 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
1197 - (
EMGroup * _Nullable)changeDescription:(NSString *_Nullable)aDescription
1198 forGroup:(NSString *_Nonnull)aGroupId
1199 error:(
EMError **_Nullable)pError;
1222 - (void)updateDescription:(NSString *_Nullable)aDescription
1223 forGroup:(NSString *_Nonnull)aGroupId
1224 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1245 - (void)leaveGroup:(NSString *_Nonnull)aGroupId
1246 error:(
EMError **_Nullable)pError;
1263 - (void)leaveGroup:(NSString *_Nonnull)aGroupId
1264 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1289 - (
EMError *)destroyGroup:(NSString *_Nonnull)aGroupId;
1309 - (void)destroyGroup:(NSString *_Nonnull)aGroupId
1310 finishCompletion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1336 - (
EMGroup * _Nullable)blockGroup:(NSString *_Nonnull)aGroupId
1337 error:(
EMError **_Nullable)pError;
1355 - (void)blockGroup:(NSString *_Nonnull)aGroupId
1356 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1379 - (
EMGroup * _Nullable)unblockGroup:(NSString *_Nonnull)aGroupId
1380 error:(
EMError **_Nullable)pError;
1396 - (void)unblockGroup:(NSString *_Nonnull)aGroupId
1397 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1427 - (
EMGroup * _Nullable)updateGroupOwner:(NSString *_Nonnull)aGroupId
1428 newOwner:(NSString *_Nonnull)aNewOwner
1429 error:(
EMError **_Nullable)pError;
1452 - (void)updateGroupOwner:(NSString *_Nonnull)aGroupId
1453 newOwner:(NSString *_Nonnull)aNewOwner
1454 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1481 - (
EMGroup * _Nullable)addAdmin:(NSString *_Nonnull)aAdmin
1482 toGroup:(NSString *_Nonnull)aGroupId
1483 error:(
EMError **_Nullable)pError;
1510 - (void)addAdmin:(NSString *_Nonnull)aAdmin
1511 toGroup:(NSString *_Nonnull)aGroupId
1512 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1541 - (
EMGroup * _Nullable)removeAdmin:(NSString *_Nonnull)aAdmin
1542 fromGroup:(NSString *_Nonnull)aGroupId
1543 error:(
EMError **_Nullable)pError;
1570 - (void)removeAdmin:(NSString *_Nonnull)aAdmin
1571 fromGroup:(NSString *_Nonnull)aGroupId
1572 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1604 - (
EMGroup * _Nullable)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
1605 muteMilliseconds:(NSInteger)aMuteMilliseconds
1606 fromGroup:(NSString *_Nonnull)aGroupId
1607 error:(
EMError **_Nullable)pError;
1635 - (void)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
1636 muteMilliseconds:(NSInteger)aMuteMilliseconds
1637 fromGroup:(NSString *_Nonnull)aGroupId
1638 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1667 - (
EMGroup * _Nullable)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
1668 fromGroup:(NSString *_Nonnull)aGroupId
1669 error:(
EMError **_Nullable)pError;
1695 - (void)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
1696 fromGroup:(NSString *_Nonnull)aGroupId
1697 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1724 - (
EMGroup * _Nullable)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1725 error:(
EMError **_Nullable)pError;
1749 - (void)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1750 completion:(
void(^)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1778 - (
EMGroup * _Nullable)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1779 error:(
EMError **_Nullable)pError;
1804 - (void)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1805 completion:(
void(^)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1835 - (
EMGroup * _Nullable)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1836 fromGroup:(NSString *_Nonnull)aGroupId
1837 error:(
EMError **_Nullable)pError;
1861 - (void)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1862 fromGroup:(NSString *_Nonnull)aGroupId
1863 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1893 - (
EMGroup * _Nullable)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1894 fromGroup:(NSString *_Nonnull)aGroupId
1895 error:(
EMError **_Nullable)pError;
1921 - (void)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1922 fromGroup:(NSString *_Nonnull)aGroupId
1923 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1944 - (void)uploadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1945 filePath:(NSString* _Nonnull)aFilePath
1946 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1947 completion:(
void (^_Nullable)(
EMGroupSharedFile *_Nullable aSharedFile,
EMError *_Nullable aError))aCompletionBlock;
1968 - (void)downloadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1969 filePath:(NSString *_Nonnull)aFilePath
1970 sharedFileId:(NSString *_Nonnull)aSharedFileId
1971 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1972 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1995 - (
EMGroup * _Nullable)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1996 sharedFileId:(NSString *_Nonnull)aSharedFileId
1997 error:(
EMError **_Nullable)pError;
2014 - (void)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
2015 sharedFileId:(NSString *_Nonnull)aSharedFileId
2016 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2043 - (
EMGroup * _Nullable)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
2044 announcement:(NSString *_Nullable)aAnnouncement
2045 error:(
EMError **_Nullable)pError;
2071 - (void)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
2072 announcement:(NSString *_Nullable)aAnnouncement
2073 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2100 - (
EMGroup * _Nullable)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
2101 ext:(NSString *_Nullable)aExt
2102 error:(
EMError **_Nullable)pError;
2124 - (void)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
2125 ext:(NSString *_Nullable)aExt
2126 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2128 #pragma mark - Edit Public Group
2151 - (
EMGroup * _Nullable)joinPublicGroup:(NSString *_Nonnull)aGroupId
2152 error:(
EMError **_Nullable)pError;
2168 - (void)joinPublicGroup:(NSString *_Nonnull)aGroupId
2169 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2194 - (
EMGroup * _Nullable)applyJoinPublicGroup:(NSString *_Nonnull)aGroupId
2195 message:(NSString *_Nullable)aMessage
2196 error:(
EMError **_Nullable)pError;
2215 - (void)requestToJoinPublicGroup:(NSString *_Nonnull)aGroupId
2216 message:(NSString *_Nullable)aMessage
2217 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2219 #pragma mark - Application
2246 - (
EMError *)acceptJoinApplication:(NSString *_Nonnull)aGroupId
2247 applicant:(NSString *_Nonnull)aUsername;
2274 - (void)approveJoinGroupRequest:(NSString *_Nonnull)aGroupId
2275 sender:(NSString *_Nonnull)aUsername
2276 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2305 - (
EMError *)declineJoinApplication:(NSString *_Nonnull)aGroupId
2306 applicant:(NSString *_Nonnull)aUsername
2307 reason:(NSString *_Nullable)aReason;
2336 - (void)declineJoinGroupRequest:(NSString *_Nonnull)aGroupId
2337 sender:(NSString *_Nonnull)aUsername
2338 reason:(NSString *_Nullable)aReason
2339 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2364 - (
EMGroup * _Nullable)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
2365 inviter:(NSString *_Nonnull)aUsername
2366 error:(
EMError **_Nullable)pError;
2390 - (void)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
2391 inviter:(NSString *_Nonnull)aUsername
2392 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2417 - (
EMError *)declineInvitationFromGroup:(NSString *_Nonnull)aGroupId
2418 inviter:(NSString *_Nonnull)aUsername
2419 reason:(NSString *_Nullable)aReason;
2444 - (void)declineGroupInvitation:(NSString *_Nonnull)aGroupId
2445 inviter:(NSString *_Nonnull)aInviter
2446 reason:(NSString *_Nullable)aReason
2447 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
2487 - (void)getJoinedGroupsFromServerWithPage:(NSInteger)aPageNum
2488 pageSize:(NSInteger)aPageSize
2489 needMemberCount:(BOOL)aNeedMemberCount
2490 needRole:(BOOL)aNeedRole
2491 completion:(
void (^_Nullable)(NSArray<
EMGroup *> *_Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
2493 #pragma mark - Group member attributes
2511 - (void)setMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId attributes:(NSDictionary<NSString*,NSString*> *_Nonnull)attributes completion:(
void (^_Nullable)(
EMError *_Nullable error))completionBlock;
2534 - (void)fetchMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId completion:(
void (^ _Nullable)(NSDictionary<NSString *,NSString *> * _Nullable,
EMError * _Nullable))completionBlock;
2559 - (void)fetchMembersAttributes:(NSString *_Nonnull)groupId userIds:(NSArray<__kindof NSString *> *_Nonnull)userIds keys:(NSArray<__kindof NSString *> *_Nonnull)keys completion:(
void (^_Nullable)(NSDictionary<NSString*,NSDictionary<NSString*,NSString*>*> *_Nullable attributes,
EMError *_Nullable error))completionBlock;
Definition: EMGroupMemberInfo.h:27
Definition: EMGroupOptions.h:41
void cleanAllGroupsFromDB()
Definition: IEMPushManager.h:31
NSArray< EMGroup * > *_Nullable getJoinedGroups()
Definition: EMCursorResult.h:27
Definition: IEMGroupManager.h:31
Definition: EMGroupSharedFile.h:23
Definition: EMGroupManagerDelegate.h:40