ObjXMPP  Diff

Differences From Artifact [7a62e71bc2]:

To Artifact [12b50e0f15]:


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
138

139
140
141
142
143
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

138
139
140
141
142
143







-
-
+
+




-
-
+
+


-
+



-
-
+
+

-
-
+
+





-
-
+
+










-
-
+
+



-
-
+
+





-
-
+
+







-
-
+
+

-
+

-
+



-
-
+
+



-
-
+
+

-
+



-
-
+
+

-
+



-
-
+
+

-
+



-
-
+
+

-
+



-
-
+
+

-
+





OF_ASSUME_NONNULL_BEGIN

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

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

/**
 * \brief This callback is called whenever a roster push was received.
/*!
 * @brief 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
 * @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.
/*!
 * @brief A class implementing roster related functionality.
 */
@interface XMPPRoster: OFObject <XMPPConnectionDelegate>
{
	XMPPConnection *_connection;
	OFMutableDictionary *_rosterItems;
	XMPPMulticastDelegate *_delegates;
	id <XMPPStorage> _dataStorage;
	bool _rosterRequested;
}

/**
 * \brief The connection to which the roster belongs
/*!
 * @brief The connection to which the roster belongs
 */
@property (readonly, assign) XMPPConnection *connection;

/**
 * \brief An object for data storage, conforming to the XMPPStorage protocol.
/*!
 * @brief An object for data storage, conforming to the XMPPStorage protocol.
 *
 * Inherited from the connection if not overridden.
 */
@property (nonatomic, assign) id <XMPPStorage> dataStorage;

/**
 * \brief The list of contacts as an OFDictionary with the bare JID as a string
/*!
 * @brief The list of contacts as an OFDictionary with the bare JID as a string
 *	  as key.
 */
@property (readonly, nonatomic)
    OFDictionary OF_GENERIC(OFString *, XMPPRosterItem *) *rosterItems;

- init OF_UNAVAILABLE;

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

/**
 * \brief Requests the roster from the server.
/*!
 * @brief Requests the roster from the server.
 */
- (void)requestRoster;

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

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

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

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

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

OF_ASSUME_NONNULL_END