MOBFPluginManager.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // MOBFPluginManager.h
  3. // MOBFoundation
  4. //
  5. // Created by fenghj on 15/6/2.
  6. // Copyright (c) 2015年 MOB. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "IMOBFPlugin.h"
  10. /**
  11. * 插件创建事件处理
  12. *
  13. * @return 插件对象
  14. */
  15. typedef id<IMOBFPlugin>(^MOBFPluginConstructHandler) ();
  16. /**
  17. * 插件管理器
  18. */
  19. @interface MOBFPluginManager : NSObject
  20. /**
  21. * 获取默认的插件管理器
  22. *
  23. * @return 插件管理器
  24. */
  25. + (instancetype) defaultManager;
  26. /**
  27. * 注册插件
  28. *
  29. * @param pluginConstructHandler 插件构造事件处理器
  30. * @param key 插件标识
  31. *
  32. * @return YES 表示注册成功,NO 表示注册失败,有可能已存在此插件
  33. */
  34. - (BOOL)registerPlugin:(MOBFPluginConstructHandler)pluginConstructHandler forKey:(NSString *)key;
  35. /**
  36. * 判断是否已经注册插件
  37. *
  38. * @param key 插件标识
  39. *
  40. * @return YES 表示已经注册, NO 表示尚未注册
  41. */
  42. - (BOOL)isRegisterPluginForKey:(NSString *)key;
  43. /**
  44. * 获取插件对象
  45. *
  46. * @param key 插件标识
  47. *
  48. * @return 插件对象,nil 表示该标志的插件不存在
  49. */
  50. - (id<IMOBFPlugin>)pluginForKey:(NSString *)key;
  51. /**
  52. * 卸载插件
  53. *
  54. * @param key 插件标识
  55. */
  56. - (void)unloadPluginForKey:(NSString *)key;
  57. @end