#ifndef ACCUMULATE_SUM_2019_01_11_H #define ACCUMULATE_SUM_2019_01_11_H #include namespace al { namespace crypto { namespace stream { namespace accumulate { template class accumulate_sum : public al::crypto::stream::accumulate::accumulate_base { public: accumulate_sum() : my_sum(0U) { } accumulate_sum(const result_type& val) : my_sum(val) { } virtual ~accumulate_sum() { } virtual void initialize() { } void initialize(const result_type& val) { } virtual void process_data(const std::uint8_t* message, const std::size_t count) { for(std::size_t i = 0U; i < count; ++i) { my_sum += message[i]; } } virtual void finalize() { } result_type get_result() const { return my_sum; } private: result_type my_sum; }; } } } } // al::crypto::stream::accumulate #endif // ACCUMULATE_SUM_2019_01_11_H