#ifndef RANDOM_STREAM_BASE_2020_01_28_H #define RANDOM_STREAM_BASE_2020_01_28_H #include #include #if(__cplusplus >= 201703L) namespace al::crypto::random{ #else namespace al { namespace crypto { namespace random { #endif class random_stream_base { public: random_stream_base(const random_stream_base&) = default; random_stream_base(random_stream_base&&) noexcept = default; virtual ~random_stream_base() = default; auto operator=(const random_stream_base&) -> random_stream_base& = default; auto operator=(random_stream_base&&) noexcept -> random_stream_base& // NOLINT(hicpp-named-parameter,readability-named-parameter) { return *this; } virtual void reseed(const std::uint8_t* = nullptr, const std::size_t = 0U) = 0; // NOLINT(google-default-arguments) virtual void get_bytes(std::uint8_t* output_buffer, const std::size_t count) = 0; protected: random_stream_base() = default; }; #if(__cplusplus >= 201703L) } // namespace al::crypto::random #else } // namespace random } // namespace crypto } // namespace al #endif #endif // RANDOM_STREAM_BASE_2020_01_28_H