Software /
code /
prosody
File
teal-src/module.d.tl @ 13186:affaf6d08d26
util.datamanager: Pad list writes to avoid crossing block boundaries
By padding items so that they do not cross block boundaries, it becomes
eaiser to delete whole blocks with fallocate() without cutting items
in half, improving efficiency of such operations.
Since list stores are used for message archives, where the most common
deletion operation would be of the oldest entires, at the top of the
file. With this, all blocks that contain items to be removed could be
deleted without needing to read, delete and write out the whole file.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 07 Jun 2023 00:39:30 +0200 |
parent | 13109:5469045ef7f0 |
line wrap: on
line source
local st = require "prosody.util.stanza" global record moduleapi get_name : function (moduleapi) : string get_host : function (moduleapi) : string enum host_type "global" "local" "component" end get_host_type : function (moduleapi) : host_type set_global : function (moduleapi) add_feature : function (moduleapi, string) add_identity : function (moduleapi, string, string, string) -- TODO enum? add_extension : function (moduleapi, st.stanza_t) fire_event : function (moduleapi, string, any) : any type handler = function (any) : any record util_events -- TODO import def end hook_object_event : function (moduleapi, util_events, string, handler, number) unhook_object_event : function (moduleapi, util_events, string, handler) hook : function (moduleapi, string, handler, number) hook_global : function (moduleapi, string, handler, number) hook_tag : function (moduleapi, string, string, handler, number) unhook : function (moduleapi, string, handler) wrap_object_event : function (moduleapi, util_events, string, handler) wrap_event : function (moduleapi, string, handler) wrap_global : function (moduleapi, string, handler) require : function (moduleapi, string) : table depends : function (moduleapi, string) : table shared : function (moduleapi, string) : table type config_getter = function<A> (moduleapi, string, A) : A get_option : config_getter<any> get_option_scalar : config_getter<nil | boolean | number | string> get_option_string : config_getter<string> get_option_number : config_getter<number> get_option_boolean : config_getter<boolean> record util_array -- TODO import def { any } end get_option_array : config_getter<util_array> record util_set -- TODO import def _items : { any : boolean } end get_option_set : function (moduleapi, string, { any }) : util_set get_option_inherited_set : function (moduleapi, string, { any }) : util_set get_option_path : function (moduleapi, string, string, string) : string context : function (moduleapi, string) : moduleapi add_item : function (moduleapi, string, any) remove_item : function (moduleapi, string, any) get_host_items : function (moduleapi, string) : { any } handle_items : function (moduleapi, string, handler, handler, boolean) provides : function (moduleapi, string, table) record util_session -- TODO import def send : function ( st.stanza_t | string ) end send : function (moduleapi, st.stanza_t, util_session) send_iq : function (moduleapi, st.stanza_t, util_session, number) broadcast : function (moduleapi, { string }, st.stanza_t, function) type timer_callback = function (number, ... : any) : number record timer_wrapper stop : function (timer_wrapper) disarm : function (timer_wrapper) reschedule : function (timer_wrapper, number) end add_timer : function (moduleapi, number, timer_callback, ... : any) : timer_wrapper get_directory : function (moduleapi) : string enum file_mode "r" "w" "a" "r+" "w+" "a+" end load_resource : function (moduleapi, string, file_mode) : FILE enum store_type "keyval" "keyval+" "map" "archive" end open_store : function (moduleapi, string, store_type) enum stat_type "amount" "counter" "rate" "distribution" "sizes" "times" end record stats_conf initial : number units : string type : string end measure : function (moduleapi, string, stat_type, stats_conf) measure_object_event : function (moduleapi, util_events, string, string) measure_event : function (moduleapi, string, string) measure_global_event : function (moduleapi, string, string) enum status_type "error" "warn" "info" "core" end set_status : function (moduleapi, status_type, string, boolean) enum log_level "debug" "info" "warn" "error" end log_status : function (moduleapi, log_level, string, ... : any) get_status : function (moduleapi) : status_type, string, number -- added by modulemanager name : string host : string _log : function (log_level, string, ... : any) log : function (moduleapi, log_level, string, ... : any) reloading : boolean saved_state : any record module_environment module : moduleapi end environment : module_environment path : string resource_path : string -- access control may : function (moduleapi, string, table|string) default_permission : function (string, string) default_permissions : function (string, { string }) -- methods the module can add load : function () add_host : function (moduleapi) save : function () : any restore : function (any) unload : function () -- added by mod_http http_url : function (moduleapi, string, string, string) : string end global module : moduleapi global record common_event stanza : st.stanza_t record origin send : function (st.stanza_t) end end global record prosody version : string end return module