void send_fastpath_data(InStream & data) { StaticOutStream<TRANSPARENT_CHUNK_HEADER_SIZE> header; this->make_chunk_header(header, CHUNK_TYPE_FASTPATH, data.get_capacity()); assert(header.get_offset() == header.get_capacity()); this->t->send(header.get_data(), header.get_capacity()); this->t->send(data.get_data(), data.get_capacity()); }
void send_data_indication_ex(uint16_t channelId, uint8_t const * packet_data, std::size_t packet_size) { constexpr unsigned payload_size = 2; StaticOutStream<TRANSPARENT_CHUNK_HEADER_SIZE + payload_size> header; this->make_chunk_header(header, CHUNK_TYPE_SLOWPATH, payload_size + packet_size); header.out_uint16_le(channelId); assert(header.get_offset() == header.get_capacity()); this->t->send(header.get_data(), header.get_offset()); this->t->send(packet_data, packet_size); }
void send_meta_chunk() { const uint8_t trm_format_version = 0; constexpr unsigned payload_size = 1; StaticOutStream<TRANSPARENT_CHUNK_HEADER_SIZE + payload_size> header; this->make_chunk_header(header, CHUNK_TYPE_META, payload_size); header.out_uint8(trm_format_version); assert(header.get_offset() == header.get_capacity()); this->t->send(header.get_data(), header.get_offset()); }
void server_resize(uint16_t width, uint16_t height, uint8_t bpp) { constexpr unsigned payload_size = 5; StaticOutStream<TRANSPARENT_CHUNK_HEADER_SIZE + payload_size> header; this->make_chunk_header(header, CHUNK_TYPE_RESIZE, payload_size); header.out_uint16_le(width); header.out_uint16_le(height); header.out_uint8(bpp); assert(header.get_offset() == header.get_capacity()); this->t->send(header.get_data(), header.get_offset()); }
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); }