IEMChatroomManager.h 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259
  1. /*!
  2. * \~chinese
  3. * @header IEMChatroomManager.h
  4. * @abstract 此协议定义了聊天室相关操作
  5. * @author Hyphenate
  6. * @version 3.00
  7. *
  8. * \~english
  9. * @header IEMChatroomManager.h
  10. * @abstract This protocol defines the chat room operations
  11. * @author Hyphenate
  12. * @version 3.00
  13. */
  14. #import <Foundation/Foundation.h>
  15. #import "EMCommonDefs.h"
  16. #import "EMChatroomManagerDelegate.h"
  17. #import "EMChatroomOptions.h"
  18. #import "EMChatroom.h"
  19. #import "EMPageResult.h"
  20. #import "EMCursorResult.h"
  21. @class EMError;
  22. /*!
  23. * \~chinese
  24. * 聊天室相关操作
  25. *
  26. * \~english
  27. * Chatroom operations
  28. */
  29. @protocol IEMChatroomManager <NSObject>
  30. @required
  31. #pragma mark - Delegate
  32. /*!
  33. * \~chinese
  34. * 添加回调代理
  35. *
  36. * @param aDelegate 要添加的代理
  37. * @param aQueue 添加回调代理
  38. *
  39. * \~english
  40. * Add delegate
  41. *
  42. * @param aDelegate Delegate
  43. * @param aQueue (optional) The queue of calling delegate methods. Pass in nil to run on main thread.
  44. */
  45. - (void)addDelegate:(id<EMChatroomManagerDelegate>)aDelegate
  46. delegateQueue:(dispatch_queue_t)aQueue;
  47. /*!
  48. * \~chinese
  49. * 移除回调代理
  50. *
  51. * @param aDelegate 要移除的代理
  52. *
  53. * \~english
  54. * Remove delegate
  55. *
  56. * @param aDelegate Delegate
  57. */
  58. - (void)removeDelegate:(id<EMChatroomManagerDelegate>)aDelegate;
  59. #pragma mark - Fetch Chatrooms
  60. /*!
  61. * \~chinese
  62. * 从服务器获取指定数目的聊天室
  63. *
  64. * 同步方法,会阻塞当前线程
  65. *
  66. * @param aPageNum 获取第几页
  67. * @param aPageSize 获取多少条
  68. * @param pError 出错信息
  69. *
  70. * @return 聊天室列表<EMChatroom>
  71. *
  72. * \~english
  73. * Get pagesize number chatroom from server.
  74. *
  75. * Synchronization method will block the current thread
  76. *
  77. * @param aPageNum Page number
  78. * @param aPageSize Page size
  79. * @param pError Error
  80. *
  81. * @return Chat room list<EMChatroom>
  82. */
  83. - (EMPageResult *)getChatroomsFromServerWithPage:(NSInteger)aPageNum
  84. pageSize:(NSInteger)aPageSize
  85. error:(EMError **)pError;
  86. /*!
  87. * \~chinese
  88. * 从服务器获取指定数目的聊天室
  89. *
  90. * @param aPageNum 获取第几页
  91. * @param aPageSize 获取多少条
  92. * @param aCompletionBlock 完成的回调
  93. *
  94. * \~english
  95. * Get all the chatrooms from server
  96. *
  97. * @param aPageNum Page number
  98. * @param aPageSize Page size
  99. * @param aCompletionBlock The callback block of completion
  100. *
  101. */
  102. - (void)getChatroomsFromServerWithPage:(NSInteger)aPageNum
  103. pageSize:(NSInteger)aPageSize
  104. completion:(void (^)(EMPageResult *aResult, EMError *aError))aCompletionBlock;
  105. #pragma mark - Create
  106. /*!
  107. * \~chinese
  108. * 创建聊天室
  109. *
  110. * 同步方法,会阻塞当前线程
  111. *
  112. * @param aSubject 名称
  113. * @param aDescription 描述
  114. * @param aInvitees 成员(不包括创建者自己)
  115. * @param aMessage 邀请消息
  116. * @param aMaxMembersCount 群组最大成员数
  117. * @param pError 出错信息
  118. *
  119. * @return 创建的聊天室
  120. *
  121. * \~english
  122. * Create a chatroom
  123. *
  124. * Synchronization method will block the current thread
  125. *
  126. * @param aSubject Subject
  127. * @param aDescription Description
  128. * @param aInvitees Members, without creater
  129. * @param aMessage Invitation message
  130. * @param aMaxMembersCount Max members count
  131. * @param pError Error
  132. *
  133. * @return Created chatroom
  134. */
  135. - (EMChatroom *)createChatroomWithSubject:(NSString *)aSubject
  136. description:(NSString *)aDescription
  137. invitees:(NSArray *)aInvitees
  138. message:(NSString *)aMessage
  139. maxMembersCount:(NSInteger)aMaxMembersCount
  140. error:(EMError **)pError;
  141. /*!
  142. * \~chinese
  143. * 创建群组
  144. *
  145. * @param aSubject 群组名称
  146. * @param aDescription 群组描述
  147. * @param aInvitees 群组成员(不包括创建者自己)
  148. * @param aMessage 邀请消息
  149. * @param aMaxMembersCount 群组最大成员数
  150. * @param aCompletionBlock 完成的回调
  151. *
  152. *
  153. * \~english
  154. * Create a group
  155. *
  156. * @param aSubject Group subject
  157. * @param aDescription Group description
  158. * @param aInvitees Group members, without creater
  159. * @param aMessage Invitation message
  160. * @param aMaxMembersCount Max members count
  161. * @param aCompletionBlock The callback block of completion
  162. *
  163. */
  164. - (void)createChatroomWithSubject:(NSString *)aSubject
  165. description:(NSString *)aDescription
  166. invitees:(NSArray *)aInvitees
  167. message:(NSString *)aMessage
  168. maxMembersCount:(NSInteger)aMaxMembersCount
  169. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  170. #pragma mark - Edit Chatroom
  171. /*!
  172. * \~chinese
  173. * 加入聊天室
  174. *
  175. * 同步方法,会阻塞当前线程
  176. *
  177. * @param aChatroomId 聊天室的ID
  178. * @param pError 返回的错误信息
  179. *
  180. * @result 所加入的聊天室
  181. *
  182. * \~english
  183. * Join a chatroom
  184. *
  185. * Synchronization method will block the current thread
  186. *
  187. * @param aChatroomId Chatroom id
  188. * @param pError Error
  189. *
  190. * @result Joined chatroom
  191. */
  192. - (EMChatroom *)joinChatroom:(NSString *)aChatroomId
  193. error:(EMError **)pError;
  194. /*!
  195. * \~chinese
  196. * 加入聊天室
  197. *
  198. * @param aChatroomId 聊天室的ID
  199. * @param aCompletionBlock 完成的回调
  200. *
  201. *
  202. * \~english
  203. * Join a chatroom
  204. *
  205. * @param aChatroomId Chatroom id
  206. * @param aCompletionBlock The callback block of completion
  207. *
  208. */
  209. - (void)joinChatroom:(NSString *)aChatroomId
  210. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  211. /*!
  212. * \~chinese
  213. * 退出聊天室
  214. *
  215. * 同步方法,会阻塞当前线程
  216. *
  217. * @param aChatroomId 聊天室ID
  218. * @param pError 错误信息
  219. *
  220. *
  221. * \~english
  222. * Leave a chatroom
  223. *
  224. * Synchronization method will block the current thread
  225. *
  226. * @param aChatroomId Chatroom id
  227. * @param pError Error
  228. *
  229. */
  230. - (void)leaveChatroom:(NSString *)aChatroomId
  231. error:(EMError **)pError;
  232. /*!
  233. * \~chinese
  234. * 退出聊天室
  235. *
  236. * @param aChatroomId 聊天室ID
  237. * @param aCompletionBlock 完成的回调
  238. *
  239. *
  240. * \~english
  241. * Leave a chatroom
  242. *
  243. * @param aChatroomId Chatroom id
  244. * @param aCompletionBlock The callback block of completion
  245. *
  246. */
  247. - (void)leaveChatroom:(NSString *)aChatroomId
  248. completion:(void (^)(EMError *aError))aCompletionBlock;
  249. /*!
  250. * \~chinese
  251. * 解散聊天室, 需要owner权限
  252. *
  253. * 同步方法,会阻塞当前线程
  254. *
  255. * @param aChatroomId 聊天室ID
  256. *
  257. * @result 错误信息, 成功返回nil
  258. *
  259. * \~english
  260. * Destroy a group, owner‘s authority is required
  261. *
  262. * Synchronization method will block the current thread
  263. *
  264. * @param aChatroomId Chatroom id
  265. *
  266. * @result Error, return nil if success
  267. */
  268. - (EMError *)destroyChatroom:(NSString *)aChatroomId;
  269. /*!
  270. * \~chinese
  271. * 解散群组, 需要owner权限
  272. *
  273. * @param aChatroomId 聊天室ID
  274. * @param aCompletionBlock 完成的回调
  275. *
  276. * \~english
  277. * Destroy a group, owner‘s authority is required
  278. *
  279. * @param aChatroomId Chatroom id
  280. * @param aCompletionBlock The callback block of completion
  281. *
  282. */
  283. - (void)destroyChatroom:(NSString *)aChatroomId
  284. completion:(void (^)(EMError *aError))aCompletionBlock;
  285. #pragma mark - Fetch
  286. /*!
  287. * \~chinese
  288. * 获取聊天室详情
  289. *
  290. * 同步方法,会阻塞当前线程
  291. *
  292. * @param aChatroomId 聊天室ID
  293. * @param pError 错误信息
  294. *
  295. * @return 聊天室
  296. *
  297. * \~english
  298. * Fetch chatroom's specification
  299. *
  300. * Synchronization method, will block the current thread
  301. *
  302. * @param aChatroomId Chatroom id
  303. * @param pError Error
  304. *
  305. * @return Chatroom instance
  306. */
  307. - (EMChatroom *)getChatroomSpecificationFromServerWithId:(NSString *)aChatroomId
  308. error:(EMError **)pError;
  309. /*!
  310. * \~chinese
  311. * 获取聊天室详情
  312. *
  313. * @param aChatroomId 聊天室ID
  314. * @param aCompletionBlock 完成的回调
  315. *
  316. * \~english
  317. * Fetch chat room specifications
  318. *
  319. * @param aChatroomId Chatroom id
  320. * @param aCompletionBlock The callback block of completion
  321. *
  322. */
  323. - (void)getChatroomSpecificationFromServerWithId:(NSString *)aChatroomId
  324. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  325. /*!
  326. * \~chinese
  327. * 获取聊天室成员列表
  328. *
  329. * @param aChatroomId 聊天室ID
  330. * @param aCursor 游标,首次调用传空
  331. * @param aPageSize 获取多少条
  332. * @param pError 错误信息
  333. *
  334. * @return 列表和游标
  335. *
  336. * \~english
  337. * Get the list of chatroom members from the server
  338. *
  339. * @param aChatroomId Chatroom id
  340. * @param aCursor Cursor, input nil the first time
  341. * @param aPageSize Page size
  342. * @param pError Error
  343. *
  344. * @return List and cursor
  345. *
  346. */
  347. - (EMCursorResult *)getChatroomMemberListFromServerWithId:(NSString *)aChatroomId
  348. cursor:(NSString *)aCursor
  349. pageSize:(NSInteger)aPageSize
  350. error:(EMError **)pError;
  351. /*!
  352. * \~chinese
  353. * 获取聊天室成员列表
  354. *
  355. * @param aChatroomId 聊天室ID
  356. * @param aCursor 游标,首次调用传空
  357. * @param aPageSize 获取多少条
  358. * @param aCompletionBlock 完成的回调
  359. *
  360. *
  361. * \~english
  362. * Get the list of chatroom members from the server
  363. *
  364. * @param aChatroomId Chatroom id
  365. * @param aCursor Cursor, input nil the first time
  366. * @param aPageSize Page size
  367. * @param aCompletionBlock The callback block of completion
  368. *
  369. */
  370. - (void)getChatroomMemberListFromServerWithId:(NSString *)aChatroomId
  371. cursor:(NSString *)aCursor
  372. pageSize:(NSInteger)aPageSize
  373. completion:(void (^)(EMCursorResult *aResult, EMError *aError))aCompletionBlock;
  374. /*!
  375. * \~chinese
  376. * 获取聊天室黑名单列表, 需要owner/admin权限
  377. *
  378. * @param aChatroomId 聊天室ID
  379. * @param aPageNum 获取第几页
  380. * @param aPageSize 获取多少条
  381. * @param pError 错误信息
  382. *
  383. *
  384. * \~english
  385. * Get the blacklist of chatroom from the server, need owner / admin permissions
  386. *
  387. * @param aChatroomId Chatroom id
  388. * @param aPageNum Page number
  389. * @param aPageSize Page size
  390. * @param pError Error
  391. *
  392. */
  393. - (NSArray *)getChatroomBlacklistFromServerWithId:(NSString *)aChatroomId
  394. pageNumber:(NSInteger)aPageNum
  395. pageSize:(NSInteger)aPageSize
  396. error:(EMError **)pError;
  397. /*!
  398. * \~chinese
  399. * 获取聊天室黑名单列表, 需要owner/admin权限
  400. *
  401. * @param aChatroomId 聊天室ID
  402. * @param aPageNum 获取第几页
  403. * @param aPageSize 获取多少条
  404. * @param aCompletionBlock 完成的回调
  405. *
  406. *
  407. * \~english
  408. * Get chatroom's blacklist, need owner / admin permissions
  409. *
  410. * @param aChatroomId Chatroom id
  411. * @param aPageNum Page number
  412. * @param aPageSize Page size
  413. * @param aCompletionBlock The callback block of completion
  414. *
  415. */
  416. - (void)getChatroomBlacklistFromServerWithId:(NSString *)aChatroomId
  417. pageNumber:(NSInteger)aPageNum
  418. pageSize:(NSInteger)aPageSize
  419. completion:(void (^)(NSArray *aList, EMError *aError))aCompletionBlock;
  420. /*!
  421. * \~chinese
  422. * 获取聊天室被禁言列表
  423. *
  424. * @param aChatroomId 聊天室ID
  425. * @param aPageNum 获取第几页
  426. * @param aPageSize 获取多少条
  427. * @param pError 错误信息
  428. *
  429. *
  430. * \~english
  431. * Get the mutes of chatroom from the server
  432. *
  433. * @param aChatroomId Chatroom id
  434. * @param aPageNum Page number
  435. * @param aPageSize Page size
  436. * @param pError Error
  437. *
  438. */
  439. - (NSArray *)getChatroomMuteListFromServerWithId:(NSString *)aChatroomId
  440. pageNumber:(NSInteger)aPageNum
  441. pageSize:(NSInteger)aPageSize
  442. error:(EMError **)pError;
  443. /*!
  444. * \~chinese
  445. * 获取聊天室被禁言列表
  446. *
  447. * @param aChatroomId 聊天室ID
  448. * @param aPageNum 获取第几页
  449. * @param aPageSize 获取多少条
  450. * @param aCompletionBlock 完成的回调
  451. *
  452. *
  453. * \~english
  454. * Get the mutes of chatroom from the server
  455. *
  456. * @param aChatroomId Chatroom id
  457. * @param aPageNum Page number
  458. * @param aPageSize Page size
  459. * @param aCompletionBlock The callback block of completion
  460. *
  461. */
  462. - (void)getChatroomMuteListFromServerWithId:(NSString *)aChatroomId
  463. pageNumber:(NSInteger)aPageNum
  464. pageSize:(NSInteger)aPageSize
  465. completion:(void (^)(NSArray *aList, EMError *aError))aCompletionBlock;
  466. /*!
  467. * \~chinese
  468. * 获取聊天室公告
  469. *
  470. * @param aChatroomId 聊天室ID
  471. * @param pError 错误信息
  472. *
  473. * @return 聊天室公告
  474. *
  475. * \~english
  476. * Get the announcement of chatroom from the server
  477. *
  478. * @param aChatroomId Chatroom id
  479. * @param pError error
  480. *
  481. * @return The announcement of chatroom
  482. */
  483. - (NSString *)getChatroomAnnouncementWithId:(NSString *)aChatroomId
  484. error:(EMError **)pError;
  485. /*!
  486. * \~chinese
  487. * 获取聊天室公告
  488. *
  489. * @param aChatroomId 聊天室ID
  490. * @param aCompletionBlock 完成的回调
  491. *
  492. *
  493. * \~english
  494. * Get the announcement of chatroom from the server
  495. *
  496. * @param aChatroomId Chatroom id
  497. * @param aCompletionBlock The callback block of completion
  498. *
  499. */
  500. - (void)getChatroomAnnouncementWithId:(NSString *)aChatroomId
  501. completion:(void (^)(NSString *aAnnouncement, EMError *aError))aCompletionBlock;
  502. #pragma mark - Edit
  503. /*!
  504. * \~chinese
  505. * 更改聊天室主题, 需要owner权限
  506. *
  507. * 同步方法,会阻塞当前线程
  508. *
  509. * @param aSubject 新主题
  510. * @param aChatroomId 聊天室ID
  511. * @param pError 错误信息
  512. *
  513. * @result 聊天室对象
  514. *
  515. * \~english
  516. * Change chatroom subject, owner‘s authority is required
  517. *
  518. * Synchronization method will block the current thread
  519. *
  520. * @param aSubject New subject
  521. * @param aChatroomId Chatroom id
  522. * @param pError Error
  523. *
  524. * @result Chatroom instance
  525. */
  526. - (EMChatroom *)updateSubject:(NSString *)aSubject
  527. forChatroom:(NSString *)aChatroomId
  528. error:(EMError **)pError;
  529. /*!
  530. * \~chinese
  531. * 更改聊天室主题, 需要owner权限
  532. *
  533. * @param aSubject 新主题
  534. * @param aChatroomId 聊天室ID
  535. * @param aCompletionBlock 完成的回调
  536. *
  537. *
  538. * \~english
  539. * Change the chatroom subject, owner‘s authority is required
  540. *
  541. * @param aSubject New subject
  542. * @param aChatroomId Chatroom id
  543. * @param aCompletionBlock The callback block of completion
  544. *
  545. */
  546. - (void)updateSubject:(NSString *)aSubject
  547. forChatroom:(NSString *)aChatroomId
  548. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  549. /*!
  550. * \~chinese
  551. * 更改聊天室说明信息, 需要owner权限
  552. *
  553. * 同步方法,会阻塞当前线程
  554. *
  555. * @param aDescription 说明信息
  556. * @param aChatroomId 聊天室ID
  557. * @param pError 错误信息
  558. *
  559. * @result 聊天室对象
  560. *
  561. * \~english
  562. * Change chatroom description, owner‘s authority is required
  563. *
  564. * Synchronization method will block the current thread
  565. *
  566. * @param aDescription New description
  567. * @param aChatroomId Chatroom id
  568. * @param pError Error
  569. *
  570. * @result Chatroom
  571. */
  572. - (EMChatroom *)updateDescription:(NSString *)aDescription
  573. forChatroom:(NSString *)aChatroomId
  574. error:(EMError **)pError;
  575. /*!
  576. * \~chinese
  577. * 更改聊天室说明信息, 需要owner权限
  578. *
  579. * @param aDescription 说明信息
  580. * @param aChatroomId 聊天室ID
  581. * @param aCompletionBlock 完成的回调
  582. *
  583. *
  584. * \~english
  585. * Change the chatroom description, owner‘s authority is required
  586. *
  587. * @param aDescription New description
  588. * @param aChatroomId Chatroom id
  589. * @param aCompletionBlock The callback block of completion
  590. *
  591. */
  592. - (void)updateDescription:(NSString *)aDescription
  593. forChatroom:(NSString *)aChatroomId
  594. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  595. /*!
  596. * \~chinese
  597. * 将成员移出聊天室, 需要owner/admin权限
  598. *
  599. * 同步方法,会阻塞当前线程
  600. *
  601. * @param aMembers 要移出的用户列表
  602. * @param aChatroomId 聊天室ID
  603. * @param pError 错误信息
  604. *
  605. * @result 聊天室实例
  606. *
  607. * \~english
  608. * Remove members from a chatroom, required owner‘s authority
  609. *
  610. * Synchronization method will block the current thread
  611. *
  612. * @param aMembers Users to be removed
  613. * @param aChatroomId Chatroom id
  614. * @param pError Error
  615. *
  616. * @result Chatroom instance
  617. */
  618. - (EMChatroom *)removeMembers:(NSArray *)aMembers
  619. fromChatroom:(NSString *)aChatroomId
  620. error:(EMError **)pError;
  621. /*!
  622. * \~chinese
  623. * 将成员移出聊天室, 需要owner/admin权限
  624. *
  625. * @param aMembers 要移出的用户列表
  626. * @param aChatroomId 聊天室ID
  627. * @param aCompletionBlock 完成的回调
  628. *
  629. *
  630. * \~english
  631. * Remove members from a group, owner‘s authority is required
  632. *
  633. * @param aMembers Users to be removed
  634. * @param aChatroomId Chatroom id
  635. * @param aCompletionBlock The callback block of completion
  636. *
  637. */
  638. - (void)removeMembers:(NSArray *)aMembers
  639. fromChatroom:(NSString *)aChatroomId
  640. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  641. /*!
  642. * \~chinese
  643. * 加人到聊天室黑名单, 需要owner权限
  644. *
  645. * 同步方法,会阻塞当前线程
  646. *
  647. * @param aMembers 要加入黑名单的用户
  648. * @param aChatroomId 聊天室ID
  649. * @param pError 错误信息
  650. *
  651. * @result 聊天室实例
  652. *
  653. * \~english
  654. * Add users to chatroom blacklist, required owner‘s authority
  655. *
  656. * Synchronization method will block the current thread
  657. *
  658. * @param aMembers Users to be added
  659. * @param aChatroomId Chatroom id
  660. * @param pError Error
  661. *
  662. * @result Chatroom instance
  663. */
  664. - (EMChatroom *)blockMembers:(NSArray *)aMembers
  665. fromChatroom:(NSString *)aChatroomId
  666. error:(EMError **)pError;
  667. /*!
  668. * \~chinese
  669. * 加人到聊天室黑名单, 需要owner权限
  670. *
  671. * @param aMembers 要加入黑名单的用户
  672. * @param aChatroomId 聊天室ID
  673. * @param aCompletionBlock 完成的回调
  674. *
  675. *
  676. * \~english
  677. * Add users to chatroom blacklist, owner‘s authority is required
  678. *
  679. * @param aMembers Users to be added
  680. * @param aChatroomId Chatroom id
  681. * @param aCompletionBlock The callback block of completion
  682. *
  683. */
  684. - (void)blockMembers:(NSArray *)aMembers
  685. fromChatroom:(NSString *)aChatroomId
  686. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  687. /*!
  688. * \~chinese
  689. * 从聊天室黑名单中减人, 需要owner权限
  690. *
  691. * 同步方法,会阻塞当前线程
  692. *
  693. * @param aMembers 要从黑名单中移除的用户名列表
  694. * @param aChatroomId 聊天室ID
  695. * @param pError 错误信息
  696. *
  697. * @result 聊天室对象
  698. *
  699. * \~english
  700. * Remove users from chatroom blacklist, required owner‘s authority
  701. *
  702. * Synchronization method will block the current thread
  703. *
  704. * @param aMembers Users to be removed
  705. * @param aChatroomId Chatroom id
  706. * @param pError Error
  707. *
  708. * @result Chatroom instance
  709. */
  710. - (EMChatroom *)unblockMembers:(NSArray *)aMembers
  711. fromChatroom:(NSString *)aChatroomId
  712. error:(EMError **)pError;
  713. /*!
  714. * \~chinese
  715. * 从聊天室黑名单中减人, 需要owner权限
  716. *
  717. * @param aMembers 要从黑名单中移除的用户名列表
  718. * @param aChatroomId 聊天室ID
  719. * @param aCompletionBlock 完成的回调
  720. *
  721. *
  722. * \~english
  723. * Remove users from chatroom blacklist, owner‘s authority is required
  724. *
  725. * @param aMembers Users to be removed
  726. * @param aChatroomId Chatroom id
  727. * @param aCompletionBlock The callback block of completion
  728. *
  729. */
  730. - (void)unblockMembers:(NSArray *)aMembers
  731. fromChatroom:(NSString *)aChatroomId
  732. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  733. /*!
  734. * \~chinese
  735. * 改变聊天室创建者,需要Owner权限
  736. *
  737. * 同步方法,会阻塞当前线程
  738. *
  739. * @param aChatroomId 聊天室ID
  740. * @param aNewOwner 新Owner
  741. * @param pError 错误信息
  742. *
  743. * @result 聊天室实例
  744. *
  745. * \~english
  746. * Change chatroom owner, need Owner permissions
  747. *
  748. * Synchronization method will block the current thread
  749. *
  750. * @param aChatroomId Chatroom id
  751. * @param aNewOwner New owner
  752. * @param pError Error
  753. *
  754. * @result Chatroom instance
  755. */
  756. - (EMChatroom *)updateChatroomOwner:(NSString *)aChatroomId
  757. newOwner:(NSString *)aNewOwner
  758. error:(EMError **)pError;
  759. /*!
  760. * \~chinese
  761. * 改变聊天室创建者,需要Owner权限
  762. *
  763. * @param aChatroomId 聊天室ID
  764. * @param aNewOwner 新Owner
  765. * @param aCompletionBlock 完成的回调
  766. *
  767. *
  768. * \~english
  769. * Change chatroom owner, need Owner permissions
  770. *
  771. * @param aChatroomId Chatroom id
  772. * @param aNewOwner New owner
  773. * @param aCompletionBlock The callback block of completion
  774. *
  775. */
  776. - (void)updateChatroomOwner:(NSString *)aChatroomId
  777. newOwner:(NSString *)aNewOwner
  778. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  779. /*!
  780. * \~chinese
  781. * 添加聊天室管理员,需要Owner权限
  782. *
  783. * 同步方法,会阻塞当前线程
  784. *
  785. * @param aAdmin 要添加的管理员
  786. * @param aChatroomId 聊天室ID
  787. * @param pError 错误信息
  788. *
  789. * @result 聊天室实例
  790. *
  791. * \~english
  792. * Add chatroom admin, need Owner permissions
  793. *
  794. * Synchronization method will block the current thread
  795. *
  796. * @param aAdmin Admin
  797. * @param aChatroomId Chatroom id
  798. * @param pError Error
  799. *
  800. * @result Group instance
  801. */
  802. - (EMChatroom *)addAdmin:(NSString *)aAdmin
  803. toChatroom:(NSString *)aChatroomId
  804. error:(EMError **)pError;
  805. /*!
  806. * \~chinese
  807. * 添加聊天室管理员,需要Owner权限
  808. *
  809. * @param aAdmin 要添加的群组管理员
  810. * @param aChatroomId 聊天室ID
  811. * @param aCompletionBlock 完成的回调
  812. *
  813. *
  814. * \~english
  815. * Add chatroom admin, need Owner permissions
  816. *
  817. * @param aAdmin Admin
  818. * @param aChatroomId Chatroom id
  819. * @param aCompletionBlock The callback block of completion
  820. *
  821. */
  822. - (void)addAdmin:(NSString *)aAdmin
  823. toChatroom:(NSString *)aChatroomId
  824. completion:(void (^)(EMChatroom *aChatroomp, EMError *aError))aCompletionBlock;
  825. /*!
  826. * \~chinese
  827. * 移除聊天室管理员,需要Owner权限
  828. *
  829. * 同步方法,会阻塞当前线程
  830. *
  831. * @param aAdmin 要移除的群组管理员
  832. * @param aChatroomId 聊天室ID
  833. * @param pError 错误信息
  834. *
  835. * @result 聊天室实例
  836. *
  837. * \~english
  838. * Remove chatroom admin, need Owner permissions
  839. *
  840. * Synchronization method will block the current thread
  841. *
  842. * @param aAdmin Admin
  843. * @param aChatroomId Chatroom id
  844. * @param pError Error
  845. *
  846. * @result Chatroom instance
  847. */
  848. - (EMChatroom *)removeAdmin:(NSString *)aAdmin
  849. fromChatroom:(NSString *)aChatroomId
  850. error:(EMError **)pError;
  851. /*!
  852. * \~chinese
  853. * 移除聊天室管理员,需要Owner权限
  854. *
  855. * @param aAdmin 要添加的群组管理员
  856. * @param aChatroomId 聊天室ID
  857. * @param aCompletionBlock 完成的回调
  858. *
  859. *
  860. * \~english
  861. * Remove chatroom admin, need Owner permissions
  862. *
  863. * @param aAdmin Admin
  864. * @param aChatroomId Chatroom id
  865. * @param aCompletionBlock The callback block of completion
  866. *
  867. */
  868. - (void)removeAdmin:(NSString *)aAdmin
  869. fromChatroom:(NSString *)aChatroomId
  870. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  871. /*!
  872. * \~chinese
  873. * 将一组成员禁言,需要Owner / Admin权限
  874. *
  875. * 同步方法,会阻塞当前线程
  876. *
  877. * @param aMuteMembers 要禁言的成员列表<NSString>
  878. * @param aMuteMilliseconds 禁言时长
  879. * @param aChatroomId 聊天室ID
  880. * @param pError 错误信息
  881. *
  882. * @result 聊天室实例
  883. *
  884. * \~english
  885. * Mute chatroom members, need Owner / Admin permissions
  886. *
  887. * Synchronization method will block the current thread
  888. *
  889. * @param aMuteMembers The list of mute, type is <NSString>
  890. * @param aMuteMilliseconds Muted time duration in millisecond
  891. * @param aChatroomId Chatroom id
  892. * @param pError Error
  893. *
  894. * @result Chatroom instance
  895. */
  896. - (EMChatroom *)muteMembers:(NSArray *)aMuteMembers
  897. muteMilliseconds:(NSInteger)aMuteMilliseconds
  898. fromChatroom:(NSString *)aChatroomId
  899. error:(EMError **)pError;
  900. /*!
  901. * \~chinese
  902. * 将一组成员禁言,需要Owner / Admin权限
  903. *
  904. * @param aMuteMembers 要禁言的成员列表<NSString>
  905. * @param aMuteMilliseconds 禁言时长
  906. * @param aChatroomId 聊天室ID
  907. * @param aCompletionBlock 完成的回调
  908. *
  909. * \~english
  910. * Mute chatroom members, need Owner / Admin permissions
  911. *
  912. * Synchronization method will block the current thread
  913. *
  914. * @param aMuteMembers The list of mute, type is <NSString>
  915. * @param aMuteMilliseconds Muted time duration in millisecond
  916. * @param aChatroomId Chatroom id
  917. * @param aCompletionBlock The callback block of completion
  918. *
  919. */
  920. - (void)muteMembers:(NSArray *)aMuteMembers
  921. muteMilliseconds:(NSInteger)aMuteMilliseconds
  922. fromChatroom:(NSString *)aChatroomId
  923. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  924. /*!
  925. * \~chinese
  926. * 解除禁言,需要Owner / Admin权限
  927. *
  928. * 同步方法,会阻塞当前线程
  929. *
  930. * @param aMuteMembers 被解除的列表<NSString>
  931. * @param aChatroomId 聊天室ID
  932. * @param pError 错误信息
  933. *
  934. * @result 聊天室实例
  935. *
  936. * \~english
  937. * Unmute chatroom members, need Owner / Admin permissions
  938. *
  939. * Synchronization method will block the current thread
  940. *
  941. * @param aMembers The list of unmute, type is <NSString>
  942. * @param aChatroomId Chatroom id
  943. * @param pError Error
  944. *
  945. * @result Chatroom instance
  946. */
  947. - (EMChatroom *)unmuteMembers:(NSArray *)aMembers
  948. fromChatroom:(NSString *)aChatroomId
  949. error:(EMError **)pError;
  950. /*!
  951. * \~chinese
  952. * 解除禁言,需要Owner / Admin权限
  953. *
  954. * @param aMuteMembers 被解除的列表<NSString>
  955. * @param aChatroomId 聊天室ID
  956. * @param aCompletionBlock 完成的回调
  957. *
  958. * \~english
  959. * Unmute chatroom members, need Owner / Admin permissions
  960. *
  961. * Synchronization method will block the current thread
  962. *
  963. * @param aMembers The list of unmute, type is <NSString>
  964. * @param aChatroomId Chatroom id
  965. * @param aCompletionBlock The callback block of completion
  966. *
  967. */
  968. - (void)unmuteMembers:(NSArray *)aMembers
  969. fromChatroom:(NSString *)aChatroomId
  970. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  971. /*!
  972. * \~chinese
  973. * 修改聊天室公告,需要Owner / Admin权限
  974. *
  975. * @param aChatroomId 聊天室ID
  976. * @param aAnnouncement 群公告
  977. * @param pError 错误信息
  978. *
  979. * @result 聊天室实例
  980. *
  981. * \~english
  982. * Change the announcement of chatroom, need Owner / Admin permissions
  983. *
  984. * Synchronization method will block the current thread
  985. *
  986. * @param aChatroomId Chatroom id
  987. * @param aAnnouncement announcement of chatroom
  988. * @param pError error
  989. *
  990. * @result Chatroom instance
  991. */
  992. - (EMChatroom *)updateChatroomAnnouncementWithId:(NSString *)aChatroomId
  993. announcement:(NSString *)aAnnouncement
  994. error:(EMError **)pError;
  995. /*!
  996. * \~chinese
  997. * 修改聊天室公告,需要Owner / Admin权限
  998. *
  999. * @param aChatroomId 聊天室ID
  1000. * @param aAnnouncement 群公告
  1001. * @param aCompletionBlock 完成的回调
  1002. *
  1003. * \~english
  1004. * Change the announcement of chatroom, need Owner / Admin permissions
  1005. *
  1006. * @param aChatroomId Chatroom id
  1007. * @param aAnnouncement announcement of chatroom
  1008. * @param aCompletionBlock The callback block of completion
  1009. *
  1010. */
  1011. - (void)updateChatroomAnnouncementWithId:(NSString *)aChatroomId
  1012. announcement:(NSString *)aAnnouncement
  1013. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock;
  1014. #pragma mark - EM_DEPRECATED_IOS 3.3.0
  1015. /*!
  1016. * \~chinese
  1017. * 获取聊天室详情
  1018. *
  1019. * 同步方法,会阻塞当前线程
  1020. *
  1021. * @param aChatroomId 聊天室ID
  1022. * @param aIncludeMembersList 是否获取成员列表,为YES时,返回200个成员
  1023. * @param pError 错误信息
  1024. *
  1025. * @return 聊天室
  1026. *
  1027. * \~english
  1028. * Fetch chatroom's specification
  1029. *
  1030. * Synchronization method, will block the current thread
  1031. *
  1032. * @param aChatroomId Chatroom id
  1033. * @param aIncludeMembersList Whether to get member list,When YES, returns 200 members
  1034. * @param pError Error
  1035. *
  1036. * @return Chatroom instance
  1037. */
  1038. - (EMChatroom *)fetchChatroomInfo:(NSString *)aChatroomId
  1039. includeMembersList:(BOOL)aIncludeMembersList
  1040. error:(EMError **)pError EM_DEPRECATED_IOS(3_1_0, 3_3_0, "Use -[IEMChatroomManager getChatroomSpecificationFromServerWithId:error:]");
  1041. /*!
  1042. * \~chinese
  1043. * 获取聊天室详情
  1044. *
  1045. * @param aChatroomId 聊天室ID
  1046. * @param aIncludeMembersList 是否获取成员列表,为YES时,返回200个成员
  1047. * @param aCompletionBlock 完成的回调
  1048. *
  1049. * \~english
  1050. * Fetch chat room specifications
  1051. *
  1052. * @param aChatroomId Chatroom id
  1053. * @param aIncludeMembersList Whether to get member list,When YES, returns 200 members
  1054. * @param aCompletionBlock The callback block of completion
  1055. *
  1056. */
  1057. - (void)getChatroomSpecificationFromServerByID:(NSString *)aChatroomId
  1058. includeMembersList:(BOOL)aIncludeMembersList
  1059. completion:(void (^)(EMChatroom *aChatroom, EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_3_0, "Use -[IEMChatroomManager getChatroomSpecificationFromServerWithId:completion:]");
  1060. #pragma mark - EM_DEPRECATED_IOS 3.2.3
  1061. /*!
  1062. * \~chinese
  1063. * 添加回调代理
  1064. *
  1065. * @param aDelegate 要添加的代理
  1066. *
  1067. * \~english
  1068. * Add delegate
  1069. *
  1070. * @param aDelegate Delegate
  1071. */
  1072. - (void)addDelegate:(id<EMChatroomManagerDelegate>)aDelegate EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -[IEMChatroomManager addDelegate:delegateQueue:]");
  1073. #pragma mark - EM_DEPRECATED_IOS < 3.2.3
  1074. /*!
  1075. * \~chinese
  1076. * 从服务器获取所有的聊天室
  1077. *
  1078. * 同步方法,会阻塞当前线程
  1079. *
  1080. * @param pError 出错信息
  1081. *
  1082. * @return 聊天室列表<EMChatroom>
  1083. *
  1084. * \~english
  1085. * Get all the chatrooms from server
  1086. *
  1087. * Synchronization method will block the current thread
  1088. *
  1089. * @param pError Error
  1090. *
  1091. * @return Chat room list<EMChatroom>
  1092. */
  1093. - (NSArray *)getAllChatroomsFromServerWithError:(EMError **)pError __deprecated_msg("Use -getChatroomsFromServerWithPage");
  1094. /*!
  1095. * \~chinese
  1096. * 从服务器获取所有的聊天室
  1097. *
  1098. * @param aCompletionBlock 完成的回调
  1099. *
  1100. * \~english
  1101. * Get all the chatrooms from server
  1102. *
  1103. * @param aCompletionBlock The callback block of completion
  1104. *
  1105. */
  1106. - (void)getAllChatroomsFromServerWithCompletion:(void (^)(NSArray *aList, EMError *aError))aCompletionBlock __deprecated_msg("Use -getChatroomsFromServerWithPage");
  1107. /*!
  1108. * \~chinese
  1109. * 从服务器获取所有的聊天室
  1110. *
  1111. * @param aSuccessBlock 成功的回调
  1112. * @param aFailureBlock 失败的回调
  1113. *
  1114. * \~english
  1115. * Get all the chatrooms from server
  1116. *
  1117. * @param aSuccessBlock The callback block of success
  1118. * @param aFailureBlock The callback block of failure
  1119. *
  1120. */
  1121. - (void)asyncGetAllChatroomsFromServer:(void (^)(NSArray *aList))aSuccessBlock
  1122. failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -getAllChatroomsFromServerWithCompletion:");
  1123. /*!
  1124. * \~chinese
  1125. * 加入聊天室
  1126. *
  1127. * @param aChatroomId 聊天室的ID
  1128. * @param aSuccessBlock 成功的回调
  1129. * @param aFailureBlock 失败的回调
  1130. *
  1131. *
  1132. * \~english
  1133. * Join a chatroom
  1134. *
  1135. * @param aChatroomId Chatroom id
  1136. * @param aSuccessBlock The callback block of success
  1137. * @param aFailureBlock The callback block of failure
  1138. *
  1139. */
  1140. - (void)asyncJoinChatroom:(NSString *)aChatroomId
  1141. success:(void (^)(EMChatroom *aRoom))aSuccessBlock
  1142. failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -joinChatroom:completion:");
  1143. /*!
  1144. * \~chinese
  1145. * 退出聊天室
  1146. *
  1147. * @param aChatroomId 聊天室ID
  1148. * @param aSuccessBlock 成功的回调
  1149. * @param aFailureBlock 失败的回调
  1150. *
  1151. * @result 退出的聊天室
  1152. *
  1153. * \~english
  1154. * Leave a chatroom
  1155. *
  1156. * @param aChatroomId Chatroom id
  1157. * @param aSuccessBlock The callback block of success
  1158. * @param aFailureBlock The callback block of failure
  1159. *
  1160. * @result Leaved chatroom
  1161. */
  1162. - (void)asyncLeaveChatroom:(NSString *)aChatroomId
  1163. success:(void (^)(EMChatroom *aRoom))aSuccessBlock
  1164. failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -leaveChatroom:completion:");
  1165. /*!
  1166. * \~chinese
  1167. * 获取聊天室详情
  1168. *
  1169. * @param aChatroomId 聊天室ID
  1170. * @param aIncludeMembersList 是否获取成员列表
  1171. * @param aSuccessBlock 成功的回调
  1172. * @param aFailureBlock 失败的回调
  1173. *
  1174. * \~english
  1175. * Fetch chatroom's specification
  1176. *
  1177. * @param aChatroomId Chatroom id
  1178. * @param aIncludeMembersList Whether get member list
  1179. * @param aSuccessBlock The callback block of success
  1180. * @param aFailureBlock The callback block of failure
  1181. *
  1182. */
  1183. - (void)asyncFetchChatroomInfo:(NSString *)aChatroomId
  1184. includeMembersList:(BOOL)aIncludeMembersList
  1185. success:(void (^)(EMChatroom *aChatroom))aSuccessBlock
  1186. failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -getChatroomSpecificationFromServerByID:includeMembersList:completion:");
  1187. @end