Software /
code /
prosody
Annotate
teal-src/module.d.tl @ 12438:a698f65df453 0.12
mod_tombstones: Add caching to improve performance on busy servers (fixes #1728)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 28 Mar 2022 11:08:18 +0100 |
parent | 11941:cfd37453e6b6 |
child | 12502:5862ddf71e3c |
rev | line source |
---|---|
11941
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local st = require"util.stanza" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 global record moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 get_name : function (moduleapi) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 get_host : function (moduleapi) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 enum host_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 "global" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 "local" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 "component" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 get_host_type : function (moduleapi) : host_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 set_global : function (moduleapi) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 add_feature : function (moduleapi, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 add_identity : function (moduleapi, string, string, string) -- TODO enum? |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 add_extension : function (moduleapi, st.stanza_t) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 fire_event : function (moduleapi, string, any) : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 type handler = function (any) : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 record util_events |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 hook_object_event : function (moduleapi, util_events, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 unhook_object_event : function (moduleapi, util_events, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 hook : function (moduleapi, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 hook_global : function (moduleapi, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 hook_tag : function (moduleapi, string, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 unhook : function (moduleapi, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 wrap_object_event : function (moduleapi, util_events, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 wrap_event : function (moduleapi, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 wrap_global : function (moduleapi, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 require : function (moduleapi, string) : table |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 depends : function (moduleapi, string) : table |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 shared : function (moduleapi, string) : table |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 type config_getter = function<A> (moduleapi, string, A) : A |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 get_option : config_getter<any> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 get_option_scalar : config_getter<nil | boolean | number | string> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 get_option_string : config_getter<string> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 get_option_number : config_getter<number> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 get_option_boolean : config_getter<boolean> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 record util_array |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 { any } |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
42 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 get_option_array : config_getter<util_array> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 record util_set |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
45 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 _items : { any : boolean } |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 get_option_set : function (moduleapi, string, { any }) : util_set |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
49 get_option_inherited_set : function (moduleapi, string, { any }) : util_set |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 get_option_path : function (moduleapi, string, string, string) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
51 context : function (moduleapi, string) : moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
52 add_item : function (moduleapi, string, any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
53 remove_item : function (moduleapi, string, any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
54 get_host_items : function (moduleapi, string) : { any } |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
55 handle_items : function (moduleapi, string, handler, handler, boolean) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
56 provides : function (moduleapi, string, table) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
57 record util_session |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
58 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
59 send : function ( st.stanza_t | string ) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
60 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
61 send : function (moduleapi, st.stanza_t, util_session) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
62 send_iq : function (moduleapi, st.stanza_t, util_session, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 broadcast : function (moduleapi, { string }, st.stanza_t, function) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
64 type timer_callback = function (number, ... : any) : number |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
65 add_timer : function (moduleapi, number, timer_callback, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 get_directory : function (moduleapi) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
67 enum file_mode |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
68 "r" "w" "a" "r+" "w+" "a+" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
69 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
70 load_resource : function (moduleapi, string, file_mode) : FILE |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
71 enum store_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
72 "keyval" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
73 "map" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
74 "archive" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
75 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
76 open_store : function (moduleapi, string, store_type) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
77 enum stat_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
78 "amount" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
79 "counter" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
80 "rate" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
81 "distribution" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
82 "sizes" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
83 "times" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
84 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
85 record stats_conf |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
86 initial : number |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
87 units : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
88 type : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
89 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
90 measure : function (moduleapi, string, stat_type, stats_conf) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
91 measure_object_event : function (moduleapi, util_events, string, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
92 measure_event : function (moduleapi, string, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
93 measure_global_event : function (moduleapi, string, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
94 enum status_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
95 "error" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
96 "warn" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
97 "info" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
98 "core" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
99 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
100 set_status : function (moduleapi, status_type, string, boolean) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
101 enum log_level |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
102 "debug" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
103 "info" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
104 "warn" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
105 "error" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
106 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
107 log_status : function (moduleapi, log_level, string, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
108 get_status : function (moduleapi) : status_type, string, number |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
109 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
110 -- added by modulemanager |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
111 name : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
112 host : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
113 _log : function (log_level, string, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
114 log : function (moduleapi, log_level, string, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
115 reloading : boolean |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
116 saved_state : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
117 record module_environment |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
118 module : moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
119 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
120 environment : module_environment |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
121 path : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
122 resource_path : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
124 -- methods the module can add |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
125 load : function () |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
126 add_host : function (moduleapi) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
127 save : function () : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
128 restore : function (any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
129 unload : function () |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
130 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
131 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
132 global module : moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
133 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
134 global record common_event |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
135 stanza : st.stanza_t |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
136 record origin |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
137 send : function (st.stanza_t) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
138 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
139 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
140 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
141 global record prosody |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
142 version : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
143 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
144 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
145 return module |