SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeQueryUpdate.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_ranger_callbacks_RangeQueryUpdate_h
7 #define swcdb_ranger_callbacks_RangeQueryUpdate_h
8 
9 
11 
12 
13 namespace SWC { namespace Ranger { namespace Callback {
14 
15 
16 
17 struct RangeQueryUpdate : Core::QueuePointer<RangeQueryUpdate*>::Pointer {
18 
22 
25  const Comm::Event::Ptr& a_ev)
26  : conn(a_conn), ev(a_ev), rsp(Error::OK) {
27  Env::Rgr::res().more_mem_future(ev->data_ext.size);
28  }
29 
31  ~RangeQueryUpdate() noexcept {
32  Env::Rgr::res().less_mem_future(ev->data_ext.size);
33  }
34 
36  bool expired() const {
37  return ev->expired(ev->data_ext.size/100000) || !conn->is_open();
38  }
39 
41  void response() {
42  conn->send_response(Comm::Buffers::make(ev, rsp));
43  }
44 
45 
46 };
47 
48 
49 
50 }}}
51 
52 
53 #endif // swcdb_ranger_callbacks_RangeQueryUpdate_h
SWC::Env::Rgr::res
static SWC_CAN_INLINE System::Resources & res() noexcept
Definition: RangerEnv.h:131
SWC::Ranger::Callback::RangeQueryUpdate::conn
Comm::ConnHandlerPtr conn
Definition: RangeQueryUpdate.h:19
SWC::System::Resources::more_mem_future
SWC_CAN_INLINE void more_mem_future(size_t sz) noexcept
Definition: Resources.h:104
SWC::Ranger::Callback::RangeQueryUpdate::~RangeQueryUpdate
SWC_CAN_INLINE ~RangeQueryUpdate() noexcept
Definition: RangeQueryUpdate.h:31
SWC::Comm::Protocol::Rgr::Params::RangeQueryUpdateRsp
Definition: RangeQueryUpdate.h:48
SWC::Ranger::Callback::RangeQueryUpdate
Definition: RangeQueryUpdate.h:17
SWC::Error::OK
@ OK
Definition: Error.h:45
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Ranger::Callback::RangeQueryUpdate::rsp
Comm::Protocol::Rgr::Params::RangeQueryUpdateRsp rsp
Definition: RangeQueryUpdate.h:21
RangeQueryUpdate.h
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::System::Resources::less_mem_future
SWC_CAN_INLINE void less_mem_future(size_t sz) noexcept
Definition: Resources.h:109
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition: AppContext.h:17
SWC::Core::QueuePointer
Definition: QueuePointer.h:15
SWC::Ranger::Callback::RangeQueryUpdate::RangeQueryUpdate
SWC_CAN_INLINE RangeQueryUpdate(const Comm::ConnHandlerPtr &a_conn, const Comm::Event::Ptr &a_ev)
Definition: RangeQueryUpdate.h:24
SWC::Comm::Buffers::make
static SWC_CAN_INLINE Ptr make(uint32_t reserve=0)
Definition: Buffers.h:27
SWC::Ranger::Callback::RangeQueryUpdate::response
SWC_CAN_INLINE void response()
Definition: RangeQueryUpdate.h:41
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Ranger::Callback::RangeQueryUpdate::expired
SWC_CAN_INLINE bool expired() const
Definition: RangeQueryUpdate.h:36
SWC::Ranger::Callback::RangeQueryUpdate::ev
Comm::Event::Ptr ev
Definition: RangeQueryUpdate.h:20