Class rocks_db_file_storage

Class Documentation

class rocks_db_file_storage

Public Types

enum instance_ref

Values:

enumerator typedecl_ref
enumerator entityinstance_ref
enum INVERSE_ATTR

Values:

enumerator INSTANCE_ID
enumerator INSTANCE_TYPE
enumerator ATTRIBUTE_INDEX
typedef std::map<uint32_t, shared_pointer_type> entity_by_iden_cache
typedef rocksdb_set_view<size_t> instance_name_view
typedef set_to_map_transformer<instance_name_view, std::function<express::base(size_t)>> entity_instance_by_name
typedef rocksdb_map_adapter<size_t, std::string> instance_id_str_by_type
typedef rocksdb_map_adapter<std::string, size_t> instance_id_by_guid_str
typedef map_transformer<rocksdb_map_adapter<std::string, size_t>, std::function<express::base(size_t)>, std::function<size_t(const express::base&)>> entity_instance_by_guid
typedef std::tuple<int, int, int> inverse_attr_record
typedef rocksdb_map_adapter<inverse_attr_record, std::vector<uint32_t>> entities_by_ref
using const_iterator = entity_instance_by_name::iterator

Public Functions

void erase_instances(const std::vector<uint32_t> &ids)
rocks_db_file_storage(const std::string &path, ifcopenshell::file *owner_file, bool read_only = false)
~rocks_db_file_storage()
bool read_schema(const ifcopenshell::schema_definition *&schema)
express::base assert_existance(size_t instance_id, instance_ref reference_type)
void register_inverse(unsigned referenced_id, const ifcopenshell::entity *from_entity, int instance_id, int attribute_index)
void unregister_inverse(unsigned referenced_id, const ifcopenshell::entity *from_entity, const express::base &entity, int attribute_index)
void add_type_ref(const express::base &new_entity)
void remove_type_ref(const express::base &new_entity)
express::base instance_by_id(int instance_id)
void process_deletion_inverse(const express::base &entity)
template<typename T>
T create(int instance_id = -1)
express::base create(const ifcopenshell::declaration *declaration, int instance_id = -1)

Public Members

std::unique_ptr<rocksdb::DB> db
rocksdb::WriteOptions wopts
rocksdb::ReadOptions ropts
ifcopenshell::file *file
entity_by_iden_cache instance_cache_
entity_by_iden_cache type_instance_cache_
std::mutex instance_cache_mutex_
bool id_counter_recalculated_ = false
instance_name_view instance_ids_
entity_instance_by_name instance_by_name_
instance_id_str_by_type bytype_
instance_id_by_guid_str byguid_internal_
entity_instance_by_guid byguid_
entities_by_ref byref_excl_
bool read_only_ = false