22
23
24
25
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
|
22
23
24
25
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
|
#import <ObjFW/OFObject.h>
OF_ASSUME_NONNULL_BEGIN
@class OFMutableData;
/**
* \brief A class to provide multiple delegates in a single class
/*!
* @brief A class to provide multiple delegates in a single class
*/
@interface XMPPMulticastDelegate: OFObject
{
OFMutableData *_delegates;
}
/**
* \brief Adds a delegate which should receive the broadcasts.
/*!
* @brief Adds a delegate which should receive the broadcasts.
*
* \param delegate The delegate to add
* @param delegate The delegate to add
*/
- (void)addDelegate: (id)delegate;
/**
* \brief Removes a delegate so it does not receive the broadcasts anymore.
/*!
* @brief Removes a delegate so it does not receive the broadcasts anymore.
*
* \param delegate The delegate to remove
* @param delegate The delegate to remove
*/
- (void)removeDelegate: (id)delegate;
/**
* \brief Broadcasts a selector with an object to all registered delegates.
/*!
* @brief Broadcasts a selector with an object to all registered delegates.
*
* \param selector The selector to broadcast
* \param object The object to broadcast
* @param selector The selector to broadcast
* @param object The object to broadcast
*/
- (bool)broadcastSelector: (SEL)selector
withObject: (nullable id)object;
/**
* \brief Broadcasts a selector with two objects to all registered delegates.
/*!
* @brief Broadcasts a selector with two objects to all registered delegates.
*
* \param selector The selector to broadcast
* \param object1 The first object to broadcast
* \param object2 The second object to broadcast
* @param selector The selector to broadcast
* @param object1 The first object to broadcast
* @param object2 The second object to broadcast
*/
- (bool)broadcastSelector: (SEL)selector
withObject: (nullable id)object1
withObject: (nullable id)object2;
@end
OF_ASSUME_NONNULL_END
|