1#import <Foundation/NSObject.h> 2#import <Foundation/NSMethodSignature.h> 3 4@class NSMutableDictionary; 5@class NSArray; 6@class NSSet; 7@class NSEnumerator; 8 9@interface MVChatPluginManager : NSObject { 10 @private 11 NSMutableDictionary *_plugins; 12} 13+ (MVChatPluginManager *) defaultManager; 14 15- (NSArray *) pluginSearchPaths; 16- (void) findAndLoadPlugins; 17 18- (NSSet *) plugins; 19- (NSSet *) pluginsThatRespondToSelector:(SEL) selector; 20- (NSSet *) pluginsOfClass:(Class) class thatRespondToSelector:(SEL) selector; 21 22- (NSEnumerator *) pluginEnumerator; 23- (NSEnumerator *) enumeratorOfPluginsThatRespondToSelector:(SEL) selector; 24- (NSEnumerator *) enumeratorOfPluginsOfClass:(Class) class thatRespondToSelector:(SEL) selector; 25 26- (unsigned int) numberOfPlugins; 27- (unsigned int) numberOfPluginsThatRespondToSelector:(SEL) selector; 28- (unsigned int) numberOfPluginsOfClass:(Class) class thatRespondToSelector:(SEL) selector; 29 30- (NSArray *) makePluginsPerformInvocation:(NSInvocation *) invocation; 31- (NSArray *) makePluginsPerformInvocation:(NSInvocation *) invocation stoppingOnFirstSuccessfulReturn:(BOOL) stop; 32- (NSArray *) makePluginsOfClass:(Class) class performInvocation:(NSInvocation *) invocation stoppingOnFirstSuccessfulReturn:(BOOL) stop; 33@end 34 35@protocol MVChatPlugin 36- (id) initWithManager:(MVChatPluginManager *) manager; 37@end 38