![SWC-DB logo](logo.svg) |
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
7 #ifndef swcdb_broker_BrokerEnv_h
8 #define swcdb_broker_BrokerEnv_h
20 namespace SWC {
namespace Env {
33 m_env->_shuttingdown();
38 return !
m_env->m_not_accepting;
43 if(
m_env->m_not_accepting)
45 m_env->m_in_process.fetch_add(1);
51 m_env->m_in_process.fetch_add(count);
56 m_env->m_in_process.fetch_sub(1);
69 template <
typename T_Handler>
71 static void post(T_Handler&& handler) {
72 m_env->app_io->post(std::move(handler));
77 return m_env->_resources;
82 return m_env->_reporting;
103 inline static std::shared_ptr<
Bkr>
m_env =
nullptr;
116 namespace
SWC {
namespace Env {
120 Comm::IoContext::make(
123 "swc.bkr.concurrency.relative"),
124 SWC::Env::
Config::settings()->get_i32(
"swc.bkr.handlers")
128 SWC::Env::
Config::settings()->get_bool(
"swc.bkr.metrics.enabled")
129 ? new Broker::Metric::Reporting(
133 "swc.bkr.metrics.report.interval"))
140 "swc.bkr.ram.allowed.percent"),
143 "swc.bkr.ram.reserved.percent"),
146 "swc.bkr.ram.release.rate"),
173 std::this_thread::sleep_for(std::chrono::milliseconds(200));
187 #endif // swcdb_broker_BrokerEnv_h
static SWC_CAN_INLINE void in_process(int64_t count) noexcept
Comm::IoContextPtr app_io
static std::shared_ptr< Bkr > m_env
#define SWC_LOGF(priority, fmt,...)
static void shuttingdown()
static SWC_CAN_INLINE Bkr * get() noexcept
void wait_if_in_process()
std::shared_ptr< IoContext > IoContextPtr
static SWC_CAN_INLINE bool is_accepting() noexcept
System::Resources _resources
constexpr SWC_CAN_INLINE void store(T v) noexcept
static SWC_CAN_INLINE System::Resources & res() noexcept
static void reset() noexcept
The SWC-DB C++ namespace 'SWC'.
Core::Atomic< int64_t > m_in_process
static SWC_CAN_INLINE Broker::Metric::Reporting::Ptr & metrics_track() noexcept
std::shared_ptr< Reporting > Ptr
Core::AtomicBool m_not_accepting
constexpr SWC_CAN_INLINE T load() const noexcept
Broker::Metric::Reporting::Ptr _reporting
static SWC_CAN_INLINE bool can_process() noexcept
static SWC_CAN_INLINE void post(T_Handler &&handler)
static SWC_CAN_INLINE Comm::IoContextPtr io() noexcept
static SWC_CAN_INLINE void processed() noexcept
AtomicBase< bool > AtomicBool