#include #pragma lib "gdbm_compat"; #include function psi\dbm_open(string $file, int $open_flags, int $file_mode) : object { let file = pathval($file); let open_flags = intval($open_flags); let file_mode = intval($file_mode); return dbm_open(file, open_flags, file_mode) as to_object(dbm_open); } function psi\dbm_store(object $db, string $key, string $data, int $mode) : int { let db = objval($db); let key = arrval($key, dptr = strval($0), dsize = strlen($0) ); let content = arrval($data, dptr = strval($0), dsize = strlen($0) ); let store_mode = intval($mode); return dbm_store(db, key, content, store_mode) as to_int(dbm_store); } function psi\dbm_fetch(object $db, array $key) : array { let db = objval($db); let key = arrval($key, dptr = strval($dptr), dsize = intval($dsize) ); return dbm_fetch(db, key) as to_array(dbm_fetch, to_int(dsize), to_string(dptr, dsize) ); } function psi\dbm_close(object $db) : void { let db = objval($db); return dbm_close(db) as void(dbm_close); }