示例#1
0
    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());
    }
示例#2
0
    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);
    }
示例#3
0
    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());
    }
示例#4
0
    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());
    }
示例#5
0
    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);
    }