Commit f588d74140b2a86026929aa401c9852ec215d4af

Authored by Jay Berkenbilt
1 parent 3fe6a1f5

Add integer types to Pipeline::operator<<

ChangeLog
  1 +2022-06-05 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Add integer types to pipeline's operator<<: short, int, long,
  4 + long long, unsigned short, unsigned int, unsigned long, unsigned
  5 + long long.
  6 +
1 7 2022-05-30 Jay Berkenbilt <ejb@ql.org>
2 8  
3 9 * qpdf JSON is now at version 2. New command-line arguments:
... ...
include/qpdf/Pipeline.hh
... ... @@ -86,6 +86,24 @@ class QPDF_DLL_CLASS Pipeline
86 86 Pipeline& operator<<(char const* cstr);
87 87 QPDF_DLL
88 88 Pipeline& operator<<(std::string const&);
  89 + // Calls QUtil::int_to_string
  90 + QPDF_DLL
  91 + Pipeline& operator<<(short);
  92 + QPDF_DLL
  93 + Pipeline& operator<<(int);
  94 + QPDF_DLL
  95 + Pipeline& operator<<(long);
  96 + QPDF_DLL
  97 + Pipeline& operator<<(long long);
  98 + // Calls QUtil::uint_to_string
  99 + QPDF_DLL
  100 + Pipeline& operator<<(unsigned short);
  101 + QPDF_DLL
  102 + Pipeline& operator<<(unsigned int);
  103 + QPDF_DLL
  104 + Pipeline& operator<<(unsigned long);
  105 + QPDF_DLL
  106 + Pipeline& operator<<(unsigned long long);
89 107  
90 108 // Overloaded write to reduce casting
91 109 QPDF_DLL
... ...
libqpdf/Pipeline.cc
1 1 #include <qpdf/Pipeline.hh>
2 2  
  3 +#include <qpdf/QUtil.hh>
  4 +
3 5 #include <cstring>
4 6 #include <stdexcept>
5 7  
... ... @@ -52,6 +54,62 @@ Pipeline::operator&lt;&lt;(std::string const&amp; str)
52 54 return *this;
53 55 }
54 56  
  57 +Pipeline&
  58 +Pipeline::operator<<(short i)
  59 +{
  60 + this->writeString(QUtil::int_to_string(i));
  61 + return *this;
  62 +}
  63 +
  64 +Pipeline&
  65 +Pipeline::operator<<(int i)
  66 +{
  67 + this->writeString(QUtil::int_to_string(i));
  68 + return *this;
  69 +}
  70 +
  71 +Pipeline&
  72 +Pipeline::operator<<(long i)
  73 +{
  74 + this->writeString(QUtil::int_to_string(i));
  75 + return *this;
  76 +}
  77 +
  78 +Pipeline&
  79 +Pipeline::operator<<(long long i)
  80 +{
  81 + this->writeString(QUtil::int_to_string(i));
  82 + return *this;
  83 +}
  84 +
  85 +Pipeline&
  86 +Pipeline::operator<<(unsigned short i)
  87 +{
  88 + this->writeString(QUtil::uint_to_string(i));
  89 + return *this;
  90 +}
  91 +
  92 +Pipeline&
  93 +Pipeline::operator<<(unsigned int i)
  94 +{
  95 + this->writeString(QUtil::uint_to_string(i));
  96 + return *this;
  97 +}
  98 +
  99 +Pipeline&
  100 +Pipeline::operator<<(unsigned long i)
  101 +{
  102 + this->writeString(QUtil::uint_to_string(i));
  103 + return *this;
  104 +}
  105 +
  106 +Pipeline&
  107 +Pipeline::operator<<(unsigned long long i)
  108 +{
  109 + this->writeString(QUtil::uint_to_string(i));
  110 + return *this;
  111 +}
  112 +
55 113 void
56 114 Pipeline::write(char const* data, size_t len)
57 115 {
... ...
manual/release-notes.rst
... ... @@ -145,7 +145,8 @@ For a detailed list of changes, please see the file
145 145  
146 146 - ``writeString``: writes a std::string
147 147  
148   - - ``operator <<``: for null-terminated C strings and std::strings
  148 + - ``operator <<``: for null-terminated C strings, std::strings,
  149 + and integer types
149 150  
150 151 - Add new ``Pipeline`` type ``Pl_OStream`` to write to a
151 152 ``std::ostream``.
... ...