author | Myhailo Danylenko <isbear@ukrpost.net> |
Sun, 20 May 2012 22:15:51 +0300 | |
changeset 29 | 23fa36d480fb |
child 30 | a66ed0454ca8 |
permissions | -rw-r--r-- |
29
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
1 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
2 |
# Events interface |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
3 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
4 |
Events are currently designed for useage with pep notifications, but |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
5 |
potentially could be used with any notification system, eg a module, that adds |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
6 |
currently playing song to your status. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
7 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
8 |
Every module pair (eg pep_tune and tune) use a pair of hooks. One for incoming |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
9 |
notifications ('*-in') and one for the cases, when server needs to be notified |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
10 |
about user state change ('*-out'). Note, that '*-out' causes server |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
11 |
notification, not vice versa. In general, these hooks have the same set of fields, |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
12 |
except that incoming events also have 'from' field, that is mandatory. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
13 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
14 |
For more clear description of fields and what can be put in there, refer to |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
15 |
corresponding XEPs. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
16 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
17 |
* [XEP-0118](http://xmpp.org/extensions/xep-0118.html) - tune |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
18 |
* [XEP-0107](http://xmpp.org/extensions/xep-0107.html) - mood |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
19 |
* [XEP-0108](http://xmpp.org/extensions/xep-0108.html) - activity |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
20 |
* [XEP-0080](http://xmpp.org/extensions/xep-0080.html) - geoloc |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
21 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
22 |
## tune-* |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
23 |
* argtist |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
24 |
* length |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
25 |
* rating |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
26 |
* source |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
27 |
* title |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
28 |
* track |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
29 |
* uri |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
30 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
31 |
## mood-* |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
32 |
* mood |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
33 |
* text |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
34 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
35 |
## activity-* |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
36 |
* major |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
37 |
* minor |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
38 |
* text |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
39 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
40 |
## geoloc-* |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
41 |
* accuracy |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
42 |
* alt |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
43 |
* area |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
44 |
* bearing |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
45 |
* building |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
46 |
* country |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
47 |
* datum |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
48 |
* description |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
49 |
* error |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
50 |
* floor |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
51 |
* lat |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
52 |
* locality |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
53 |
* lon |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
54 |
* postalcode |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
55 |
* region |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
56 |
* room |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
57 |
* speed |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
58 |
* street |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
59 |
* text |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
60 |
* timestamp |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
61 |
* uri |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
62 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
63 |
# C interface |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
64 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
65 |
## general conventions |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
66 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
67 |
### NS_* |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
68 |
XMLNS namespace constants. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
69 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
70 |
### HOOK_* |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
71 |
Hook name constants. Usually are the same as actual hook name, but |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
72 |
uppercased, with 'HOOK_' added and with underscores instead of dashes. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
73 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
74 |
### *_request ( to, error ) |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
75 |
Request corresponding data from the jid, specified in 'to'. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
76 |
'error' may be used for error control. If no error occured, |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
77 |
and remote side have replied with notification stanza, call |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
78 |
to one of this functions will eventually result in corresponding |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
79 |
event '*-in'. Currently there's no way to detect an |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
80 |
error on the remote side (eg, if it does not support PEP). |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
81 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
82 |
### *_publish ( ... ) |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
83 |
Publish supplied data as corresponding user's update. Note, |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
84 |
that this function bypasses event interface, thus, it can |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
85 |
be used to publish *only* via PEP. In general, it is |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
86 |
suggested to use event (hooks) interface, as it allows |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
87 |
multiplexing and non-breaking extensibility. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
88 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
89 |
## pep |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
90 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
91 |
### (*pep_xmlns_handler_t) ( from, node, n, id, userdata ) |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
92 |
Type of function to supply as a handler for pep xmlns namespace. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
93 |
'from' is a jid. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
94 |
'node' is pep node. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
95 |
'n' is loudmouth message node object, containing xmlns-specific data. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
96 |
'userdata' is pointer to data, passed at registration time. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
97 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
98 |
### pep_register_xmlns_handler ( xmlns, handler, userdata, notify ) |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
99 |
Specify a handler for xmlns namespace. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
100 |
'userdata' will be directly specified. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
101 |
'notify' is a function, that may be called for userdata destruction. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
102 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
103 |
### pep_unregister_xmlns_handler ( xmlns ) |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
104 |
Remove handler from given xmlns namespace. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
105 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
106 |
## tune |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
107 |
'tune_publish' takes list of key-value pairs. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
108 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
109 |
## mood |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
110 |
'mood_publish' takes two string arguments - mood and mood message. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
111 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
112 |
## activity |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
113 |
'activity_publish' takes three string arguments - major activity, minor, and |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
114 |
activity message. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
115 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
116 |
## geoloc |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
117 |
'geoloc_publish' takes list of key-value pairs. |
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
118 |
|
23fa36d480fb
Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
119 |
<!-- --> |