44 lines
1.0 KiB
Objective-C
44 lines
1.0 KiB
Objective-C
#import <Foundation/Foundation.h>
|
|
#import "GCDMulticastDelegate.h"
|
|
|
|
@class XMPPStream;
|
|
|
|
/**
|
|
* XMPPModule is the base class that all extensions/modules inherit.
|
|
* They automatically get:
|
|
*
|
|
* - A dispatch queue.
|
|
* - A multicast delegate that automatically invokes added delegates.
|
|
*
|
|
* The module also automatically registers/unregisters itself with the
|
|
* xmpp stream during the activate/deactive methods.
|
|
**/
|
|
@interface XMPPModule : NSObject
|
|
{
|
|
XMPPStream *xmppStream;
|
|
|
|
dispatch_queue_t moduleQueue;
|
|
void *moduleQueueTag;
|
|
|
|
id multicastDelegate;
|
|
}
|
|
|
|
@property (readonly) dispatch_queue_t moduleQueue;
|
|
@property (readonly) void *moduleQueueTag;
|
|
|
|
@property (strong, readonly) XMPPStream *xmppStream;
|
|
|
|
- (id)init;
|
|
- (id)initWithDispatchQueue:(dispatch_queue_t)queue;
|
|
|
|
- (BOOL)activate:(XMPPStream *)aXmppStream;
|
|
- (void)deactivate;
|
|
|
|
- (void)addDelegate:(id)delegate delegateQueue:(dispatch_queue_t)delegateQueue;
|
|
- (void)removeDelegate:(id)delegate delegateQueue:(dispatch_queue_t)delegateQueue;
|
|
- (void)removeDelegate:(id)delegate;
|
|
|
|
- (NSString *)moduleName;
|
|
|
|
@end
|