![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.
6 #ifndef swcdb_broker_AppContext_h
7 #define swcdb_broker_AppContext_h
27 namespace SWC {
namespace Broker {
54 :
conn(std::move(other.conn)),
ev(std::move(other.ev)) {
61 ev->expired() || !
conn->is_open()
70 typedef std::shared_ptr<AppContext>
Ptr;
76 settings->get_str(
"swc.bkr.cfg",
""),
85 settings->get_bool(
"swc.bkr.concurrency.relative"),
86 settings->get_i32(
"swc.bkr.clients.handlers")
98 "swc.cfg.dyn.period");
111 Env::Config::settings()->get<Config::Property::Value_enum_g>(
112 "swc.bkr.comm.encoder")),
116 void init(
const std::string& host,
126 m_metrics->configure_bkr(host.c_str(), endpoints);
138 m_srv->connection_add(conn);
144 m_srv->connection_del(conn);
153 return conn->do_close();
158 }
else if(!ev->header.command ||
167 m_metrics->net->command(conn, ev->header.command);
188 m_metrics->net->accepted(endpoint, secure);
196 Task(
AppContext* a_ptr) noexcept : ptr(a_ptr) { }
197 void operator()(
const std::error_code& ec,
const int &sig) {
198 if(ec == asio::error::operation_aborted)
201 sig, ec.message().c_str());
208 sig, ec.message().c_str());
212 sig, ec.message().c_str());
219 std::shared_ptr<std::thread> d(
new std::thread);
220 *d.get() = std::thread([d, ptr=shared_from_this()]{ ptr->stop(); });
225 auto guard =
m_srv->stop_accepting();
229 #if defined(SWC_ENABLE_SANITIZER)
240 #if defined(SWC_ENABLE_SANITIZER)
241 std::this_thread::sleep_for(std::chrono::seconds(2));
263 #endif // swcdb_broker_AppContext_h
SWC_CAN_INLINE CommandHandler(const Comm::ConnHandlerPtr &a_conn, const Comm::Event::Ptr &a_ev) noexcept
static SWC_CAN_INLINE void in_process(int64_t count) noexcept
Metric::Reporting::Ptr m_metrics
void cells_select(const ConnHandlerPtr &conn, const Event::Ptr &ev)
static SWC_CAN_INLINE client::Clients::Ptr & get() noexcept
#define SWC_LOGF(priority, fmt,...)
void set_srv(Comm::server::SerializedServer::Ptr srv)
std::shared_ptr< ContextManager > Ptr
static SWC::Config::Settings::Ptr & settings()
static void shuttingdown()
void column_get(const ConnHandlerPtr &conn, const Event::Ptr &ev)
asio::ip::tcp::endpoint EndPoint
void net_bytes_received(const Comm::ConnHandlerPtr &conn, size_t b) noexcept override
void column_compact(const ConnHandlerPtr &conn, const Event::Ptr &ev)
static void init(const client::Clients::Ptr &clients)
void column_list(const ConnHandlerPtr &conn, const Event::Ptr &ev)
SWC_CAN_INLINE CommandHandler(CommandHandler &&other) noexcept
void cells_update(const ConnHandlerPtr &conn, const Event::Ptr &ev)
Comm::ConnHandlerPtr conn
~CommandHandler() noexcept
#define SWC_LOG(priority, message)
void net_accepted(const Comm::EndPoint &endpoint, bool secure) noexcept override
static void reset() noexcept
The SWC-DB C++ namespace 'SWC'.
void handle_established(Comm::ConnHandlerPtr conn) override
CommandHandler(const CommandHandler &)=delete
void not_implemented(const ConnHandlerPtr &conn, const Event::Ptr &ev)
std::shared_ptr< SerializedServer > Ptr
std::shared_ptr< ConnHandler > ConnHandlerPtr
std::shared_ptr< Reporting > Ptr
#define SWC_QUICK_EXIT(_CODE_)
void handle_disconnect(Comm::ConnHandlerPtr conn) noexcept override
void init(const std::string &host, const Comm::EndPoints &endpoints) override
void shutting_down(const std::error_code &ec, const int &sig)
static SWC_CAN_INLINE bool can_process() noexcept
void(* AppHandler_t)(const ConnHandlerPtr &conn, const Event::Ptr &ev)
Comm::server::SerializedServer::Ptr m_srv
static void reset() noexcept
void handle(Comm::ConnHandlerPtr conn, const Comm::Event::Ptr &ev) override
void net_bytes_sent(const Comm::ConnHandlerPtr &conn, size_t b) noexcept override
static SWC_CAN_INLINE void post(T_Handler &&handler)
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)
std::shared_ptr< AppContext > Ptr
std::shared_ptr< Event > Ptr
void column_mng(const ConnHandlerPtr &conn, const Event::Ptr &ev)
CommandHandler & operator=(const CommandHandler &)=delete
static SWC_CAN_INLINE Comm::IoContextPtr io() noexcept
virtual ~AppContext() noexcept
static constexpr const Comm::AppHandler_t handlers[]
static SWC_CAN_INLINE void processed() noexcept
static IoContextPtr make(std::string &&_name, int32_t size)
CommandHandler & operator=(CommandHandler &&)=delete