65template <
typename Buffer,
typename...
Args>
67 (buffer.insert(buffer.end(), std::begin(std::forward<Args>(args)),
68 std::end(std::forward<Args>(args))),
72template <
typename...
Args>
74 std::vector<int> lengths;
75 (lengths.push_back(std::distance(std::begin(args), std::end(args))), ...);
81template <
typename...
Args>
85 constexpr auto n_args =
sizeof...(Args);
87 ss <<
ArgsToString(session_id,
":", cmd_str,
":", n_args,
":");
89 std::vector<int> size_info =
91 for (
const auto sz : size_info) {
94 std::string
header = ss.str();
95 std::vector<std::uint8_t> payload_buffer{
header.begin(),
header.end()};
100 return {ph, payload_buffer};
109template <
typename...
Args>
111 const std::string& session_id,
Args&&... args) {
118 auto [payload_header, data_to_send] =
120 const std::string data_in_str(data_to_send.cbegin(), data_to_send.cend());
122 auto nwrite =
WriteAll(d,
reinterpret_cast<const char*
>(&payload_header),
123 sizeof(payload_header));
124 if (nwrite !=
sizeof(payload_header)) {
127 nwrite =
WriteAll(d,
reinterpret_cast<const char*
>(data_to_send.data()),
128 data_to_send.size());
129 if (nwrite != data_to_send.size()) {
Definition: shared_fd.h:129
#define ConfUiLog(LOG_LEVEL)
Definition: utils.h:61
ResponseHeader header
Definition: incremental_server.cpp:0
@ ERROR
Definition: logging.h:92
Payload ToPayload(const std::string &cmd_str, const std::string &session_id, Args &&... args)
Definition: packet.h:82
void AppendToBuffer(Buffer &buffer, Args &&... args)
Definition: packet.h:66
std::vector< int > MakeSizeHeader(Args &&... args)
Definition: packet.h:73
std::tuple< PayloadHeader, BufferType > Payload
Definition: packet_types.h:34
std::optional< ParsedPacket > ReadPayload(SharedFD s)
Definition: packet.cpp:145
bool WritePayload(SharedFD d, const std::string &cmd_str, const std::string &session_id, Args &&... args)
Definition: packet.h:110
std::string ArgsToString(Args &&... args)
Definition: utils.h:51
Definition: alloc_utils.cpp:23
ssize_t WriteAll(SharedFD fd, const char *buf, size_t size)
Definition: shared_buf.cc:34
std::vector< std::string_view > Args
Definition: incremental.h:28