libpqxx
The C++ client library for PostgreSQL
Loading...
Searching...
No Matches
pqxx::largeobject_streambuf< CHAR, TRAITS > Class Template Reference

Accessor for large object's contents. More...

Inheritance diagram for pqxx::largeobject_streambuf< CHAR, TRAITS >:

Public Types

using char_type = CHAR
using traits_type = TRAITS
using int_type = typename traits_type::int_type
using pos_type = typename traits_type::pos_type
using off_type = typename traits_type::off_type
using openmode = largeobjectaccess::openmode
using seekdir = largeobjectaccess::seekdir

Public Member Functions

 largeobject_streambuf (dbtransaction &t, largeobject o, openmode mode=default_mode, size_type buf_size=512)
 largeobject_streambuf (dbtransaction &t, oid o, openmode mode=default_mode, size_type buf_size=512)
 End a code block started by "ignore-deprecated-pre.hxx".
virtual ~largeobject_streambuf () noexcept
void process_notice (zview const &s)
 For use by large object stream classes.

Static Public Attributes

static constexpr auto default_mode
 Default open mode: in, out, binary.

Protected Member Functions

virtual int sync () override
virtual pos_type seekoff (off_type offset, seekdir dir, openmode) override
virtual pos_type seekpos (pos_type pos, openmode) override
virtual int_type overflow (int_type ch) override
virtual int_type overflow ()
virtual int_type underflow () override

Detailed Description

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
class pqxx::largeobject_streambuf< CHAR, TRAITS >

Accessor for large object's contents.

Deprecated
Use the blob class instead.

Streambuf to use large objects in standard I/O streams.

Deprecated
Access large objects directly using the blob class.

The standard streambuf classes provide uniform access to data storage such as files or string buffers, so they can be accessed using standard input or output streams. This streambuf implementation provided similar access to large objects, so they could be read and written using the same stream classes.

This functionality was considered too fragile and complex, so it has been replaced with a single, much simpler class.

Member Typedef Documentation

◆ char_type

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::char_type = CHAR

◆ int_type

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::int_type = typename traits_type::int_type

◆ off_type

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::off_type = typename traits_type::off_type

◆ openmode

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::openmode = largeobjectaccess::openmode

◆ pos_type

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::pos_type = typename traits_type::pos_type

◆ seekdir

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::seekdir = largeobjectaccess::seekdir

◆ traits_type

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
using pqxx::largeobject_streambuf< CHAR, TRAITS >::traits_type = TRAITS

Constructor & Destructor Documentation

◆ largeobject_streambuf() [1/2]

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
pqxx::largeobject_streambuf< CHAR, TRAITS >::largeobject_streambuf ( dbtransaction & t,
largeobject o,
openmode mode = default_mode,
size_type buf_size = 512 )
inline

◆ largeobject_streambuf() [2/2]

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
pqxx::largeobject_streambuf< CHAR, TRAITS >::largeobject_streambuf ( dbtransaction & t,
oid o,
openmode mode = default_mode,
size_type buf_size = 512 )
inline

End a code block started by "ignore-deprecated-pre.hxx".

◆ ~largeobject_streambuf()

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual pqxx::largeobject_streambuf< CHAR, TRAITS >::~largeobject_streambuf ( )
inlinevirtualnoexcept

Member Function Documentation

◆ overflow() [1/2]

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual int_type pqxx::largeobject_streambuf< CHAR, TRAITS >::overflow ( )
inlineprotectedvirtual

◆ overflow() [2/2]

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual int_type pqxx::largeobject_streambuf< CHAR, TRAITS >::overflow ( int_type ch)
inlineoverrideprotectedvirtual

◆ process_notice()

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
void pqxx::largeobject_streambuf< CHAR, TRAITS >::process_notice ( zview const & s)
inline

For use by large object stream classes.

◆ seekoff()

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual pos_type pqxx::largeobject_streambuf< CHAR, TRAITS >::seekoff ( off_type offset,
seekdir dir,
openmode  )
inlineoverrideprotectedvirtual

◆ seekpos()

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual pos_type pqxx::largeobject_streambuf< CHAR, TRAITS >::seekpos ( pos_type pos,
openmode  )
inlineoverrideprotectedvirtual

◆ sync()

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual int pqxx::largeobject_streambuf< CHAR, TRAITS >::sync ( )
inlineoverrideprotectedvirtual

◆ underflow()

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
virtual int_type pqxx::largeobject_streambuf< CHAR, TRAITS >::underflow ( )
inlineoverrideprotectedvirtual

Member Data Documentation

◆ default_mode

template<typename CHAR = char, typename TRAITS = std::char_traits<CHAR>>
auto pqxx::largeobject_streambuf< CHAR, TRAITS >::default_mode
staticconstexpr
Initial value:
{
std::ios::in | std::ios::out | std::ios::binary}

Default open mode: in, out, binary.


The documentation for this class was generated from the following file:
  • /builddir/build/BUILD/libpqxx-7.10.5-build/libpqxx-7.10.5/redhat-linux-build/include/pqxx/largeobject.hxx