author | Matthew Wild <mwild1@gmail.com> |
Thu, 06 Oct 2022 18:34:40 +0100 | |
changeset 12748 | e894677359e5 |
parent 12611 | 8943ae10f7e8 |
child 12806 | 4a8740e01813 |
permissions | -rw-r--r-- |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
1 |
-- Storage local record API Description |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
-- |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
-- This is written as a TypedLua description |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
-- Key-Value stores (the default) |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
7 |
local stanza = require"util.stanza".stanza_t |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
8 |
|
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
9 |
local record keyval_store |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
10 |
get : function ( keyval_store, string ) : any , string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
11 |
set : function ( keyval_store, string, any ) : boolean, string |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 |
end |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
-- Map stores (key-key-value stores) |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
16 |
local record map_store |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
17 |
get : function ( map_store, string, any ) : any, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
18 |
set : function ( map_store, string, any, any ) : boolean, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
19 |
set_keys : function ( map_store, string, { any : any }) : boolean, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
20 |
remove : table |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 |
end |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
-- Archive stores |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
25 |
local record archive_query |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
26 |
start : number -- timestamp |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
27 |
["end"]: number -- timestamp |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
28 |
with : string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
29 |
after : string -- archive id |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
30 |
before : string -- archive id |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
31 |
total : boolean |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
32 |
end |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
34 |
local record archive_store |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
-- Optional set of capabilities |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 |
caps : { |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 |
-- Optional total count of matching items returned as second return value from :find() |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
38 |
string : any |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
39 |
} |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 |
-- Add to the archive |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
42 |
append : function ( archive_store, string, string, any, number, string ) : string, string |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 |
-- Iterate over archive |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
45 |
type iterator = function () : string, any, number, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
46 |
find : function ( archive_store, string, archive_query ) : iterator, integer |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
48 |
-- Removal of items. API like find. Optional |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
49 |
delete : function ( archive_store, string, archive_query ) : boolean | number, string |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
51 |
-- Array of dates which do have messages (Optional) |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
52 |
dates : function ( archive_store, string ) : { string }, string |
9907
2c5546cc5c70
mod_storage_internal: Implement a summary API returning message counts per contact
Kim Alvefur <zash@zash.se>
parents:
7747
diff
changeset
|
53 |
|
2c5546cc5c70
mod_storage_internal: Implement a summary API returning message counts per contact
Kim Alvefur <zash@zash.se>
parents:
7747
diff
changeset
|
54 |
-- Map of counts per "with" field |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
55 |
summary : function ( archive_store, string, archive_query ) : { string : integer }, string |
10842
f26f2ec33f1e
doc/storage: Add archive store map-like API
Kim Alvefur <zash@zash.se>
parents:
9907
diff
changeset
|
56 |
|
f26f2ec33f1e
doc/storage: Add archive store map-like API
Kim Alvefur <zash@zash.se>
parents:
9907
diff
changeset
|
57 |
-- Map-store API |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
58 |
get : function ( archive_store, string, string ) : stanza, number, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
59 |
get : function ( archive_store, string, string ) : nil, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
60 |
set : function ( archive_store, string, string, stanza, number, string ) : boolean, string |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
61 |
end |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
62 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 |
-- This represents moduleapi |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
64 |
local record coremodule |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
65 |
-- If the first string is omitted then the name of the module is used |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 |
-- The second string is one of "keyval" (default), "map" or "archive" |
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
67 |
open_store : function (archive_store, string, string) : keyval_store, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
68 |
open_store : function (archive_store, string, string) : map_store, string |
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
69 |
open_store : function (archive_store, string, string) : archive_store, string |
7747
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
70 |
|
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
71 |
-- Other module methods omitted |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
72 |
end |
4d9186d990a5
doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
73 |
|
12611
8943ae10f7e8
core.storagemanager: Convert old Typed Lua description file into Teal
Kim Alvefur <zash@zash.se>
parents:
10842
diff
changeset
|
74 |
return coremodule |