virtual void operator() (uint32_t total_length, uint32_t flags, const uint8_t * chunk_data, uint32_t chunk_data_length) override { LOG(LOG_INFO, "total_length=%u flags=0x%X chunk_data=<%p> chunk_data_length=%u", total_length, flags, static_cast<void const *>(chunk_data), chunk_data_length); StaticOutStream<8> stream; stream.out_uint32_le(total_length); stream.out_uint32_le(flags); this->transport.send(stream.get_data(), stream.get_offset()); this->transport.send(chunk_data, chunk_data_length); }
void send_to_front_channel( const char * const mod_channel_name , uint8_t const * data, size_t length , size_t chunk_size, int flags) { constexpr unsigned payload_size = 9; StaticOutStream<TRANSPARENT_CHUNK_HEADER_SIZE + payload_size> header; uint8_t mod_channel_name_length = strlen(mod_channel_name); this->make_chunk_header(header, CHUNK_TYPE_FRONTCHANNEL, payload_size + mod_channel_name_length + length); header.out_uint8(mod_channel_name_length); header.out_uint16_le(length); header.out_uint16_le(chunk_size); header.out_uint32_le(flags); assert(header.get_offset() == header.get_capacity()); this->t->send(header.get_data(), header.get_offset()); this->t->send(mod_channel_name, mod_channel_name_length); this->t->send(data, length); }