Skip to content
This repository was archived by the owner on Oct 28, 2023. It is now read-only.

Commit d79342d

Browse files
committed
extmod/modbtree: open(): Add option kwargs.
Namely: flags, cachesize, pagesize, minkeypage.
1 parent ed500e4 commit d79342d

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

extmod/modbtree.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,19 +344,30 @@ STATIC FILEVTABLE btree_stream_fvtable = {
344344

345345
STATIC mp_obj_t mod_btree_open(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
346346
static const mp_arg_t allowed_args[] = {
347-
{ MP_QSTR_server_side, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} },
347+
{ MP_QSTR_flags, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
348+
{ MP_QSTR_cachesize, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
349+
{ MP_QSTR_pagesize, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
350+
{ MP_QSTR_minkeypage, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
348351
};
349352

350353
// Make sure we got a stream object
351354
mp_get_stream_raise(pos_args[0], MP_STREAM_OP_READ | MP_STREAM_OP_WRITE | MP_STREAM_OP_IOCTL);
352355

353356
struct {
354-
mp_arg_val_t server_side;
357+
mp_arg_val_t flags;
358+
mp_arg_val_t cachesize;
359+
mp_arg_val_t pagesize;
360+
mp_arg_val_t minkeypage;
355361
} args;
356362
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
357363
MP_ARRAY_SIZE(allowed_args), allowed_args, (mp_arg_val_t*)&args);
364+
BTREEINFO openinfo = {0};
365+
openinfo.flags = args.flags.u_int;
366+
openinfo.cachesize = args.cachesize.u_int;
367+
openinfo.psize = args.pagesize.u_int;
368+
openinfo.minkeypage = args.minkeypage.u_int;
358369

359-
DB *db = __bt_open(pos_args[0], &btree_stream_fvtable, /*openinfo*/NULL, /*dflags*/0);
370+
DB *db = __bt_open(pos_args[0], &btree_stream_fvtable, &openinfo, /*dflags*/0);
360371
if (db == NULL) {
361372
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno)));
362373
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy