ObjXMPP  Check-in [e6353e2382]

Overview
Comment:Document XMPPRoster and XMPPRosterDelegate
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: e6353e2382f0e9f70c531ee0754033f3e72cea88602cbebae63a19b759325575
User & Date: florob@babelmonkeys.de on 2012-02-03 08:32:43
Other Links: manifest | tags
Context
2012-02-03
09:46
Add \cond internal for private methods. check-in: ed03c8e32f user: js tags: trunk
08:32
Document XMPPRoster and XMPPRosterDelegate check-in: e6353e2382 user: florob@babelmonkeys.de tags: trunk
07:50
Fix typo check-in: b28575775d user: florob@babelmonkeys.de tags: trunk
Changes

Modified src/XMPPRoster.h from [1412762159] to [e806062166].

26
27
28
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






63

64
65
66
67
68
69
70
26
27
28
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

82
83
84
85
86
87
88
89
90
91
92
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137







+
+
+
+







+
+
+
+
+
+

+
+
+
+
+
+
+




-
+
+
+










+
+
+
+
+
+
+
-
+
+
+
+
+
+
+

+
+
+
+

+
+
+
+
+
+

+
+
+
+
+
+

+
+
+
+
+
+

+
+
+
+
+
+

+
+
+
+
+
+

+







#import "XMPPConnection.h"

@class XMPPRosterItem;
@class XMPPIQ;
@class XMPPRoster;
@class XMPPMulticastDelegate;

/**
 * \brief A protocol that should be (partially) implemented by delegates
 * 	  of a XMPPRoster
 */
@protocol XMPPRosterDelegate
#ifndef XMPP_ROSTER_M
    <OFObject>
#endif
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
 * This callback is called after the roster was received (as a result of
 * calling -requestRoster.
 *
 * \param roster The roster that was received
 */
- (void)rosterWasReceived: (XMPPRoster*)roster;

/**
 * This callback is called whenever a roster push was received.
 *
 * \param roster The roster that was updated by the roster push
 * \param rosterItem The roster item received in the push
 */
-         (void)roster: (XMPPRoster*)roster
  didReceiveRosterItem: (XMPPRosterItem*)rosterItem;
@end


/**
 * \brief A class implementing roster related functionality
 */
@interface XMPPRoster: OFObject
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
    <XMPPConnectionDelegate>
#endif
{
	XMPPConnection *connection;
	OFMutableDictionary *rosterItems;
	XMPPMulticastDelegate *delegates;
}

/**
 * Initializes an already allocated XMPPRoster
 *
 * \param connection The connection roster related stanzas
 *	  are send and received over
 * \return An initialized XMPPRoster
 */
- initWithConnection: (XMPPConnection*)conn;
- initWithConnection: (XMPPConnection*)connection;

/**
 * Returns the list of contacts as a OFDictionary with the bare JID as key
 *
 * \return An autoreleased copy of the dictionary containing the roster items
 */
- (OFDictionary*)rosterItems;

/**
 * Requests the roster from the server
 */
- (void)requestRoster;

/**
 * Adds a new contact to the roster
 *
 * \param rosterItem The roster item to add to the roster
 */
- (void)addRosterItem: (XMPPRosterItem*)rosterItem;

/**
 * Updates an already existing contact in the roster
 *
 * \param rosterItem The roster item to update
 */
- (void)updateRosterItem: (XMPPRosterItem*)rosterItem;

/**
 * Delete a contact from the roster
 *
 * \param rosterItem The roster item to delete
 */
- (void)deleteRosterItem: (XMPPRosterItem*)rosterItem;

/**
 * Adds the specified delegate
 *
 * \param delegate The delegate to add
 */
- (void)addDelegate: (id <XMPPRosterDelegate>)delegate;

/**
 * Removes the specified delegate
 *
 * \param delegate The delegate to remove
 */
- (void)removeDelegate: (id <XMPPRosterDelegate>)delegate;

- (void)XMPP_addRosterItem: (XMPPRosterItem*)rosterItem;
- (void)XMPP_updateRosterItem: (XMPPRosterItem*)rosterItem;
- (void)XMPP_deleteRosterItem: (XMPPRosterItem*)rosterItem;
- (void)XMPP_handleInitialRoster: (XMPPIQ*)iq;
- (XMPPRosterItem*)XMPP_rosterItemWithXMLElement: (OFXMLElement*)element;
@end