-function Data_get(src, key, age_max, time, age, is_expired) {
- time = Data_get_time()
- A_time[src, key] = time
- age = time - M_time[src, key]
- is_expired = age_max && age > age_max
- return is_expired ? "" : Data[src, key]
+function cache_get(result, src, key, ttl, time, age, is_expired) {
+ time = cache_get_time()
+ _cache_atime[src, key] = time
+ age = time - _cache_mtime[src, key]
+ result["is_expired"] = ttl && age > ttl # ttl = 0 => forever
+ result["value"] = _cache[src, key]
+}
+
+function cache_res_fmt_or_def(result, format, default) {
+ return result["is_expired"] ? default : sprintf(format, result["value"])
+}
+
+function cache_get_fmt_def(src, key, ttl, format, default, result) {
+ default = default ? default : "--"
+ cache_get(result, src, key, ttl)
+ return cache_res_fmt_or_def(result, format, default)