swh:1:snp:c5bf432a14aa161ff2aa6dbfa38448152293ebb1
Raw File
Tip revision: 066e17e639622fc38b753e2825cd780b38b0911e authored by Karel Kubicek on 29 May 2018, 07:47:56 UTC
Added support for block ciphers decryption by "encryption_mode": false. (#75)
Tip revision: 066e17e
stream.h
#pragma once

#include <eacirc-core/dataset.h>
#include <eacirc-core/json.h>
#include <eacirc-core/logger.h>
#include <eacirc-core/view.h>
#include <vector>

using value_type = std::uint8_t;
using vec_cview = view<std::vector<value_type>::const_iterator>;
using vec_view = view<std::vector<value_type>::iterator>;

struct stream {
    virtual ~stream() = default;

    virtual vec_cview next() = 0;

    vec_cview get_data() const { return make_cview(_data); }

    void set_data(vec_cview data) { std::copy(data.begin(), data.end(), _data.begin()); }

    std::size_t osize() const { return _osize; }

protected:
    stream(const std::size_t osize)
        : _data(osize)
        , _osize(osize) {}

    std::vector<value_type> _data;

private:
    const std::size_t _osize;
};
back to top