libpqxx
|
Binary data corresponding to PostgreSQL's "BYTEA" binary-string type. More...
#include <binarystring.hxx>
Public Types | |
using | char_type = unsigned char |
using | value_type = std::char_traits< char_type >::char_type |
using | size_type = size_t |
using | difference_type = long |
using | const_reference = const value_type & |
using | const_pointer = const value_type * |
using | const_iterator = const_pointer |
using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
Public Member Functions | |
binarystring (const binarystring &)=default | |
binarystring (const field &) | |
Read and unescape bytea field. More... | |
binarystring (const std::string &) | |
Copy binary data from std::string. More... | |
binarystring (const void *, size_t) | |
Copy binary data of given length straight out of memory. More... | |
size_type | size () const noexcept |
Size of converted string in bytes. More... | |
size_type | length () const noexcept |
Size of converted string in bytes. More... | |
bool | empty () const noexcept |
const_iterator | begin () const noexcept |
const_iterator | cbegin () const noexcept |
const_iterator | end () const noexcept |
const_iterator | cend () const noexcept |
const_reference | front () const noexcept |
const_reference | back () const noexcept |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | crbegin () const |
const_reverse_iterator | rend () const |
const_reverse_iterator | crend () const |
const value_type * | data () const noexcept |
Unescaped field contents. More... | |
const_reference | operator[] (size_type i) const noexcept |
PQXX_PURE bool | operator== (const binarystring &) const noexcept |
bool | operator!= (const binarystring &rhs) const noexcept |
binarystring & | operator= (const binarystring &) |
const_reference | at (size_type) const |
Index contained string, checking for valid index. More... | |
void | swap (binarystring &) |
Swap contents with other binarystring. More... | |
const char * | get () const noexcept |
Raw character buffer (no terminating zero is added) More... | |
std::string | str () const |
Read as regular C++ string (may include null characters) More... | |
Binary data corresponding to PostgreSQL's "BYTEA" binary-string type.
This class represents a binary string as stored in a field of type bytea. The raw value returned by a bytea field contains escape sequences for certain characters, which are filtered out by binarystring.
Internally a binarystring is zero-terminated, but it may also contain zero bytes, just like any other byte value. So don't assume that it can be treated as a C-style string unless you've made sure of this yourself.
The binarystring retains its value even if the result it was obtained from is destroyed, but it cannot be copied or assigned.
To convert the other way, i.e. from a raw series of bytes to a string suitable for inclusion as bytea values in your SQL, use the transaction's esc_raw() functions.
using pqxx::binarystring::char_type = unsigned char |
using pqxx::binarystring::const_pointer = const value_type * |
using pqxx::binarystring::const_reference = const value_type & |
using pqxx::binarystring::const_reverse_iterator = std::reverse_iterator<const_iterator> |
using pqxx::binarystring::difference_type = long |
using pqxx::binarystring::size_type = size_t |
using pqxx::binarystring::value_type = std::char_traits<char_type>::char_type |
|
default |
|
explicit |
Read and unescape bytea field.
The field will be zero-terminated, even if the original bytea field isn't.
F | the field to read; must be a bytea field |
References pqxx::field::c_str().
|
explicit |
Copy binary data from std::string.
pqxx::binarystring::binarystring | ( | const void * | binary_data, |
size_t | len | ||
) |
Copy binary data of given length straight out of memory.
pqxx::binarystring::const_reference pqxx::binarystring::at | ( | size_type | n | ) | const |
Index contained string, checking for valid index.
References data(), and pqxx::to_string().
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
const_reverse_iterator pqxx::binarystring::crbegin | ( | ) | const |
const_reverse_iterator pqxx::binarystring::crend | ( | ) | const |
|
noexcept |
Unescaped field contents.
Referenced by at(), operator==(), and pqxx::connection_base::quote().
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
Raw character buffer (no terminating zero is added)
|
noexcept |
Size of converted string in bytes.
|
noexcept |
pqxx::binarystring & pqxx::binarystring::operator= | ( | const binarystring & | rhs | ) |
|
noexcept |
|
noexcept |
const_reverse_iterator pqxx::binarystring::rbegin | ( | ) | const |
const_reverse_iterator pqxx::binarystring::rend | ( | ) | const |
|
noexcept |
Size of converted string in bytes.
Referenced by operator==(), and pqxx::connection_base::quote().
std::string pqxx::binarystring::str | ( | ) | const |
Read as regular C++ string (may include null characters)
void pqxx::binarystring::swap | ( | binarystring & | rhs | ) |
Swap contents with other binarystring.