60template <
typename Buffer,
typename...
Args>
62 (buffer.insert(buffer.end(), std::begin(std::forward<Args>(args)),
63 std::end(std::forward<Args>(args))),
67template <
typename...
Args>
69 std::vector<int> lengths;
70 (lengths.push_back(std::distance(std::begin(args), std::end(args))), ...);
76template <
typename...
Args>
80 constexpr auto n_args =
sizeof...(Args);
82 ss <<
ArgsToString(session_id,
":", cmd_str,
":", n_args,
":");
84 std::vector<int> size_info =
86 for (
const auto sz : size_info) {
89 std::string
header = ss.str();
90 std::vector<uint8_t> payload_buffer{
header.begin(),
header.end()};
95 return {ph, payload_buffer};
105template <
typename...
Args>
107 const std::string& session_id,
Args&&... args) {
114 auto [payload_header, data_to_send] =
116 const std::string data_in_str(data_to_send.cbegin(), data_to_send.cend());
118 auto nwrite =
WriteAll(d,
reinterpret_cast<const char*
>(&payload_header),
119 sizeof(payload_header));
120 if (nwrite !=
sizeof(payload_header)) {
123 nwrite =
WriteAll(d,
reinterpret_cast<const char*
>(data_to_send.data()),
124 data_to_send.size());
125 if (nwrite != data_to_send.size()) {
Definition: shared_fd.h:124
#define ConfUiLog(LOG_LEVEL)
Definition: utils.h:60
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:77
void AppendToBuffer(Buffer &buffer, Args &&... args)
Definition: packet.h:61
std::vector< int > MakeSizeHeader(Args &&... args)
Definition: packet.h:68
Definition: packet.cpp:33
std::tuple< PayloadHeader, BufferType > Payload
Definition: packet_types.h:33
std::optional< ParsedPacket > ReadPayload(SharedFD s)
Definition: packet.cpp:153
bool WritePayload(SharedFD d, const std::string &cmd_str, const std::string &session_id, Args &&... args)
Definition: packet.h:106
std::string ArgsToString(Args &&... args)
Definition: utils.h:50
ssize_t WriteAll(SharedFD fd, const char *buf, size_t size)
Definition: shared_buf.cc:27
std::vector< std::string_view > Args
Definition: incremental.h:28