This commit is contained in:
Jonathan Schleifer 2012-02-03 10:40:34 +01:00
commit 939364cb75
2 changed files with 99 additions and 0 deletions

View file

@ -32,6 +32,10 @@
@class SSLSocket; @class SSLSocket;
@class XMPPMulticastDelegate; @class XMPPMulticastDelegate;
/**
* \brief A protocol should be (partially) implemented
* by delegates of a XMPPConnection
*/
@protocol XMPPConnectionDelegate @protocol XMPPConnectionDelegate
#ifndef XMPP_CONNECTION_M #ifndef XMPP_CONNECTION_M
<OFObject> <OFObject>
@ -39,21 +43,87 @@
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS #ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional @optional
#endif #endif
/**
* This callback is called when the connection received an element
*
* \param connection The connection that received the element
* \param element The element that was received
*/
- (void)connection: (XMPPConnection*)connection - (void)connection: (XMPPConnection*)connection
didReceiveElement: (OFXMLElement*)element; didReceiveElement: (OFXMLElement*)element;
/**
* This callback is called when the connection sent an element
*
* \param connection The connection that sent the element
* \param element The element that was sent
*/
- (void)connection: (XMPPConnection*)connection - (void)connection: (XMPPConnection*)connection
didSendElement: (OFXMLElement*)element; didSendElement: (OFXMLElement*)element;
/**
* This callback is called when the connection sucessfully authenticated
*
* \param connection The connection that was authenticated
*/
- (void)connectionWasAuthenticated: (XMPPConnection*)connection; - (void)connectionWasAuthenticated: (XMPPConnection*)connection;
/**
* This callback is called when the connection was bound to a JID
*
* \param connection The connection that was bound to a JID
* \param JID The JID the conecction was bound to
*/
- (void)connection: (XMPPConnection*)connection - (void)connection: (XMPPConnection*)connection
wasBoundToJID: (XMPPJID*)JID; wasBoundToJID: (XMPPJID*)JID;
/**
* This callback is called when the connection received an IQ stanza
*
* \param connection The connection that received the stanza
* \param iq The IQ stanza that was received
*/
- (BOOL)connection: (XMPPConnection*)connection - (BOOL)connection: (XMPPConnection*)connection
didReceiveIQ: (XMPPIQ*)iq; didReceiveIQ: (XMPPIQ*)iq;
/**
* This callback is called when the connection received a presence stanza
*
* \param connection The connection that received the stanza
* \param presence The presence stanza that was received
*/
- (void)connection: (XMPPConnection*)connection - (void)connection: (XMPPConnection*)connection
didReceivePresence: (XMPPPresence*)presence; didReceivePresence: (XMPPPresence*)presence;
/**
* This callback is called when the connection received a message stanza
*
* \param connection The connection that received the stanza
* \param message The message stanza that was received
*/
- (void)connection: (XMPPConnection*)connection - (void)connection: (XMPPConnection*)connection
didReceiveMessage: (XMPPMessage*)message; didReceiveMessage: (XMPPMessage*)message;
/**
* This callback is called when the connection was closed
*
* \param connection The connection that was closed
*/
- (void)connectionWasClosed: (XMPPConnection*)connection; - (void)connectionWasClosed: (XMPPConnection*)connection;
/**
* This callback is called when the connection is about to upgraded to TLS
*
* \param connection The connection that will upgraded to TLS
*/
- (void)connectionWillUpgradeToTLS: (XMPPConnection*)connection; - (void)connectionWillUpgradeToTLS: (XMPPConnection*)connection;
/**
* This callback is called when the connection was upgraded to use TLS
*
* \param connection The connection that was upgraded to TLS
*/
- (void)connectionDidUpgradeToTLS: (XMPPConnection*)connection; - (void)connectionDidUpgradeToTLS: (XMPPConnection*)connection;
@end @end

View file

@ -24,15 +24,44 @@
@class OFDataArray; @class OFDataArray;
/**
* \brief A class to provide multiple delegates in a single class
*/
@interface XMPPMulticastDelegate: OFObject @interface XMPPMulticastDelegate: OFObject
{ {
OFDataArray *delegates; OFDataArray *delegates;
} }
/**
* Adds a delegate to the set of managed delegates
*
* \param delegate The delegate to add
*/
- (void)addDelegate: (id)delegate; - (void)addDelegate: (id)delegate;
/**
* Removes a delegate from the set of managed delegates
*
* \param delegate The delegate to remove
*/
- (void)removeDelegate: (id)delegate; - (void)removeDelegate: (id)delegate;
/**
* Broadcasts a selector with one object to all managed delegates
*
* \param selector The selector to broadcast
* \param object The object to broadcast
*/
- (BOOL)broadcastSelector: (SEL)selector - (BOOL)broadcastSelector: (SEL)selector
withObject: (id)object; withObject: (id)object;
/**
* Broadcasts a selector with two objects to all managed delegates
*
* \param selector The selector to broadcast
* \param object1 The first object to broadcast
* \param object2 The second object to broadcast
*/
- (BOOL)broadcastSelector: (SEL)selector - (BOOL)broadcastSelector: (SEL)selector
withObject: (id)object1 withObject: (id)object1
withObject: (id)object2; withObject: (id)object2;