vendor-cleanup (#10)
Major rework of libusb and lmdb bindings Co-authored-by: Zachary Levy <zachary@sunforge.is> Reviewed-on: #10
This commit was merged in pull request #10.
This commit is contained in:
23
vendor/lmdb/examples/examples.odin
vendored
23
vendor/lmdb/examples/examples.odin
vendored
@@ -15,29 +15,28 @@ main :: proc() {
|
||||
// Create environment for lmdb
|
||||
mdb.panic_on_err(mdb.env_create(&environment))
|
||||
// Create directory for databases. Won't do anything if it already exists.
|
||||
// 0o774 gives all permissions for owner and group, read for everyone else.
|
||||
os.make_directory(DB_PATH, 0o774)
|
||||
os.make_directory(DB_PATH)
|
||||
// Open the database files (creates them if they don't already exist)
|
||||
mdb.panic_on_err(mdb.env_open(environment, DB_PATH, 0, DB_MODE))
|
||||
mdb.panic_on_err(mdb.env_open(environment, DB_PATH, {}, DB_MODE))
|
||||
|
||||
// Transactions
|
||||
txn_handle: ^mdb.Txn
|
||||
db_handle: mdb.Dbi
|
||||
// Put transaction
|
||||
key := 7
|
||||
key_val := mdb.autoval(&key)
|
||||
key_val := mdb.blittable_val(&key)
|
||||
put_data := 12
|
||||
put_data_val := mdb.autoval(&put_data)
|
||||
mdb.panic_on_err(mdb.txn_begin(environment, nil, 0, &txn_handle))
|
||||
mdb.panic_on_err(mdb.dbi_open(txn_handle, nil, 0, &db_handle))
|
||||
mdb.panic_on_err(mdb.put(txn_handle, db_handle, &key_val.raw, &put_data_val.raw, 0))
|
||||
put_data_val := mdb.blittable_val(&put_data)
|
||||
mdb.panic_on_err(mdb.txn_begin(environment, nil, {}, &txn_handle))
|
||||
mdb.panic_on_err(mdb.dbi_open(txn_handle, nil, {}, &db_handle))
|
||||
mdb.panic_on_err(mdb.put(txn_handle, db_handle, &key_val, &put_data_val, {}))
|
||||
mdb.panic_on_err(mdb.txn_commit(txn_handle))
|
||||
|
||||
// Get transaction
|
||||
get_data_val := mdb.nil_autoval(int)
|
||||
mdb.panic_on_err(mdb.txn_begin(environment, nil, 0, &txn_handle))
|
||||
mdb.panic_on_err(mdb.get(txn_handle, db_handle, &key_val.raw, &get_data_val.raw))
|
||||
data_val: mdb.Val
|
||||
mdb.panic_on_err(mdb.txn_begin(environment, nil, {}, &txn_handle))
|
||||
mdb.panic_on_err(mdb.get(txn_handle, db_handle, &key_val, &data_val))
|
||||
data_cpy := mdb.blittable_copy(&data_val, int)
|
||||
mdb.panic_on_err(mdb.txn_commit(txn_handle))
|
||||
data_cpy := mdb.autoval_get_data(&get_data_val)^
|
||||
fmt.println("Get result:", data_cpy)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user