Comment: | Improve documentation. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ae47288dc39e5cc92e246cae297bc9dc |
User & Date: | js on 2013-02-15 14:32:44 |
Other Links: | manifest | tags |
2013-02-18
| ||
23:16 | Adjust to recent ObjFW changes. check-in: e81a369270 user: js tags: trunk | |
2013-02-15
| ||
14:32 | Improve documentation. check-in: ae47288dc3 user: js tags: trunk | |
14:27 | Update and fix Xcode project. check-in: 134558aa8b user: js tags: trunk | |
Modified Doxyfile from [ed269b881b] to [fe972c84ba].
1 2 3 4 5 6 7 | PROJECT_NAME = "ObjXMPP" OUTPUT_DIRECTORY = docs/ INPUT = src FILE_PATTERNS = *.h *.m HTML_OUTPUT = . GENERATE_LATEX = NO HIDE_UNDOC_CLASSES = YES | > | > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | PROJECT_NAME = "ObjXMPP" OUTPUT_DIRECTORY = docs/ INPUT = src FILE_PATTERNS = *.h *.m HTML_OUTPUT = . GENERATE_LATEX = NO HIDE_UNDOC_CLASSES = YES HIDE_UNDOC_MEMBERS = YES PREDEFINED = OF_HAVE_PROPERTIES \ OF_HAVE_BLOCKS \ OF_HAVE_THREADS \ OF_SENTINEL \ OF_RETURNS_RETAINED \ OF_RETURNS_NOT_RETAINED \ OF_RETURNS_INNER_POINTER \ OF_CONSUMED \ OF_WEAK_UNAVAILABLE MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES IGNORE_PREFIX = XMPP |
Modified src/XMPPAuthenticator.h from [e94cafe039] to [89cf5dd3d3].
︙ | ︙ | |||
23 24 25 26 27 28 29 | #import <ObjFW/ObjFW.h> /** * \brief A base class for classes implementing authentication mechanisms */ @interface XMPPAuthenticator: OFObject { | < < | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #import <ObjFW/ObjFW.h> /** * \brief A base class for classes implementing authentication mechanisms */ @interface XMPPAuthenticator: OFObject { OFString *_authzid; OFString *_authcid; OFString *_password; } #ifdef OF_HAVE_PROPERTIES /// \brief The authzid to get authorization for @property (copy) OFString *authzid; /// \brief The authcid to authenticate with @property (copy) OFString *authcid; |
︙ | ︙ |
Modified src/XMPPConnection.h from [cd1e322dae] to [229b6174a3].
︙ | ︙ | |||
112 113 114 115 116 117 118 | /** * \brief This callback is called when the connection was closed. * * \param connection The connection that was closed */ - (void)connectionWasClosed: (XMPPConnection*)connection; | | | | | | | | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /** * \brief This callback is called when the connection was closed. * * \param connection The connection that was closed */ - (void)connectionWasClosed: (XMPPConnection*)connection; /*! * @brief This callback is called when the connection threw an exception. * * This is only called for connections on which * @ref XMPPConnection::handleConnection has been called. * * @param connection The connection which threw an exception * @param exception The exception the connection threw */ - (void)connection: (XMPPConnection*)connection didThrowException: (OFException*)exception; /** * \brief This callback is called when the connection is about to upgrade to * TLS. |
︙ | ︙ | |||
148 149 150 151 152 153 154 | * \brief A class which abstracts a connection to an XMPP service. */ @interface XMPPConnection: OFObject #ifdef OF_HAVE_OPTONAL_PROTOCOLS <OFXMLParserDelegate, OFXMLElementBuilderDelegate> #endif { | < < | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | * \brief A class which abstracts a connection to an XMPP service. */ @interface XMPPConnection: OFObject #ifdef OF_HAVE_OPTONAL_PROTOCOLS <OFXMLParserDelegate, OFXMLElementBuilderDelegate> #endif { id _socket; OFXMLParser *_parser, *_oldParser; OFXMLElementBuilder *_elementBuilder, *_oldElementBuilder; OFString *_username, *_password, *_server, *_resource; OFString *_privateKeyFile, *_certificateFile; OFString *_domain, *_domainToASCII; XMPPJID *_JID; uint16_t _port; id <XMPPStorage> _dataStorage; OFString *_language; XMPPMulticastDelegate *_delegates; OFMutableDictionary *_callbacks; XMPPAuthenticator *_authModule; BOOL _streamOpen; BOOL _needsSession; BOOL _encryptionRequired, _encrypted; BOOL _supportsRosterVersioning; BOOL _supportsStreamManagement; unsigned int _lastID; } #ifdef OF_HAVE_PROPERTIES /// \brief The username to use for authentication @property (copy) OFString *username; /// \brief The password to use for authentication @property (copy) OFString *password; |
︙ | ︙ | |||
310 311 312 313 314 315 316 | /** * \brief Sends an OFXMLElement, usually an XMPPStanza. * * \param element The element to send */ - (void)sendStanza: (OFXMLElement*)element; | | | > | | | | | > | | | 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 | /** * \brief Sends an OFXMLElement, usually an XMPPStanza. * * \param element The element to send */ - (void)sendStanza: (OFXMLElement*)element; /*! * @brief Sends an XMPPIQ, registering a callback method. * * @param IQ The IQ to send * @param target The object that contains the callback method * @param selector The selector of the callback method, * must take exactly one parameter of type XMPPIQ* */ - (void)sendIQ: (XMPPIQ*)IQ callbackTarget: (id)target selector: (SEL)selector; #ifdef OF_HAVE_BLOCKS /*! * @brief Sends an XMPPIQ, registering a callback block. * * @param IQ The IQ to send * @param block The callback block */ - (void)sendIQ: (XMPPIQ*)IQ callbackBlock: (xmpp_callback_block_t)block; #endif /** * \brief Generates a new, unique stanza ID. * * \return A new, generated, unique stanza ID. |
︙ | ︙ | |||
358 359 360 361 362 363 364 | - (void)setDataStorage: (id <XMPPStorage>)dataStorage; - (id <XMPPStorage>)dataStorage; - (void)setLanguage: (OFString*)language; - (OFString*)language; - (BOOL)supportsRosterVersioning; - (BOOL)supportsStreamManagement; | < < | 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 | - (void)setDataStorage: (id <XMPPStorage>)dataStorage; - (id <XMPPStorage>)dataStorage; - (void)setLanguage: (OFString*)language; - (OFString*)language; - (BOOL)supportsRosterVersioning; - (BOOL)supportsStreamManagement; - (void)XMPP_startStream; - (void)XMPP_handleStream: (OFXMLElement*)element; - (void)XMPP_handleTLS: (OFXMLElement*)element; - (void)XMPP_handleSASL: (OFXMLElement*)element; - (void)XMPP_handleStanza: (OFXMLElement*)element; - (void)XMPP_sendAuth: (OFString*)authName; - (void)XMPP_sendResourceBind; - (void)XMPP_sendStreamError: (OFString*)condition text: (OFString*)text; - (void)XMPP_handleIQ: (XMPPIQ*)iq; - (void)XMPP_handleMessage: (XMPPMessage*)message; - (void)XMPP_handlePresence: (XMPPPresence*)presence; - (void)XMPP_handleFeatures: (OFXMLElement*)element; - (void)XMPP_handleResourceBindForConnection: (XMPPConnection*)connection IQ: (XMPPIQ*)iq; - (void)XMPP_sendSession; - (void)XMPP_handleSessionForConnection: (XMPPConnection*)connection IQ: (XMPPIQ*)iq; - (OFString*)XMPP_IDNAToASCII: (OFString*)domain; - (XMPPMulticastDelegate*)XMPP_delegates; @end @interface OFObject (XMPPConnectionDelegate) <XMPPConnectionDelegate> @end |
Modified src/XMPPConnection.m from [66ac2fa939] to [b48daabd06].
︙ | ︙ | |||
560 561 562 563 564 565 566 | [_delegates broadcastSelector: @selector(connection:didSendElement:) withObject: self withObject: element]; [_socket writeString: [element XMLString]]; } | | | | | | | | | | | | 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 | [_delegates broadcastSelector: @selector(connection:didSendElement:) withObject: self withObject: element]; [_socket writeString: [element XMLString]]; } - (void)sendIQ: (XMPPIQ*)IQ callbackTarget: (id)target selector: (SEL)selector { OFAutoreleasePool *pool; XMPPCallback *callback; if (![IQ ID]) [IQ setID: [self generateStanzaID]]; pool = [[OFAutoreleasePool alloc] init]; callback = [XMPPCallback callbackWithTarget: target selector: selector]; [_callbacks setObject: callback forKey: [IQ ID]]; [pool release]; [self sendStanza: IQ]; } #ifdef OF_HAVE_BLOCKS - (void)sendIQ: (XMPPIQ*)IQ callbackBlock: (xmpp_callback_block_t)block { OFAutoreleasePool *pool; XMPPCallback *callback; if (![IQ ID]) [IQ setID: [self generateStanzaID]]; pool = [[OFAutoreleasePool alloc] init]; callback = [XMPPCallback callbackWithBlock: block]; [_callbacks setObject: callback forKey: [IQ ID]]; [pool release]; [self sendStanza: IQ]; } #endif - (OFString*)generateStanzaID { return [OFString stringWithFormat: @"objxmpp_%u", _lastID++]; } |
︙ | ︙ |
Modified src/XMPPContact.h from [9b2c9af3b3] to [c06c9b325a].
︙ | ︙ | |||
29 30 31 32 33 34 35 | @class XMPPPresence; /** * \brief A class describing a contact tracked by a XMPPContactManager */ @interface XMPPContact: OFObject { | < < > < < | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | @class XMPPPresence; /** * \brief A class describing a contact tracked by a XMPPContactManager */ @interface XMPPContact: OFObject { XMPPRosterItem *_rosterItem; OFMutableDictionary *_presences; XMPPJID *_lockedOnJID; } #ifdef OF_HAVE_PROPERTIES /// \brief The XMPPRosterItem corresponding to this contact @property (readonly) XMPPRosterItem *rosterItem; /// \brief The XMPPPresences of this contact with the resources as keys @property (readonly) OFDictionary *presences; #endif /** * \brief Sends a message to the contact honoring resource locking * * \param message The message to send * \param connection The connection to use for sending the message */ - (void)sendMessage: (XMPPMessage*)message connection: (XMPPConnection*)connection; - (void)XMPP_setRosterItem: (XMPPRosterItem*)rosterItem; - (void)XMPP_setPresence: (XMPPPresence*)presence resource: (OFString*)resource; - (void)XMPP_removePresenceForResource: (OFString*)resource; - (void)XMPP_setLockedOnJID: (XMPPJID*)JID; @end |
Modified src/XMPPContactManager.h from [a7556ed65c] to [6012950886].
︙ | ︙ | |||
93 94 95 96 97 98 99 | * each contacts presences and the current XMPPRosterItem. */ @interface XMPPContactManager: OFObject #ifdef OF_HAVE_OPTIONAL_PROTOCOLS <XMPPConnectionDelegate, XMPPRosterDelegate> #endif { | < < > | | | > | | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | * each contacts presences and the current XMPPRosterItem. */ @interface XMPPContactManager: OFObject #ifdef OF_HAVE_OPTIONAL_PROTOCOLS <XMPPConnectionDelegate, XMPPRosterDelegate> #endif { OFMutableDictionary *_contacts; XMPPConnection *_connection; XMPPRoster *_roster; XMPPMulticastDelegate *_delegates; } #ifdef OF_HAVE_PROPERTIES /// \brief The tracked contacts, with their bare JID as key @property (readonly) OFDictionary *contacts; #endif /*! * @brief Initializes an already allocated XMPPContactManager. * * @param connection The connection to be used to track contacts * @param roster The roster used by the contact manager * @return An initialized XMPPContactManager */ - initWithConnection: (XMPPConnection*)connection roster: (XMPPRoster*)roster; /** * \brief Adds the specified delegate. * |
︙ | ︙ |
Modified src/XMPPExceptions.h from [dbbce54dec] to [5b24b061ea].
︙ | ︙ | |||
26 27 28 29 30 31 32 | @class XMPPAuthenticator; /** * \brief A base class for XMPP related exceptions */ @interface XMPPException: OFException { | < < | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | @class XMPPAuthenticator; /** * \brief A base class for XMPP related exceptions */ @interface XMPPException: OFException { XMPPConnection *_connection; } #ifdef OF_HAVE_PROPERTIES /// \brief The connection the exception relates to @property (readonly, assign) XMPPConnection *connection; #endif |
︙ | ︙ | |||
66 67 68 69 70 71 72 | @end /** * \brief An exception indicating a stream error was received */ @interface XMPPStreamErrorException: XMPPException { | < < | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | @end /** * \brief An exception indicating a stream error was received */ @interface XMPPStreamErrorException: XMPPException { OFString *_condition; OFString *_reason; } #ifdef OF_HAVE_PROPERTIES /// \brief The defined error condition specified by the stream error @property (readonly, assign) OFString *condition; /// \brief The descriptive free-form text specified by the stream error @property (readonly, assign) OFString *reason; |
︙ | ︙ | |||
117 118 119 120 121 122 123 | /** * \brief An exception indicating a stringprep profile * did not apply to a string */ @interface XMPPStringPrepFailedException: XMPPException { | < < | 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | /** * \brief An exception indicating a stringprep profile * did not apply to a string */ @interface XMPPStringPrepFailedException: XMPPException { OFString *_profile; OFString *_string; } #ifdef OF_HAVE_PROPERTIES /// \brief The name of the stringprep profile that did not apply @property (readonly, assign) OFString *profile; /// \brief The string that failed the stringprep profile @property (readonly, assign) OFString *string; |
︙ | ︙ | |||
167 168 169 170 171 172 173 | @end /** * \brief An exception indicating IDNA translation of a string failed */ @interface XMPPIDNATranslationFailedException: XMPPException { | < < | 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | @end /** * \brief An exception indicating IDNA translation of a string failed */ @interface XMPPIDNATranslationFailedException: XMPPException { OFString *_operation; OFString *_string; } #ifdef OF_HAVE_PROPERTIES /// \brief The IDNA translation operation which failed @property (readonly, assign) OFString *operation; /// \brief The string that could not be translated @property (readonly, assign) OFString *string; |
︙ | ︙ | |||
217 218 219 220 221 222 223 | @end /** * \brief An exception indicating authentication failed */ @interface XMPPAuthFailedException: XMPPException { | < < | 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | @end /** * \brief An exception indicating authentication failed */ @interface XMPPAuthFailedException: XMPPException { OFString *_reason; } #ifdef OF_HAVE_PROPERTIES /// \brief The reason the authentication failed @property (readonly, assign) OFString *reason; #endif |
︙ | ︙ |
Modified src/XMPPJID.h from [c1b15256ac] to [bd69f42276].
︙ | ︙ | |||
24 25 26 27 28 29 30 | #import <ObjFW/ObjFW.h> /** * \brief A class for easy handling of JIDs. */ @interface XMPPJID: OFObject <OFCopying> { | < < | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #import <ObjFW/ObjFW.h> /** * \brief A class for easy handling of JIDs. */ @interface XMPPJID: OFObject <OFCopying> { OFString *_node; OFString *_domain; OFString *_resource; } #ifdef OF_HAVE_PROPERTIES /// \brief The JID's localpart @property (copy) OFString *node; /// \brief The JID's domainpart @property (copy) OFString *domain; |
︙ | ︙ |
Modified src/XMPPMulticastDelegate.h from [3d08dfb767] to [6630339e62].
︙ | ︙ | |||
25 26 27 28 29 30 31 | @class OFDataArray; /** * \brief A class to provide multiple delegates in a single class */ @interface XMPPMulticastDelegate: OFObject { | < < | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | @class OFDataArray; /** * \brief A class to provide multiple delegates in a single class */ @interface XMPPMulticastDelegate: OFObject { OFDataArray *_delegates; } /** * \brief Adds a delegate which should receive the broadcasts. * * \param delegate The delegate to add */ |
︙ | ︙ |
Modified src/XMPPPresence.h from [64aa77b770] to [a0f262bf11].
︙ | ︙ | |||
24 25 26 27 28 29 30 | #import "XMPPStanza.h" /** * \brief A class describing a presence stanza. */ @interface XMPPPresence: XMPPStanza <OFComparing> { | < < | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #import "XMPPStanza.h" /** * \brief A class describing a presence stanza. */ @interface XMPPPresence: XMPPStanza <OFComparing> { OFString *_status; OFString *_show; OFNumber *_priority; } #ifdef OF_HAVE_PROPERTIES @property (copy) OFString *status; @property (copy) OFString *show; @property (copy) OFNumber *priority; #endif |
︙ | ︙ |
Modified src/XMPPRoster.h from [86893cd063] to [d21cceae6c].
︙ | ︙ | |||
64 65 66 67 68 69 70 | * \brief A class implementing roster related functionality. */ @interface XMPPRoster: OFObject #ifdef OF_HAVE_OPTIONAL_PROTOCOLS <XMPPConnectionDelegate> #endif { | < < | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | * \brief A class implementing roster related functionality. */ @interface XMPPRoster: OFObject #ifdef OF_HAVE_OPTIONAL_PROTOCOLS <XMPPConnectionDelegate> #endif { XMPPConnection *_connection; OFMutableDictionary *_rosterItems; XMPPMulticastDelegate *_delegates; id <XMPPStorage> _dataStorage; BOOL _rosterRequested; } #ifdef OF_HAVE_PROPERTIES /** * \brief The connection to which the roster belongs */ @property (readonly, assign) XMPPConnection *connection; |
︙ | ︙ | |||
149 150 151 152 153 154 155 | - (void)removeDelegate: (id <XMPPRosterDelegate>)delegate; - (XMPPConnection*)connection; - (void)setDataStorage: (id <XMPPStorage>)dataStorage; - (id <XMPPStorage>)dataStorage; | < < | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | - (void)removeDelegate: (id <XMPPRosterDelegate>)delegate; - (XMPPConnection*)connection; - (void)setDataStorage: (id <XMPPStorage>)dataStorage; - (id <XMPPStorage>)dataStorage; - (void)XMPP_updateRosterItem: (XMPPRosterItem*)rosterItem; - (void)XMPP_handleInitialRosterForConnection: (XMPPConnection*)connection IQ: (XMPPIQ*)iq; - (XMPPRosterItem*)XMPP_rosterItemWithXMLElement: (OFXMLElement*)element; @end @interface OFObject (XMPPRosterDelegate) <XMPPRosterDelegate> @end |
Modified src/XMPPRosterItem.h from [c478b3e124] to [4896991386].
︙ | ︙ | |||
25 26 27 28 29 30 31 | @class XMPPJID; /** * \brief A class for representing an item in the roster. */ @interface XMPPRosterItem: OFObject { | < < | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | @class XMPPJID; /** * \brief A class for representing an item in the roster. */ @interface XMPPRosterItem: OFObject { XMPPJID *_JID; OFString *_name; OFString *_subscription; OFArray *_groups; } #ifdef OF_HAVE_PROPERTIES /// \brief The JID of the roster item @property (copy) XMPPJID *JID; /// \brief The name of the roster item to show to the user @property (copy) OFString *name; |
︙ | ︙ |
Modified src/XMPPSCRAMAuth.h from [ad81f25e28] to [04e3d7ee03].
︙ | ︙ | |||
25 26 27 28 29 30 31 | #import "XMPPConnection.h" /** * \brief A class to authenticate using SCRAM */ @interface XMPPSCRAMAuth: XMPPAuthenticator { | < < | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #import "XMPPConnection.h" /** * \brief A class to authenticate using SCRAM */ @interface XMPPSCRAMAuth: XMPPAuthenticator { Class _hashType; OFString *_cNonce; OFString *_GS2Header; OFString *_clientFirstMessageBare; OFDataArray *_serverSignature; XMPPConnection *_connection; BOOL _plusAvailable; BOOL _authenticated; } /** * \brief Creates a new autoreleased XMPPSCRAMAuth with an authcid and password. * * \param authcid The authcid to authenticate with * \param password The password to authenticate with |
︙ | ︙ |
Modified src/XMPPSRVLookup.h from [b7bd64c83f] to [df58ba3514].
︙ | ︙ | |||
72 73 74 75 76 77 78 | #ifdef OF_HAVE_PROPERTIES @property (readonly, copy) OFString *domain; #endif + lookupWithDomain: (OFString*)domain; - initWithDomain: (OFString*)domain; | | < | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | #ifdef OF_HAVE_PROPERTIES @property (readonly, copy) OFString *domain; #endif + lookupWithDomain: (OFString*)domain; - initWithDomain: (OFString*)domain; - (void)XMPP_lookup; - (void)XMPP_addEntry: (XMPPSRVEntry*)item; @end @interface XMPPSRVEnumerator: OFEnumerator { OFList *list; of_list_object_t *listIter; OFList *subListCopy; |
︙ | ︙ |
Modified src/XMPPStanza.h from [e1be48da02] to [1aad056cc0].
︙ | ︙ | |||
26 27 28 29 30 31 32 | @class XMPPJID; /** * \brief A class describing an XMPP Stanza. */ @interface XMPPStanza: OFXMLElement { | < < | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | @class XMPPJID; /** * \brief A class describing an XMPP Stanza. */ @interface XMPPStanza: OFXMLElement { XMPPJID *_from; XMPPJID *_to; OFString *_type; OFString *_ID; OFString *_language; } #ifdef OF_HAVE_PROPERTIES /// \brief The value of the stanza's from attribute @property (copy) XMPPJID *from; /// \brief The value of the stanza's to attribute @property (copy) XMPPJID *to; |
︙ | ︙ |
Modified src/XMPPStreamManagement.h from [c73319cf59] to [0d42168440].
︙ | ︙ | |||
23 24 25 26 27 28 29 | #import "XMPPConnection.h" @interface XMPPStreamManagement: OFObject #ifdef OF_HAVE_OPTIONAL_PROTOCOLS <XMPPConnectionDelegate> #endif { | < < | 23 24 25 26 27 28 29 30 31 32 33 34 35 | #import "XMPPConnection.h" @interface XMPPStreamManagement: OFObject #ifdef OF_HAVE_OPTIONAL_PROTOCOLS <XMPPConnectionDelegate> #endif { XMPPConnection *_connection; uint32_t receivedCount; } - initWithConnection: (XMPPConnection*)connection; @end |