/*!
@header IChatManagerGroup.h
@abstract 为ChatManager提供群组的基础操作
@author EaseMob Inc.
@version 1.00 2014/01/01 Creation (1.00)
*/
#import <Foundation/Foundation.h>
#import "IChatManagerBase.h"
@class EMGroup;
@class EMError;
@class EMGroupStyleSetting;
/*!
@protocol
@brief 本协议包括:创建, 销毁, 加入, 退出等群组操作
@discussion 所有不带Block回调的异步方法, 需要监听回调时, 需要先将要接受回调的对象注册到delegate中, 示例代码如下:
[[[EaseMob sharedInstance] chatManager] addDelegate:self delegateQueue:dispatch_get_main_queue()]
*/
@protocol IChatManagerGroup <IChatManagerBase>
@required
#pragma mark - properties
/*!
@property
@brief 所加入和创建的群组列表, 群组对象
*/
@property (nonatomic, strong, readonly) NSArray *groupList;
#pragma mark - create group, Founded in 2.0.3 version
/*!
@method
@brief 创建群组(同步方法)
@param subject 群组名称
@param description 群组描述
@param invitees 默认群组成员(usernames,不需要包含创建者username)
@param welcomeMessage 群组欢迎语
@param styleSetting 群组属性配置
@param pError 建组的错误。成功为nil
@return 创建好的群组
@discussion
创建群组成功 判断条件:*pError == nil && returnGroup != nil
*/
- (EMGroup *)createGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage
styleSetting:(EMGroupStyleSetting *)styleSetting
error:(EMError **)pError;
/*!
@method
@brief 创建群组(异步方法)。
@param subject 群组名称
@param description 群组描述
@param invitees 默认群组成员(usernames,不需要包含创建者username)
@param welcomeMessage 群组欢迎语
@param styleSetting 群组属性配置
@discussion
函数执行完, 回调[group:didCreateWithError:]会被触发
*/
- (void)asyncCreateGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage
styleSetting:(EMGroupStyleSetting *)styleSetting;
/*!
@method
@brief 创建群组(异步方法)。
@param subject 群组名称
@param description 群组描述
@param invitees 默认群组成员(usernames,不需要包含创建者username)
@param welcomeMessage 群组欢迎语
@param styleSetting 群组属性配置
@param completion 创建完成后的回调
@param aQueue 回调block时的线程
@discussion
创建群组成功 判断条件:completion中,error == nil && group != nil
函数执行完, 会调用参数completion
*/
- (void)asyncCreateGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage
styleSetting:(EMGroupStyleSetting *)styleSetting
completion:(void (^)(EMGroup *group,
EMError *error))completion
onQueue:(dispatch_queue_t)aQueue;
#pragma mark - create private group, will be abolished
/*!
@method
@brief 创建一个私有群组
@param subject 主题
@param description 说明信息
@param invitees 初始群组成员的用户名列表
@param welcomeMessage 对初始群组成员的邀请信息
@param pError 错误信息
@result 创建的群组对象, 失败返回nil
*/
- (EMGroup *)createPrivateGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage
error:(EMError **)pError EM_DEPRECATED_IOS(2_0_0, 2_0_2, "Use -createGroupWithSubject:description:invitees:initialWelcomeMessage:styleSetting:error:");
/*!
@method
@brief 异步方法, 创建一个私有群组
@param subject 主题
@param description 说明信息
@param invitees 初始群组成员的用户名列表
@param welcomeMessage 对初始群组成员的邀请信息
@discussion
函数执行完, 回调group:didCreateWithError:会被触发
*/
- (void)asyncCreatePrivateGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage EM_DEPRECATED_IOS(2_0_0, 2_0_2, "Use -asyncCreateGroupWithSubject:description:invitees:initialWelcomeMessage:styleSetting:");
/*!
@method
@brief 异步方法, 创建一个私有群组
@param subject 主题
@param description 说明信息
@param invitees 初始群组成员的用户名列表
@param welcomeMessage 对初始群组成员的邀请信息
@param completion 消息完成后的回调
@param aQueue 回调block时的线程
*/
- (void)asyncCreatePrivateGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage
completion:(void (^)(EMGroup *group,
EMError *error))completion
onQueue:(dispatch_queue_t)aQueue EM_DEPRECATED_IOS(2_0_0, 2_0_2, "Use -asyncCreateGroupWithSubject:description:invitees:initialWelcomeMessage:styleSetting:completion:onQueue:");
#pragma mark - create public group, will be abolished
/*!
@method
@brief 创建一个公开群组
@param subject 主题
@param description 说明信息
@param invitees 初始群组成员的用户名列表
@param welcomeMessage 对初始群组成员的邀请信息
@param pError 错误信息
@result 创建的群组对象, 失败返回nil
*/
- (EMGroup *)createPublicGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage
error:(EMError **)pError EM_DEPRECATED_IOS(2_0_0, 2_0_2, "Use -createGroupWithSubject:description:invitees:initialWelcomeMessage:styleSetting:error:");
/*!
@method
@brief 异步方法, 创建一个公开群组
@param subject 主题
@param description 说明信息
@param invitees 初始群组成员的用户名列表
@param welcomeMessage 对初始群组成员的邀请信息
@discussion
函数执行完, 回调group:didCreateWithError:会被触发
*/
- (void)asyncCreatePublicGroupWithSubject:(NSString *)subject
description:(NSString *)description
invitees:(NSArray *)invitees
initialWelcomeMessage:(NSString *)welcomeMessage EM_DEPRECATED_IOS(2_0_0, 2_0_2, "Use -asyncCreateGroupWithSubject:description:invitees:initialWelcomeMessage:styleSetting:");
/*!
@method
@brief 异步方法, 创建一个公开群组
@param subject 主题
@param description 说明信息
@param invitees 初始群组成员的用户名列表
@param welcomeMessage 对初始群组成员的邀请信息
@param completion 消息完成后的回调
@param aQueue 回调block时的线程
*/
- (void)asyncCreatePublicGroupWithSubject:(NSString *)subject