From 6c3fb8b6a77dce80130785613aff9f4f29eda9e7 Mon Sep 17 00:00:00 2001 From: Phuntsok Drak-pa Date: Mon, 11 Jun 2018 21:26:05 +0200 Subject: [PATCH] removed [[nodiscard]] and changed chunk binary format --- src/bitpack.cc | 26 ++++++++++++-------------- src/bitpack.hh | 14 ++++++-------- src/io.cc | 4 ++-- src/uncompress.cc | 2 +- src/uncompress.hh | 2 +- 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/bitpack.cc b/src/bitpack.cc index fcc819f..6d26401 100644 --- a/src/bitpack.cc +++ b/src/bitpack.cc @@ -14,7 +14,7 @@ using ustring = std::basic_string; // packing // /////////////////////////////////////////////////////////////////////////////// -[[nodiscard]] vuchar pack(const vuint16 &t_input) { +vuchar pack(const vuint16 &t_input) { return pack_n(t_input.begin(), t_input.end(), 9); } @@ -27,9 +27,8 @@ using ustring = std::basic_string; * \param t_n maximum size of an input value in bits \return Returns a * vector of unsigned char containing the packed values from t_input */ -[[nodiscard]] vuchar -pack_n(const vuint16::const_iterator t_input_begin, - const vuint16::const_iterator t_input_end, const int t_n) { +vuchar pack_n(const vuint16::const_iterator t_input_begin, + const vuint16::const_iterator t_input_end, const int t_n) { #ifdef Debug std::printf("%d bits!\n", t_n); #endif @@ -87,8 +86,8 @@ pack_n(const vuint16::const_iterator t_input_begin, return ret; } -[[nodiscard]] vuchar pack_16(const vuint16::const_iterator t_input_begin, - const vuint16::const_iterator t_input_end) { +vuchar pack_16(const vuint16::const_iterator t_input_begin, + const vuint16::const_iterator t_input_end) { vuchar ret{}; std::for_each(t_input_begin, t_input_end, [&](const auto value) { ret.push_back((value >> 8) & 0xFF); @@ -102,7 +101,7 @@ pack_n(const vuint16::const_iterator t_input_begin, /////////////////////////////////////////////////////////////////////////////// uint16_t mask_n(int t_nb_bits) { - if(t_nb_bits == 0) { + if (t_nb_bits == 0) { return 0; } uint16_t mask = mask_n(t_nb_bits - 1); @@ -111,13 +110,12 @@ uint16_t mask_n(int t_nb_bits) { return mask; } -[[nodiscard]] vuint16 unpack(ustring &&t_input) { +vuint16 unpack(ustring &&t_input) { return unpack_n(t_input.begin(), t_input.end(), 9); } -[[nodiscard]] vuint16 unpack_n(const ustring::const_iterator t_begin, - const ustring::const_iterator t_end, - const int t_n) { +vuint16 unpack_n(const ustring::const_iterator t_begin, + const ustring::const_iterator t_end, const int t_n) { int step = t_n / 8; int left_shift = 0; int right_shift = 0; @@ -143,7 +141,7 @@ uint16_t mask_n(int t_nb_bits) { current_char |= *(++it) >> right_shift; // char made! ret.push_back(current_char &= mask); - if(right_shift == 0) { + if (right_shift == 0) { ++it; } if (current_char >= max_value) { @@ -155,8 +153,8 @@ uint16_t mask_n(int t_nb_bits) { return ret; } -[[nodiscard]] vuint16 unpack_16(const ustring::const_iterator t_begin, - const ustring::const_iterator t_end) { +vuint16 unpack_16(const ustring::const_iterator t_begin, + const ustring::const_iterator t_end) { vuint16 ret{}; for (auto it = t_begin; it < t_end; ++it) { ret.push_back(static_cast((*it << 8) | *(++it))); diff --git a/src/bitpack.hh b/src/bitpack.hh index 1026d22..e3d37d2 100644 --- a/src/bitpack.hh +++ b/src/bitpack.hh @@ -11,27 +11,25 @@ #include /// \brief Bat-packs the input dynamically -[[nodiscard]] std::vector -pack(const std::vector &); +std::vector pack(const std::vector &); /// \brief Packs std::uint16_t of n bits into unsigned char -[[nodiscard]] std::vector +std::vector pack_n(const std::vector::const_iterator, const std::vector::const_iterator, const int); /// \brief Specialization of \ref pack_n for 16bits -[[nodiscard]] std::vector +std::vector pack_16(const std::vector::const_iterator, const std::vector::const_iterator); -[[nodiscard]] std::vector -unpack(std::basic_string &&); +std::vector unpack(std::basic_string &&); -[[nodiscard]] std::vector +std::vector unpack_n(const std::basic_string::const_iterator, const std::basic_string::const_iterator, const int t_n); -[[nodiscard]] std::vector +std::vector unpack_16(const std::basic_string::const_iterator, const std::basic_string::const_iterator); diff --git a/src/io.cc b/src/io.cc index f89d11a..2d156b0 100644 --- a/src/io.cc +++ b/src/io.cc @@ -29,7 +29,7 @@ using vvuint16 = vector; * taille des chunks\n * \n * Un chunk est composé de la manière qui suit :\n - * - Sur deux octets sont écrit un `uint16_t` déterminant le nombre d’octets + * - Sur deux octets sont écrit un `uint32_t` déterminant le nombre d’octets * composant le chunk\n * - Sur le nombre d’octets précisés par le header du chunk se trouvent les * données compressées par l’algorithme lzw puis via bit-packing.\n @@ -59,7 +59,7 @@ void write_file(FILE *const t_out, const vvuint16 &t_text) { */ void write_chunk(FILE *const t_out, const vuint16 &t_chunk) { const auto output = pack(t_chunk); - const auto chunk_size = static_cast(output.size()); + const auto chunk_size = static_cast(output.size()); fwrite(&chunk_size, sizeof(chunk_size), 1, t_out); fwrite(output.data(), sizeof(output[0]), output.size(), t_out); } diff --git a/src/uncompress.cc b/src/uncompress.cc index 7bef079..00d7e8f 100644 --- a/src/uncompress.cc +++ b/src/uncompress.cc @@ -14,7 +14,7 @@ using std::vector; using ustring = std::basic_string; using vuint16 = vector; -[[nodiscard]] ustring lzw_uncompress(vuint16 &&t_compressed) { +ustring lzw_uncompress(vuint16 &&t_compressed) { ustring ret{}; uint16_t old = 0; diff --git a/src/uncompress.hh b/src/uncompress.hh index 2519e6b..ac6ae0c 100644 --- a/src/uncompress.hh +++ b/src/uncompress.hh @@ -5,7 +5,7 @@ #include #include -[[nodiscard]] std::basic_string +std::basic_string lzw_uncompress(std::vector &&); void uncompress(const std::string &, const char*);