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;
1165 - (void)updateGroupAvatar:(NSString *_Nullable)avatar
1166 groupId:(NSString *_Nonnull)groupId
1167 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
1196 - (
EMGroup * _Nullable)changeDescription:(NSString *_Nullable)aDescription
1197 forGroup:(NSString *_Nonnull)aGroupId
1198 error:(
EMError **_Nullable)pError;
1221 - (void)updateDescription:(NSString *_Nullable)aDescription
1222 forGroup:(NSString *_Nonnull)aGroupId
1223 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1244 - (void)leaveGroup:(NSString *_Nonnull)aGroupId
1245 error:(
EMError **_Nullable)pError;
1262 - (void)leaveGroup:(NSString *_Nonnull)aGroupId
1263 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1288 - (
EMError *)destroyGroup:(NSString *_Nonnull)aGroupId;
1308 - (void)destroyGroup:(NSString *_Nonnull)aGroupId
1309 finishCompletion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1335 - (
EMGroup * _Nullable)blockGroup:(NSString *_Nonnull)aGroupId
1336 error:(
EMError **_Nullable)pError;
1354 - (void)blockGroup:(NSString *_Nonnull)aGroupId
1355 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1378 - (
EMGroup * _Nullable)unblockGroup:(NSString *_Nonnull)aGroupId
1379 error:(
EMError **_Nullable)pError;
1395 - (void)unblockGroup:(NSString *_Nonnull)aGroupId
1396 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1426 - (
EMGroup * _Nullable)updateGroupOwner:(NSString *_Nonnull)aGroupId
1427 newOwner:(NSString *_Nonnull)aNewOwner
1428 error:(
EMError **_Nullable)pError;
1451 - (void)updateGroupOwner:(NSString *_Nonnull)aGroupId
1452 newOwner:(NSString *_Nonnull)aNewOwner
1453 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1480 - (
EMGroup * _Nullable)addAdmin:(NSString *_Nonnull)aAdmin
1481 toGroup:(NSString *_Nonnull)aGroupId
1482 error:(
EMError **_Nullable)pError;
1509 - (void)addAdmin:(NSString *_Nonnull)aAdmin
1510 toGroup:(NSString *_Nonnull)aGroupId
1511 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1540 - (
EMGroup * _Nullable)removeAdmin:(NSString *_Nonnull)aAdmin
1541 fromGroup:(NSString *_Nonnull)aGroupId
1542 error:(
EMError **_Nullable)pError;
1569 - (void)removeAdmin:(NSString *_Nonnull)aAdmin
1570 fromGroup:(NSString *_Nonnull)aGroupId
1571 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1603 - (
EMGroup * _Nullable)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
1604 muteMilliseconds:(NSInteger)aMuteMilliseconds
1605 fromGroup:(NSString *_Nonnull)aGroupId
1606 error:(
EMError **_Nullable)pError;
1634 - (void)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
1635 muteMilliseconds:(NSInteger)aMuteMilliseconds
1636 fromGroup:(NSString *_Nonnull)aGroupId
1637 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1666 - (
EMGroup * _Nullable)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
1667 fromGroup:(NSString *_Nonnull)aGroupId
1668 error:(
EMError **_Nullable)pError;
1694 - (void)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
1695 fromGroup:(NSString *_Nonnull)aGroupId
1696 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1723 - (
EMGroup * _Nullable)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1724 error:(
EMError **_Nullable)pError;
1748 - (void)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1749 completion:(
void(^)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1777 - (
EMGroup * _Nullable)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1778 error:(
EMError **_Nullable)pError;
1803 - (void)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1804 completion:(
void(^)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1834 - (
EMGroup * _Nullable)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1835 fromGroup:(NSString *_Nonnull)aGroupId
1836 error:(
EMError **_Nullable)pError;
1860 - (void)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1861 fromGroup:(NSString *_Nonnull)aGroupId
1862 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1892 - (
EMGroup * _Nullable)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1893 fromGroup:(NSString *_Nonnull)aGroupId
1894 error:(
EMError **_Nullable)pError;
1920 - (void)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1921 fromGroup:(NSString *_Nonnull)aGroupId
1922 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1943 - (void)uploadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1944 filePath:(NSString* _Nonnull)aFilePath
1945 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1946 completion:(
void (^_Nullable)(
EMGroupSharedFile *_Nullable aSharedFile,
EMError *_Nullable aError))aCompletionBlock;
1967 - (void)downloadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1968 filePath:(NSString *_Nonnull)aFilePath
1969 sharedFileId:(NSString *_Nonnull)aSharedFileId
1970 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1971 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1994 - (
EMGroup * _Nullable)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1995 sharedFileId:(NSString *_Nonnull)aSharedFileId
1996 error:(
EMError **_Nullable)pError;
2013 - (void)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
2014 sharedFileId:(NSString *_Nonnull)aSharedFileId
2015 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2042 - (
EMGroup * _Nullable)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
2043 announcement:(NSString *_Nullable)aAnnouncement
2044 error:(
EMError **_Nullable)pError;
2070 - (void)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
2071 announcement:(NSString *_Nullable)aAnnouncement
2072 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2099 - (
EMGroup * _Nullable)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
2100 ext:(NSString *_Nullable)aExt
2101 error:(
EMError **_Nullable)pError;
2123 - (void)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
2124 ext:(NSString *_Nullable)aExt
2125 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2127 #pragma mark - Edit Public Group
2150 - (
EMGroup * _Nullable)joinPublicGroup:(NSString *_Nonnull)aGroupId
2151 error:(
EMError **_Nullable)pError;
2167 - (void)joinPublicGroup:(NSString *_Nonnull)aGroupId
2168 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2193 - (
EMGroup * _Nullable)applyJoinPublicGroup:(NSString *_Nonnull)aGroupId
2194 message:(NSString *_Nullable)aMessage
2195 error:(
EMError **_Nullable)pError;
2214 - (void)requestToJoinPublicGroup:(NSString *_Nonnull)aGroupId
2215 message:(NSString *_Nullable)aMessage
2216 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2218 #pragma mark - Application
2245 - (
EMError *)acceptJoinApplication:(NSString *_Nonnull)aGroupId
2246 applicant:(NSString *_Nonnull)aUsername;
2273 - (void)approveJoinGroupRequest:(NSString *_Nonnull)aGroupId
2274 sender:(NSString *_Nonnull)aUsername
2275 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2304 - (
EMError *)declineJoinApplication:(NSString *_Nonnull)aGroupId
2305 applicant:(NSString *_Nonnull)aUsername
2306 reason:(NSString *_Nullable)aReason;
2335 - (void)declineJoinGroupRequest:(NSString *_Nonnull)aGroupId
2336 sender:(NSString *_Nonnull)aUsername
2337 reason:(NSString *_Nullable)aReason
2338 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2363 - (
EMGroup * _Nullable)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
2364 inviter:(NSString *_Nonnull)aUsername
2365 error:(
EMError **_Nullable)pError;
2389 - (void)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
2390 inviter:(NSString *_Nonnull)aUsername
2391 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2416 - (
EMError *)declineInvitationFromGroup:(NSString *_Nonnull)aGroupId
2417 inviter:(NSString *_Nonnull)aUsername
2418 reason:(NSString *_Nullable)aReason;
2443 - (void)declineGroupInvitation:(NSString *_Nonnull)aGroupId
2444 inviter:(NSString *_Nonnull)aInviter
2445 reason:(NSString *_Nullable)aReason
2446 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
2486 - (void)getJoinedGroupsFromServerWithPage:(NSInteger)aPageNum
2487 pageSize:(NSInteger)aPageSize
2488 needMemberCount:(BOOL)aNeedMemberCount
2489 needRole:(BOOL)aNeedRole
2490 completion:(
void (^_Nullable)(NSArray<
EMGroup *> *_Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
2492 #pragma mark - Group member attributes
2510 - (void)setMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId attributes:(NSDictionary<NSString*,NSString*> *_Nonnull)attributes completion:(
void (^_Nullable)(
EMError *_Nullable error))completionBlock;
2533 - (void)fetchMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId completion:(
void (^ _Nullable)(NSDictionary<NSString *,NSString *> * _Nullable,
EMError * _Nullable))completionBlock;
2558 - (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