|
| | sqlite_catalog (sqlite_catalog const &)=delete |
| |
| sqlite_catalog & | operator= (sqlite_catalog const &)=delete |
| |
| | sqlite_catalog (sqlite_catalog &&other) noexcept |
| |
| sqlite_catalog & | operator= (sqlite_catalog &&)=delete |
| |
| | ~sqlite_catalog () |
| |
| bool | poisoned () const noexcept |
| |
| bool | private_construction () const noexcept |
| |
| unsigned | schema_version () const noexcept |
| |
| std::filesystem::path const & | root () const &noexcept |
| |
| std::filesystem::path const & | root () const &&=delete |
| |
| object_id const & | identity () const & |
| |
| object_id const & | identity () const &&=delete |
| |
| void | begin_private_scope (std::string_view op, object_id const &id) |
| |
| void | set_private_scope (object_id const &id) |
| |
| void | release_private_scope (std::string_view op, object_id const &id) |
| |
| private_scope_state | scope_state (object_id const &id) const |
| |
| std::vector< object_id > | private_scopes () const |
| |
| object_seal_receipt | sealed_receipt (object_id const &id, file_kind expected) const |
| |
| void | verify_sealed (object_seal_receipt const &receipt, file_kind expected) const |
| |
| std::optional< catalog_operation > | lookup_operation (std::string_view op) const |
| |
| std::optional< blob_identity > | find_save (std::string_view name) const |
| |
| void | reserve (std::string_view op, object_attempt_id const &attempt, std::string_view owner, std::span< blob_identity const > inputs, std::span< catalog_object_reservation const > outputs) |
| |
| void | record_sealed (std::string_view op, object_seal_receipt const &receipt) |
| |
| void | record_native_merge (std::string_view op, catalog_native_merge const &key, object_seal_receipt const &receipt, std::string_view owner) |
| |
| std::optional< object_seal_receipt > | acquire_native_merge (std::string_view op, catalog_native_merge const &key, std::string_view owner) |
| |
| void | register_chain (std::string_view op, mapped_query_root< P > const &source, catalog_admission admission=catalog_admission::trusted) |
| |
| void | register_chain (std::string_view op, mapped_cola_query_root< P > const &source, catalog_admission admission=catalog_admission::trusted) |
| |
| template<class Mapped > |
| void | register_graph (std::string_view op, std::shared_ptr< Mapped const > const &source, catalog_admission admission=catalog_admission::trusted) |
| |
| template<class Mapped > |
| void | register_graphs (std::string_view op, std::span< std::shared_ptr< Mapped const > const > roots, catalog_admission admission=catalog_admission::trusted) |
| |
| template<class Mapped > |
| void | register_pair (std::string_view op, blob_identity const &id) |
| |
| template<class Mapped > |
| auto | seal_pair (std::string_view op, blob_identity const &id, object_seal_receipt const &receipt) |
| |
| template<class Mapped > |
| auto | seal_native_pair (std::string_view op, blob_identity const &id, object_seal_receipt const &native_receipt, object_seal_receipt const &index_receipt) |
| |
| void | save (std::string_view op, std::string_view name, blob_identity const &head) |
| |
| catalog_saved_root | acquire_save (std::string_view op, std::string_view name, std::string_view reader_owner) |
| |
| std::optional< catalog_timeline_head > | find_timeline (std::string_view name) const |
| |
| catalog_timeline_head | create_timeline (std::string_view op, std::string_view name, blob_identity const &head) |
| |
| catalog_timeline_head | fork_timeline (std::string_view op, std::string_view name, catalog_timeline_head const &source) |
| |
| catalog_timeline_publication | publish_timeline (std::string_view op, catalog_timeline_head const &expected, blob_identity const &candidate) |
| |
| std::optional< catalog_session_head > | find_session (std::string_view name) const |
| |
| catalog_session_head | create_session (std::string_view op, std::string_view name, blob_identity const &head, std::span< std::byte const > checkpoint, catalog_auxiliary_roots auxiliary={}) |
| |
| catalog_session_publication | publish_session (std::string_view op, catalog_session_head const &expected, blob_identity const &candidate, std::span< std::byte const > checkpoint, catalog_auxiliary_roots auxiliary={}) |
| |
| catalog_session_head | fork_session (std::string_view op, std::string_view name, catalog_session_head const &source) |
| |
| void | save_session (std::string_view op, std::string_view name, catalog_session_head const &source) |
| |
| std::optional< catalog_session_head > | find_saved_session (std::string_view name) const |
| |
|
| mapped_slice | open_object_bytes (object_id const &id, file_kind expected) const |
| |
| template<class Mapped > |
| prepared_cola_pair< Mapped > | prepare_cola_pair (blob_identity const &id, object_seal_receipt const *receipt=nullptr, object_seal_receipt const *native_receipt=nullptr) const |
| |
| void | append_seal_request (catalog_detail::bytes &request, object_seal_receipt const &receipt, std::filesystem::path const &path) const |
| |
| void | record_sealed_row (object_seal_receipt const &receipt, std::filesystem::path const &path, mapped_slice const *evidence=nullptr) |
| |
| void | record_prepared_seal (object_seal_receipt const &receipt, file_kind expected) |
| |
| void | write_seal (object_seal_receipt const &receipt) |
| |
| void | register_cola_row (cola_pair_descriptor const &value) |
| |
| void | insert_cola_row (cola_pair_descriptor const &value) |
| |
| | sqlite_catalog (sqlite3 *db, std::filesystem::path root, Ops ops) |
| |
| void | require_active () const |
| |
| void | require_timelines () const |
| |
| void | require_sessions () const |
| |
| bool | has_table (std::string_view table) const |
| |
| catalog_timeline_head | decode_timeline (catalog_detail::bytes const &bytes) const |
| |
| catalog_session_head | decode_session (catalog_detail::bytes const &bytes) const |
| |
| std::optional< catalog_detail::bytes > | checkpoint_at (std::string_view name, std::uint64_t generation) const |
| |
| catalog_session_head | attach_checkpoint (catalog_timeline_head head) const |
| |
| catalog_auxiliary_roots | auxiliary_at (catalog_timeline_head const &head) const |
| |
| void | add_auxiliary (std::string_view kind, std::string_view owner, catalog_auxiliary_roots const &value) |
| |
| std::optional< catalog_timeline_head > | timeline_at (std::string_view name, std::optional< std::uint64_t > generation={}) const |
| |
| void | require_prepared (blob_identity const &head) const |
| |
| catalog_timeline_head | add_generation (std::string_view name, std::uint64_t generation, blob_identity const &head) |
| |
| catalog_session_head | add_session_generation (std::string_view name, std::uint64_t generation, blob_identity const &head, std::span< std::byte const > checkpoint, catalog_auxiliary_roots const &auxiliary) |
| |
| template<class F > |
| auto | read (F &&action) const |
| |
| void | definition (std::string_view type, std::string_view name, std::string_view expected) const |
| |
| unsigned | detect_schema_version () const |
| |
| void | validate_schema () const |
| |
| std::optional< object_id > | native_merge_output (std::span< std::byte const > domain, catalog_native_merge const &key) const |
| |
| void | validate_native_merges () const |
| |
| void | ensure_private_scopes () |
| |
| void | validate_private_scopes () const |
| |
| void | require_private_scope (object_id const &id) const |
| |
| void | add_native_pin (std::string_view owner, object_id const &native) |
| |
| void | add_owner (std::string_view kind, std::string_view name) |
| |
| void | add_root (std::string_view kind, std::string_view owner, blob_identity const &pair) |
| |
| void | require_sealed (object_id const &id, file_kind expected, mapped_slice const *evidence=nullptr) const |
| |
| void | verify_object_envelope (object_id const &id, file_kind expected, std::uint64_t size, std::uint64_t crc) const |
| |
| template<class F > |
| catalog_detail::bytes | transaction (std::string_view op, std::string_view kind, catalog_detail::bytes const &request, F &&apply, bool record=true) |
| |
|
| static void | append_pair_request (catalog_detail::bytes &request, cola_pair_descriptor const &descriptor) |
| |
| static sqlite_catalog | create_version (std::filesystem::path const &root, object_id const &identity, catalog_options options, Ops ops, unsigned version) |
| |
| static void | validate_timeline (catalog_timeline_head const &value) |
| |
| static std::int64_t | kind (file_kind value) |
| |
| static catalog_detail::bytes | policy () |
| |
| static bool | compatible_policy (std::span< std::byte const > stored) |
| |
| static void | validate_options (catalog_options options) |
| |
| static sqlite_catalog | connect (std::filesystem::path const &root, catalog_options options, Ops ops, bool initialize=false) |
| |
| static catalog_detail::bytes | native_merge_domain (catalog_native_merge const &key) |
| |
| static void | append_native_merge (catalog_detail::bytes &out, std::span< std::byte const > domain, catalog_native_merge const &key) |
| |
| static void | check_object_envelope (file_kind expected, std::uint64_t size, std::uint64_t crc, std::span< std::byte const > bytes) |
| |