pqxx::largeobject Class Reference

Identity of a large object. More...

`#include <largeobject.hxx>`

Inheritance diagram for pqxx::largeobject:
[legend]

## Public Types

using | size_type = large_object_size_type

## Public Member Functions

| largeobject () noexcept=default
| largeobject (dbtransaction &t)
| Create new large object.
| largeobject (oid o) noexcept
| Wrap object with given oid.
| largeobject (dbtransaction &t, std::string_view file)
| Import large object from a local file.
| largeobject (largeobjectaccess const &o) noexcept
| Take identity of an opened large object.
oid | id () const noexcept
| Object identifier.

## Identity comparisons

These operators compare the object identifiers of large objects. This has nothing to do with the objects' actual contents; use them only for keeping track of containers of references to large objects and such.
bool | operator== (largeobject const &other) const
| Compare object identities.
bool | operator!= (largeobject const &other) const
| Compare object identities.
bool | operator<= (largeobject const &other) const
| Compare object identities.
bool | operator>= (largeobject const &other) const
| Compare object identities.
bool | operator< (largeobject const &other) const
| Compare object identities.
bool | operator> (largeobject const &other) const
| Compare object identities.
void | to_file (dbtransaction &t, std::string_view file) const
| Export large object's contents to a local file.
void | remove (dbtransaction &t) const
| Delete large object from database.
static PQXX_PURE internal::pq::PGconn * | raw_connection (dbtransaction const &T)
std::string | reason (connection const &, int err) const

## Detailed Description

Identity of a large object.

Deprecated:
  Use the blob class instead.

Encapsulates the identity of a large object.

A largeobject must be accessed only from within a backend transaction, but the object's identity remains valid as long as the object exists.

## Member Typedef Documentation

## size_type

using pqxx::largeobject::size_type = large_object_size_type

## Constructor & Destructor Documentation

## largeobject() [1/5]

pqxx::largeobject::largeobject | ( |  | ) |

default noexcept

Refer to a nonexistent large object (similar to what a null pointer does).

## largeobject() [2/5]

PQXX_COLD pqxx::largeobject::largeobject | ( | dbtransaction & | t | ) |

explicit

Create new large object.

Parameters

  t | Backend transaction in which the object is to be created.

References pqxx::transaction_base::conn(), pqxx::oid_none, raw_connection(), and reason().

## largeobject() [3/5]

pqxx::largeobject::largeobject | ( | oid | o | ) |

explicit noexcept

Wrap object with given oid.

Convert combination of a transaction and object identifier into a large object identity. Does not affect the database.

Parameters

  o | Object identifier for the given object.

## largeobject() [4/5]

PQXX_COLD pqxx::largeobject::largeobject | ( | dbtransaction & | t,
|  | std::string_view | file
| ) |  |

Import large object from a local file.

Creates a large object containing the data found in the given file.

Parameters

  t | Backend transaction in which the large object is to be created.
  file | A filename on the client program's filesystem.

References pqxx::transaction_base::conn(), and pqxx::oid_none.

## largeobject() [5/5]

PQXX_COLD pqxx::largeobject::largeobject | ( | largeobjectaccess const & | o | ) |

noexcept

Take identity of an opened large object.

Copy identity of already opened large object. Note that this may be done as an implicit conversion.

Parameters

  o | Already opened large object to copy identity from.

## Member Function Documentation

## id()

oid pqxx::largeobject::id | ( |  | ) | const

noexcept

Object identifier.

The number returned by this function identifies the large object in the database we're connected to (or oid_none is returned if we refer to the null object).

## operator!=()

bool pqxx::largeobject::operator!= | ( | largeobject const & | other | ) | const

Compare object identities.

Warning
  Only valid between large objects in the same database.

## operator<()

bool pqxx::largeobject::operator< | ( | largeobject const & | other | ) | const

Compare object identities.

Warning
  Only valid between large objects in the same database.

## operator<=()

bool pqxx::largeobject::operator<= | ( | largeobject const & | other | ) | const

Compare object identities.

Warning
  Only valid between large objects in the same database.

## operator==()

bool pqxx::largeobject::operator== | ( | largeobject const & | other | ) | const

Compare object identities.

Warning
  Only valid between large objects in the same database.

## operator>()

bool pqxx::largeobject::operator> | ( | largeobject const & | other | ) | const

Compare object identities.

Warning
  Only valid between large objects in the same database.

## operator>=()

bool pqxx::largeobject::operator>= | ( | largeobject const & | other | ) | const

Compare object identities.

Warning
  Only valid between large objects in the same database.

## raw_connection()

pqxx::internal::pq::PGconn *PQXX_COLD pqxx::largeobject::raw_connection | ( | dbtransaction const & | T | ) |

static protected

References pqxx::transaction_base::conn().

Referenced by largeobject(), and pqxx::largeobjectaccess::operator=().

## reason()

std::string PQXX_COLD pqxx::largeobject::reason | ( | connection const & | c,
|  | int | err
| ) |  | const

protected

Referenced by largeobject().

## remove()

void PQXX_COLD pqxx::largeobject::remove | ( | dbtransaction & | t | ) | const

Delete large object from database.

Unlike its low-level equivalent cunlink, this will throw an exception if deletion fails.

Parameters

  t | Transaction in which the object is to be deleted

References pqxx::oid_none.

## to_file()

void PQXX_COLD pqxx::largeobject::to_file | ( | dbtransaction & | t,
|  | std::string_view | file
| ) |  | const

Export large object's contents to a local file.

Writes the data stored in the large object to the given file.

Parameters

  t | Transaction in which the object is to be accessed
  file | A filename on the client's filesystem

References pqxx::transaction_base::conn(), and pqxx::oid_none.

Referenced by pqxx::largeobjectaccess::to_file().

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

- largeobject.hxx
- largeobject.cxx