glean/rocksdb/ffi.h (143 lines of code) (raw):

/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include "glean/rts/ffi.h" #ifdef __cplusplus namespace facebook { namespace glean { namespace rocks { #endif typedef struct Container Container; typedef struct Database Database; #ifdef __cplusplus } } } #endif #ifdef __cplusplus namespace facebook { namespace glean { namespace rocks { namespace c { using namespace facebook::glean::rts; using namespace facebook::glean::rts::c; extern "C" { #endif typedef struct SharedCache SharedCache; const char *glean_rocksdb_new_cache( size_t capacity, SharedCache **cache ); void glean_rocksdb_free_cache( SharedCache *cache ); void glean_rocksdb_container_close( Container *container ); const char *glean_rocksdb_container_write_data( Container *container, const void *key, size_t key_size, const void *value, size_t value_size ); const char *glean_rocksdb_container_read_data( Container *container, const void *key, size_t key_size, void **value, size_t *value_size, unsigned char *found ); const char *glean_rocksdb_container_optimize( Container *db ); const char *glean_rocksdb_container_backup( Container *db, const char *path ); const char *glean_rocksdb_container_open( const char *path, int mode, SharedCache *cache, Container **container ); void glean_rocksdb_container_free( Container *container ); const char *glean_rocksdb_container_open_database( Container *container, glean_fact_id_t start, int64_t version, Database **db ); void glean_rocksdb_database_free( Database *db ); Container *glean_rocksdb_database_container( Database *db ); Lookup *glean_rocksdb_database_lookup( Database *db ); const char *glean_rocksdb_commit( Database *db, FactSet *facts ); const char *glean_rocksdb_add_ownership( Database *db, size_t count, const void **units, const size_t *unit_sizes, const int64_t **ids, const size_t *id_sizes ); const char *glean_rocksdb_get_ownership_unit_iterator( Database *db, OwnershipUnitIterator **iter ); const char *glean_rocksdb_get_unit_id( Database *db, void *unit, size_t unit_size, uint64_t *unit_id ); const char *glean_rocksdb_get_unit( Database *db, uint32_t unit_id, void **unit, size_t *unit_size ); const char *glean_rocksdb_database_stats( Database *db, size_t *count, int64_t **ids, uint64_t **counts, uint64_t **sizes ); const char *glean_rocksdb_restore( const char *target, const char *source ); const char *glean_rocksdb_store_ownership( Database *db, ComputedOwnership *ownership ); const char *glean_rocksdb_get_ownership( Database *db, Ownership **ownership ); const char *glean_rocksdb_add_define_ownership( Database *db, DefineOwnership *define ); const char *glean_rocksdb_get_derived_fact_ownership_iterator( Database *db, uint64_t pid, DerivedFactOwnershipIterator **iter ); #ifdef __cplusplus } } } } } #endif