libpqxx
pqxx::largeobject_streambuf< CHAR, TRAITS > Class Template Reference

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

#include <largeobject.hxx>

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=std::ios::in|std::ios::out, size_type BufSize=512)
 
 largeobject_streambuf (dbtransaction &T, oid O, openmode mode=std::ios::in|std::ios::out, size_type BufSize=512)
 
virtual ~largeobject_streambuf () noexcept
 
void process_notice (const std::string &s)
 For use by large object stream classes. More...
 

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=EoF()) override
 
virtual int_type underflow () override
 

Detailed Description

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

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

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 provides similar access to large objects, so they can be read and written using the same stream classes.

Warning
This class may not work properly in compiler environments that don't fully support Standard-compliant streambufs, such as g++ 2.95 or older.

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 = std::ios::in|std::ios::out,
size_type  BufSize = 512 
)

◆ 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 = std::ios::in|std::ios::out,
size_type  BufSize = 512 
)

◆ ~largeobject_streambuf()

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

Member Function Documentation

◆ overflow()

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

◆ process_notice()

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

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   
)
overrideprotectedvirtual

◆ seekpos()

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

◆ sync()

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

◆ underflow()

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

The documentation for this class was generated from the following file: