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 >:
[legend]

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

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

## 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`
| ) |  |

## ~largeobject_streambuf()

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

virtual pqxx::largeobject_streambuf< CHAR, TRAITS >::~largeobject_streambuf | ( |  | ) |

virtual noexcept

## 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 | ( |  | ) |

protected virtual

References pqxx::largeobject_streambuf< CHAR, TRAITS >::overflow().

Referenced by pqxx::largeobject_streambuf< CHAR, TRAITS >::overflow().

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

override protected virtual

References pqxx::internal::cmp_less_equal().

## process_notice()

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

void pqxx::largeobject_streambuf< CHAR, TRAITS >::process_notice | ( | zview const & | 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 |
| ) |  |

override protected virtual

## seekpos()

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

virtual pos_type pqxx::largeobject_streambuf< CHAR, TRAITS >::seekpos | ( | pos_type | pos,
|  | openmode |
| ) |  |

override protected virtual

## sync()

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

virtual int pqxx::largeobject_streambuf< CHAR, TRAITS >::sync | ( |  | ) |

override protected virtual

## underflow()

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

virtual int_type pqxx::largeobject_streambuf< CHAR, TRAITS >::underflow | ( |  | ) |

override protected virtual

## Member Data Documentation

## default_mode

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

constexpr auto pqxx::largeobject_streambuf< CHAR, TRAITS >::default_mode

static constexpr

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:

- largeobject.hxx