You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
5.3 KiB
162 lines
5.3 KiB
// |
|
// JCGroup.h |
|
// JCSDKOC |
|
// |
|
// Created by maikireton on 2017/8/15. |
|
// Copyright © 2017年 juphoon. All rights reserved. |
|
// |
|
|
|
#import <Foundation/Foundation.h> |
|
#import "JCGroupCallback.h" |
|
#import "JCGroupConstants.h" |
|
#import "JCGroupItem.h" |
|
|
|
/** |
|
* @defgroup 群组模块 |
|
* @{ |
|
* 用于管理群组 |
|
*/ |
|
|
|
/** |
|
* 群操作类 |
|
*/ |
|
@interface JCGroup : NSObject |
|
|
|
/** |
|
* 创建 JCGroup 对象 |
|
* |
|
* JCGroup 的所有接口函数,如无特殊说明,都建议在主线程调用 |
|
* |
|
* @note |
|
* - 调用此方法创建 JCGroup 对象后,期间没有调用过 {@link destroy} 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JCGroup 对象 |
|
* - 调用此方法前确保 JCClient 已完成初始化,即 @ref JCClient.state "state" 状态值不等于 @ref JCClientStateNotInit |
|
* |
|
* @param client JCClient 对象 |
|
* @param callback JCGroupCallback 回调接口,用于回调相关通知 |
|
* @return 返回 JCGroup 对象 |
|
* @exception "JCClient、JCGroupCallback 任意一个参数传空就会出现调用异常" |
|
*/ |
|
+(JCGroup* __nullable)create:(JCClient* __nonnull)client callback:(id<JCGroupCallback> __nonnull)callback; |
|
|
|
/** |
|
* 销毁 JCGroup 对象 |
|
* |
|
* 该方法为同步调用,需要等待 JCGroup 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCGroup 的其它方法和回调。<br> |
|
* 我们 **不建议** 在 JCSDK 的回调中调用此方法销毁 JCGroup 对象,否则会出现崩溃。<br> |
|
* 如需在销毁后再次创建 JCGroup 实例,需要等待 @ref destroy 方法执行结束后再创建实例。 |
|
*/ |
|
+(void)destroy; |
|
|
|
/** |
|
* 获取当前用户加入的群列表 |
|
* |
|
* @param updateTime 最新一次记录的群列表服务器更新时间 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onFetchGroups:result:reason:groups:updateTime:baseTime:fullUpdate: onFetchGroups} 回调 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
-(int)fetchGroups:(long)updateTime; |
|
|
|
/** |
|
* 刷新群组信息 |
|
* |
|
* @param groupId 群标识 |
|
* @param updateTime 最新一次记录的该群服务器更新时间 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onFetchGroupInfo:result:reason:groupItem:members:updateTime:baseTime:fullUpdate: onFetchGroupInfo} 回调 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
-(int)fetchGroupInfo:(NSString* __nonnull)groupId updateTime:(long)updateTime; |
|
|
|
/** |
|
* 创建群 |
|
* |
|
* @param members JCGroupMember 列表 |
|
* @param groupName 群名称 |
|
* @param type 群类型: |
|
* - @ref JCGroupTypeDiscussion : 讨论组 |
|
* - @ref JCGroupTypeNormal : 普通群 |
|
* @param customProperties 自定义属性 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onCreateGroup:result:reason:groupItem:updateTime:baseTime: onCreateGroup} 回调 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
-(int)createGroup:(NSArray<JCGroupMember*>* __nonnull)members groupName:(NSString* __nonnull)groupName type:(JCGroupType)type customProperties:(NSDictionary<NSString*, NSObject*>* __nullable)customProperties; |
|
|
|
/** |
|
* 更新群 |
|
* |
|
* @param groupItem JCGroupItem 对象,其中 JCGroupItem 中 @ref JCGroupItem.changeState "changeState" 值不影响具体操作 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onCreateGroup:result:reason:groupItem:updateTime:baseTime: onCreateGroup} 回调 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
-(int)updateGroup:(JCGroupItem* __nonnull)groupItem; |
|
|
|
/** |
|
* 解散群组 |
|
* |
|
* @note 群拥有者才能解散群组 |
|
* |
|
* @param groupId 群标识 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onDissolve:result:reason:groupId: onDissolve} 回调 |
|
* - -1:调用异常,不会收到回调通知 |
|
*/ |
|
-(int)dissolve:(NSString* __nonnull)groupId; |
|
|
|
/** |
|
* 离开群组 |
|
* |
|
* @param groupId 群标识 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onLeave:result:reason:groupId: onLeave} 回调 |
|
* - -1:调用异常,不会收到回调通知 |
|
*/ |
|
-(int)leave:(NSString* __nonnull)groupId; |
|
|
|
/** |
|
* 操作成员 |
|
* |
|
* @param groupId 群标识 |
|
* @param members JCGroupMember 对象列表,通过 @ref JCGroupItem.changeState "changeState" 值来表明增加,更新,删除成员操作 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onDealMembers:result:reason:groupId: onDealMembers} 回调 |
|
* - -1:调用异常,不会收到回调通知 |
|
*/ |
|
-(int)dealMembers:(NSString* __nonnull)groupId members:(NSArray<JCGroupMember*>* __nonnull)members; |
|
|
|
/** |
|
* 更新群备注信息 |
|
* |
|
* @note 仅自己可见 |
|
* |
|
* @param groupId 群标识 |
|
* @param nickName 备注名 |
|
* @param tagMap 额外信息 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onUpdateGroupComment:result:reason:groupId: onUpdateGroupComment} 回调 |
|
* - -1:调用异常,不会收到回调通知 |
|
*/ |
|
-(int)updateGroupComment:(NSString* __nonnull)groupId nickName:(NSString* __nonnull)nickName tag:(NSDictionary<NSString*, NSObject*>* __nullable)tag; |
|
|
|
/** |
|
* 设置免打扰 |
|
* |
|
* |
|
* |
|
* @param groupId 群标识 |
|
* @param dnd 是否免打扰 |
|
* - true: 免打扰, |
|
* - false: 取消免打扰 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCGroupCallback#onSetGroupDnd:result:reason:groupId: onSetGroupDnd} 回调 |
|
* - -1:调用异常,不会收到回调通知 |
|
*/ |
|
-(int)setDnd:(NSString* __nonnull)groupId dnd:(bool)dnd; |
|
|
|
@end |
|
|
|
/** |
|
* @} |
|
*/
|
|
|