SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
SystemColumn.h
Go to the documentation of this file.
1 /*
2  * SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3  * License details at <https://github.com/kashirin-alex/swc-db/#license>
4  */
5 
6 #ifndef swcdb_db_types_SystemColumn_h
7 #define swcdb_db_types_SystemColumn_h
8 
10 #include "swcdb/db/Types/KeySeq.h"
11 #include "swcdb/db/Types/Range.h"
12 
13 
14 namespace SWC { namespace DB { namespace Types { namespace SystemColumn {
15 
16 
20 const cid_t CID_META_END = 8;
21 
22 const cid_t SYS_RGR_DATA = 9;
23 
24 const cid_t SYS_CID_STATS = 10;
26 
28 
29 
30 constexpr SWC_CAN_INLINE
31 bool is_master(cid_t cid) noexcept {
32  return cid <= CID_MASTER_END;
33 }
34 
35 constexpr SWC_CAN_INLINE
36 bool is_meta(cid_t cid) noexcept {
37  return cid >= CID_META_BEGIN && cid <= CID_META_END;
38 }
39 
40 constexpr SWC_CAN_INLINE
41 bool is_rgr_data_on_fs(cid_t cid) noexcept {
42  return cid <= SYS_RGR_DATA;
43 }
44 
45 constexpr SWC_CAN_INLINE
46 bool is_data(cid_t cid) noexcept {
47  return cid > CID_META_END;
48 }
49 
50 constexpr SWC_CAN_INLINE
51 Range get_range_type(cid_t cid) noexcept {
52  if(cid <= CID_MASTER_END)
53  return Range::MASTER;
54  if(cid <= CID_META_END)
55  return Range::META;
56  return Range::DATA;
57 }
58 
59 
61 
62 
63 cid_t SWC_CONST_FUNC get_master_cid(KeySeq col_seq) noexcept;
64 
65 cid_t SWC_CONST_FUNC get_meta_cid(KeySeq col_seq) noexcept;
66 
67 const char* SWC_CONST_FUNC get_meta_cid_str(KeySeq col_seq) noexcept;
68 
69 uint8_t SWC_CONST_FUNC get_sys_cid(KeySeq col_seq, Range col_type) noexcept;
70 
71 
72 }}}}
73 
74 
75 #ifdef SWC_IMPL_SOURCE
77 #endif
78 
79 #endif // swcdb_db_types_SystemColumn_h
SystemColumn.cc
SWC::DB::Types::SystemColumn::is_meta
constexpr SWC_CAN_INLINE bool is_meta(cid_t cid) noexcept
Definition: SystemColumn.h:36
SWC::DB::Types::SystemColumn::get_meta_cid_str
const char *SWC_CONST_FUNC get_meta_cid_str(KeySeq col_seq) noexcept
Definition: SystemColumn.cc:58
SWC::DB::Types::SystemColumn::is_data
constexpr SWC_CAN_INLINE bool is_data(cid_t cid) noexcept
Definition: SystemColumn.h:46
KeySeq.h
SWC::DB::Types::SystemColumn::SYS_CID_END
const cid_t SYS_CID_END
Definition: SystemColumn.h:27
SWC::DB::Types::SystemColumn::SYS_CID_DEFINE_LEXIC
const cid_t SYS_CID_DEFINE_LEXIC
Definition: SystemColumn.h:25
SWC::DB::Types::SystemColumn::get_master_cid
cid_t SWC_CONST_FUNC get_master_cid(KeySeq col_seq) noexcept
Definition: SystemColumn.cc:32
SWC::DB::Types::SystemColumn::is_master
constexpr SWC_CAN_INLINE bool is_master(cid_t cid) noexcept
Definition: SystemColumn.h:31
SWC::DB::Types::KeySeq
KeySeq
Definition: KeySeq.h:13
SWC::DB::Types::SystemColumn::get_range_type
constexpr SWC_CAN_INLINE Range get_range_type(cid_t cid) noexcept
Definition: SystemColumn.h:51
SWC_CONST_FUNC
#define SWC_CONST_FUNC
Definition: Compat.h:107
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
Range.h
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::DB::Types::SystemColumn::CID_META_END
const cid_t CID_META_END
Definition: SystemColumn.h:20
SWC::DB::Types::Range::MASTER
@ MASTER
Identifiers.h
SWC::DB::Types::SystemColumn::get_sys_cid
uint8_t SWC_CONST_FUNC get_sys_cid(KeySeq col_seq, Range col_type) noexcept
Definition: SystemColumn.cc:71
SWC::DB::Types::SystemColumn::SYS_RGR_DATA
const cid_t SYS_RGR_DATA
Definition: SystemColumn.h:22
SWC::DB::Types::SystemColumn::CID_MASTER_END
const cid_t CID_MASTER_END
Definition: SystemColumn.h:18
SWC::DB::Types::SystemColumn::get_seq_type
KeySeq SWC_CONST_FUNC get_seq_type(cid_t cid) noexcept
Definition: SystemColumn.cc:15
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::DB::Types::SystemColumn::CID_META_BEGIN
const cid_t CID_META_BEGIN
Definition: SystemColumn.h:19
SWC::DB::Types::SystemColumn::CID_MASTER_BEGIN
const cid_t CID_MASTER_BEGIN
Definition: SystemColumn.h:17
SWC::DB::Types::SystemColumn::get_meta_cid
cid_t SWC_CONST_FUNC get_meta_cid(KeySeq col_seq) noexcept
Definition: SystemColumn.cc:45
SWC::DB::Types::SystemColumn::is_rgr_data_on_fs
constexpr SWC_CAN_INLINE bool is_rgr_data_on_fs(cid_t cid) noexcept
Definition: SystemColumn.h:41
SWC::DB::Types::Range
Range
Definition: Range.h:14
SWC::DB::Types::SystemColumn::SYS_CID_STATS
const cid_t SYS_CID_STATS
Definition: SystemColumn.h:24