1 #ifndef PROTON_BYTE_ARRAY_HPP 
    2 #define PROTON_BYTE_ARRAY_HPP 
   23 #include "./internal/export.hpp" 
   24 #include "./internal/comparable.hpp" 
   27 #include <proton/type_compat.h> 
   38 PN_CPP_EXTERN 
void print_hex(std::ostream& o, 
const uint8_t* p, 
size_t n);
 
   45 template <
size_t N> 
class byte_array : 
private internal::comparable<byte_array<N> > {
 
   49     typedef uint8_t                                   value_type;
 
   50     typedef value_type*                       pointer;
 
   51     typedef const value_type*                         const_pointer;
 
   52     typedef value_type&                           reference;
 
   53     typedef const value_type&                     const_reference;
 
   54     typedef value_type*                       iterator;
 
   55     typedef const value_type*                 const_iterator;
 
   56     typedef std::size_t                           size_type;
 
   57     typedef std::ptrdiff_t                            difference_type;
 
   58     typedef std::reverse_iterator<iterator>       reverse_iterator;
 
   59     typedef std::reverse_iterator<const_iterator>     const_reverse_iterator;
 
   66     static size_t size() { 
return N; }
 
   70     value_type* begin() { 
return bytes_; }
 
   71     value_type* end() { 
return bytes_+N; }
 
   72     value_type& operator[](
size_t i) { 
return bytes_[i]; }
 
   74     const value_type* begin()
 const { 
return bytes_; }
 
   75     const value_type* end()
 const { 
return bytes_+N; }
 
   76     const value_type& operator[](
size_t i)
 const { 
return bytes_[i]; }
 
   82       return std::equal(x.begin(), x.end(), y.begin());
 
   86       return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end());
 
   92       internal::print_hex(o, b.begin(), b.
size());
 
Arbitrary fixed-size data.
Definition: byte_array.hpp:45
byte_array()
Zero-initialized byte array.
Definition: byte_array.hpp:63
static size_t size()
Size of the array.
Definition: byte_array.hpp:66
friend std::ostream & operator<<(std::ostream &o, const byte_array &b)
Print byte array in hex.
Definition: byte_array.hpp:91
The main Proton namespace.
Definition: annotation_key.hpp:33
Forward declarations for Proton types used to represent AMQP types.