|
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.
6 #ifndef swcdb_manager_AppContext_h
7 #define swcdb_manager_AppContext_h
39 namespace SWC {
namespace Manager {
45 typedef std::shared_ptr<AppContext>
Ptr;
49 Env::Config::settings()->get<Config::Property::Value_enum_g>(
50 "swc.mngr.comm.encoder")
56 settings->get_str(
"swc.mngr.cfg",
""),
65 settings->get_bool(
"swc.mngr.concurrency.relative"),
66 settings->get_i32(
"swc.mngr.clients.handlers")
84 void init(
const std::string& host,
102 m_metrics->configure_mngr(host.c_str(), endpoints);
114 m_srv->connection_add(conn);
120 m_srv->connection_del(conn);
122 conn->endpoint_remote, conn->endpoint_local,
true);
130 #if defined(SWC_ENABLE_SANITIZER)
132 return conn->do_close();
140 switch(ev->header.command) {
222 m_metrics->net->command(conn, ev->header.command);
240 m_metrics->net->accepted(endpoint, secure);
248 Task(
AppContext* a_ptr) noexcept : ptr(a_ptr) { }
249 void operator()(
const std::error_code& ec,
const int &sig) {
250 if(ec == asio::error::operation_aborted)
253 sig, ec.message().c_str());
260 sig, ec.message().c_str());
264 SWC_LOGF(
LOG_INFO,
"Shutdown signal, sig=%d ec=%s", sig, ec.message().c_str());
271 std::shared_ptr<std::thread> d(
new std::thread);
272 *d.get() = std::thread([d, ptr=shared_from_this()]{ ptr->stop(); });
278 auto guard =
m_srv->stop_accepting();
282 #if defined(SWC_ENABLE_SANITIZER)
295 #if defined(SWC_ENABLE_SANITIZER)
296 std::this_thread::sleep_for(std::chrono::seconds(2));
318 #endif // swcdb_manager_AppContext_h
static void init(const SWC::Config::Settings::Ptr &settings, FS::Type typ)
void net_bytes_sent(const Comm::ConnHandlerPtr &conn, size_t b) noexcept override
Type fs_type(const std::string &fs_name)
static SWC_CAN_INLINE client::Clients::Ptr & get() noexcept
#define SWC_LOGF(priority, fmt,...)
std::shared_ptr< Reporting > Ptr
static SWC_CAN_INLINE void post(T_Handler &&handler)
Metric::Reporting::Ptr m_metrics
static SWC::Config::Settings::Ptr & settings()
asio::ip::tcp::endpoint EndPoint
static SWC_CAN_INLINE FS::Interface::Ptr & interface() noexcept
std::shared_ptr< AppContext > Ptr
std::shared_ptr< ContextBroker > Ptr
void set_srv(Comm::server::SerializedServer::Ptr srv)
void init(const std::string &host, const Comm::EndPoints &endpoints) override
virtual ~AppContext() noexcept
static void init(const client::Clients::Ptr &clients)
void rgr_get(const ConnHandlerPtr &conn, const Event::Ptr &ev)
std::shared_ptr< AppContext > Ptr
void net_bytes_received(const Comm::ConnHandlerPtr &conn, size_t b) noexcept override
void net_accepted(const Comm::EndPoint &endpoint, bool secure) noexcept override
#define SWC_LOG(priority, message)
The SWC-DB C++ namespace 'SWC'.
void column_get(const ConnHandlerPtr &conn, const Event::Ptr &ev)
void not_implemented(const ConnHandlerPtr &conn, const Event::Ptr &ev)
std::shared_ptr< SerializedServer > Ptr
static SWC_CAN_INLINE Manager::Metric::Reporting::Ptr & metrics_track() noexcept
void column_mng(const ConnHandlerPtr &conn, const Event::Ptr &ev)
void range_unloaded(const ConnHandlerPtr &conn, const Event::Ptr &ev)
void shutting_down(const std::error_code &ec, const int &sig)
std::shared_ptr< ConnHandler > ConnHandlerPtr
void do_echo(const ConnHandlerPtr &conn, const Event::Ptr &ev)
void disconnection(const Comm::EndPoint &endpoint_server, const Comm::EndPoint &endpoint_client, bool srv=false)
void handle(Comm::ConnHandlerPtr conn, const Comm::Event::Ptr &ev) override
#define SWC_QUICK_EXIT(_CODE_)
static void reset() noexcept
Comm::server::SerializedServer::Ptr m_srv
void column_list(const ConnHandlerPtr &conn, const Event::Ptr &ev)
static void reset() noexcept
void handle_disconnect(Comm::ConnHandlerPtr conn) noexcept override
static Ptr make(const Config::Settings &settings, const Comm::IoContextPtr &io_ctx, const ContextManager::Ptr &mngr_ctx, const ContextRanger::Ptr &rgr_ctx, const ContextBroker::Ptr &bkr_ctx)
static SWC_CAN_INLINE Manager::MngrRole * role() noexcept
static void init(const Comm::EndPoints &endpoints)
std::shared_ptr< Event > Ptr
static SWC_CAN_INLINE Comm::IoContextPtr io() noexcept
void mngr_active(const ConnHandlerPtr &conn, const Event::Ptr &ev)
static IoContextPtr make(std::string &&_name, int32_t size)
void handle_established(Comm::ConnHandlerPtr conn) override
static void reset() noexcept
void column_compact(const ConnHandlerPtr &conn, const Event::Ptr &ev)