SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
Column.cc
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 
8 
9 
10 namespace SWC { namespace Manager {
11 
12 
13 
14 void Column::init(int &err) {
15  FS::IdEntries_t entries;
16  Env::FsInterface::interface()->get_structured_ids(
17  err, DB::RangeBase::get_path(cfg->cid), entries);
18  if(err) {
19  if(err == ENOENT)
20  create(err = Error::OK, cfg->cid);
21  if(err)
22  return;
23  }
24  if(entries.empty()) {
25  SWC_LOGF(LOG_INFO, "Init. New Column(" SWC_FMT_LU ") Range(1)", cfg->cid);
26  entries.push_back(1);
27  }
28 
30  for(auto rid : entries) {
32  emplace_back(new Range(cfg, rid))
33  );
34  }
35 }
36 
37 
38 
39 }}
SWC::Manager::Column::init
void init(int &err)
Definition: Column.cc:14
SWC::Manager::Column::m_mutex
std::shared_mutex m_mutex
Definition: Column.h:425
SWC_LOGF
#define SWC_LOGF(priority, fmt,...)
Definition: Logger.h:188
SWC::Core::ScopedLock
Definition: MutexLock.h:41
SWC::Env::FsInterface::interface
static SWC_CAN_INLINE FS::Interface::Ptr & interface() noexcept
Definition: Interface.h:150
SWC::LOG_INFO
@ LOG_INFO
Definition: Logger.h:35
SWC::Env::Mngr::columns
static SWC_CAN_INLINE Manager::Columns * columns() noexcept
Definition: MngrEnv.h:59
SWC::Error::OK
@ OK
Definition: Error.h:45
SWC::DB::RangeBase::get_path
static const std::string get_path(const cid_t cid)
Definition: RangeBase.h:38
SWC::Core::Vector::empty
constexpr SWC_CAN_INLINE bool empty() const noexcept
Definition: Vector.h:168
SWC::Manager::Column::cfg
const ColumnCfg::Ptr cfg
Definition: Column.h:40
Column.h
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Manager::Columns::assign_add
void assign_add(Range::Ptr &&range)
Definition: Columns.h:167
SWC_FMT_LU
#define SWC_FMT_LU
Definition: Compat.h:98
SWC::Core::Vector
Definition: Vector.h:14
SWC::Manager::Column::create
static bool create(int &err, const cid_t cid)
Definition: Column.h:26
SWC::Core::Vector::push_back
SWC_CAN_INLINE void push_back(ArgsT &&... args)
Definition: Vector.h:331
SWC::DB::Types::Range
Range
Definition: Range.h:14
SWC::Core::Vector< Range::Ptr >::emplace_back
SWC_CAN_INLINE reference emplace_back(ArgsT &&... args)
Definition: Vector.h:349