Overview
Comment: | Prevent changing the data storage after the roster has been requested. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5f55161423985b6d7829c41fb23d3836 |
User & Date: | js on 2012-02-06 14:23:26 |
Other Links: | manifest | tags |
Context
2012-02-06
| ||
15:17 |
Implement roster versioning. Still needs some testing. check-in: e6237b123a user: js tags: trunk | |
14:23 | Prevent changing the data storage after the roster has been requested. check-in: 5f55161423 user: js tags: trunk | |
14:18 | Add missing method in interface. check-in: 4c222a8b70 user: js tags: trunk | |
Changes
Modified src/XMPPRoster.h from [d4d891ac82] to [c00194e1a0].
︙ | ︙ | |||
69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #endif { /// \cond internal XMPPConnection *connection; OFMutableDictionary *rosterItems; XMPPMulticastDelegate *delegates; id <XMPPStorage> dataStorage; /// \endcond } #ifdef OF_HAVE_PROPERTIES /** * \brief An object for data storage, conforming to the XMPPStorage protocol. * | > | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #endif { /// \cond internal XMPPConnection *connection; OFMutableDictionary *rosterItems; XMPPMulticastDelegate *delegates; id <XMPPStorage> dataStorage; BOOL rosterRequested; /// \endcond } #ifdef OF_HAVE_PROPERTIES /** * \brief An object for data storage, conforming to the XMPPStorage protocol. * |
︙ | ︙ |
Modified src/XMPPRoster.m from [96a5c55573] to [ab74131ad5].
︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # include "config.h" #endif #define XMPP_ROSTER_M #include <assert.h> #import "XMPPRoster.h" #import "XMPPRosterItem.h" #import "XMPPConnection.h" #import "XMPPIQ.h" #import "XMPPJID.h" #import "XMPPMulticastDelegate.h" #import "namespaces.h" | > > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # include "config.h" #endif #define XMPP_ROSTER_M #include <assert.h> #import <ObjFW/OFInvalidArgumentException.h> #import "XMPPRoster.h" #import "XMPPRosterItem.h" #import "XMPPConnection.h" #import "XMPPIQ.h" #import "XMPPJID.h" #import "XMPPMulticastDelegate.h" #import "namespaces.h" |
︙ | ︙ | |||
69 70 71 72 73 74 75 76 77 78 79 80 81 82 | { return [[rosterItems copy] autorelease]; } - (void)requestRoster { XMPPIQ *iq; iq = [XMPPIQ IQWithType: @"get" ID: [connection generateStanzaID]]; [iq addChild: [OFXMLElement elementWithName: @"query" namespace: XMPP_NS_ROSTER]]; [connection sendIQ: iq withCallbackObject: self | > > | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | { return [[rosterItems copy] autorelease]; } - (void)requestRoster { XMPPIQ *iq; rosterRequested = YES; iq = [XMPPIQ IQWithType: @"get" ID: [connection generateStanzaID]]; [iq addChild: [OFXMLElement elementWithName: @"query" namespace: XMPP_NS_ROSTER]]; [connection sendIQ: iq withCallbackObject: self |
︙ | ︙ | |||
184 185 186 187 188 189 190 | - (void)removeDelegate: (id <XMPPRosterDelegate>)delegate { [delegates removeDelegate: delegate]; } - (void)setDataStorage: (id <XMPPStorage>)dataStorage_ { | > > | | 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | - (void)removeDelegate: (id <XMPPRosterDelegate>)delegate { [delegates removeDelegate: delegate]; } - (void)setDataStorage: (id <XMPPStorage>)dataStorage_ { if (rosterRequested) @throw [OFInvalidArgumentException exceptionWithClass: isa]; dataStorage = dataStorage_; } - (id <XMPPStorage>)dataStorage { return dataStorage; } |
︙ | ︙ |