SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
Length.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
7
#ifndef swcdb_fsbroker_handlers_Length_h
8
#define swcdb_fsbroker_handlers_Length_h
9
10
#include "
swcdb/fs/Broker/Protocol/params/Length.h
"
11
12
13
namespace
SWC
{
namespace
Comm {
namespace
Protocol {
14
namespace
FsBroker {
namespace
Handler {
15
16
17
void
length
(
const
ConnHandlerPtr
& conn,
const
Event::Ptr
& ev) {
18
19
int
err =
Error::OK
;
20
size_t
length
= 0;
21
try
{
22
23
const
uint8_t *ptr = ev->data.base;
24
size_t
remain = ev->data.size;
25
26
Params::LengthReq
params;
27
params.
decode
(&ptr, &remain);
28
29
length
=
Env::FsInterface::fs
()->length(err, params.
fname
);
30
31
}
catch
(...) {
32
const
Error::Exception
& e =
SWC_CURRENT_EXCEPTION
(
""
);
33
SWC_LOG_OUT
(
LOG_ERROR
,
SWC_LOG_OSTREAM
<< e; );
34
err = e.
code
();
35
}
36
37
auto
cbp =
Buffers::make
(ev,
Params::LengthRsp
(
length
), 4);
38
cbp->append_i32(err);
39
conn->send_response(cbp);
40
41
}
42
43
44
}}}}}
45
46
#endif // swcdb_fsbroker_handlers_Length_h
SWC::Error::Exception::code
constexpr SWC_CAN_INLINE int code() const noexcept
Definition:
Exception.h:51
SWC_LOG_OSTREAM
#define SWC_LOG_OSTREAM
Definition:
Logger.h:44
SWC::Comm::Protocol::FsBroker::Params::LengthReq::fname
std::string fname
Definition:
Length.h:28
SWC_LOG_OUT
#define SWC_LOG_OUT(pr, _code_)
Definition:
Logger.h:178
SWC::Error::OK
@ OK
Definition:
Error.h:45
SWC_CURRENT_EXCEPTION
#define SWC_CURRENT_EXCEPTION(_msg_)
Definition:
Exception.h:119
SWC
The SWC-DB C++ namespace 'SWC'.
Definition:
main.cc:12
Length.h
SWC::Env::FsInterface::fs
static SWC_CAN_INLINE FS::FileSystem::Ptr & fs() noexcept
Definition:
Interface.h:155
SWC::Comm::Protocol::FsBroker::Handler::length
void length(const ConnHandlerPtr &conn, const Event::Ptr &ev)
Definition:
Length.h:17
SWC::Comm::Protocol::FsBroker::Params::LengthRsp
Definition:
Length.h:42
SWC::LOG_ERROR
@ LOG_ERROR
Definition:
Logger.h:32
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition:
AppContext.h:17
SWC::Comm::Buffers::make
static SWC_CAN_INLINE Ptr make(uint32_t reserve=0)
Definition:
Buffers.h:27
SWC::Comm::Serializable::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition:
Serializable.h:59
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition:
Event.h:33
SWC::Comm::Protocol::FsBroker::Params::LengthReq
Definition:
Length.h:17
SWC::Error::Exception
Definition:
Exception.h:21
include
swcdb
fsbroker
handlers
Length.h
Generated on Sat Jun 3 2023 18:00:07 for SWC-DB by
1.8.20