libpqxx  v4.0-1
C++ library for PostgreSQL
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pqxx::largeobject Class Reference

Identity of a large object. More...

#include <largeobject.hxx>

Inheritance diagram for pqxx::largeobject:
Collaboration diagram for pqxx::largeobject:

Public Types

typedef long size_type
 

Public Member Functions

 largeobject () throw ()
 Refer to a nonexistent large object (similar to what a null pointer does) More...
 
 largeobject (dbtransaction &T)
 Create new large object. More...
 
 largeobject (oid O) throw ()
 Wrap object with given oid. More...
 
 largeobject (dbtransaction &T, const PGSTD::string &File)
 Import large object from a local file. More...
 
 largeobject (const largeobjectaccess &O) throw ()
 Take identity of an opened large object. More...
 
oid id () const throw ()
 Object identifier. More...
 
void remove (dbtransaction &T) const
 Delete large object from database. More...
 
void to_file (dbtransaction &T, const PGSTD::string &File) const
 Export large object's contents to a local file. More...
 
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== (const largeobject &other) const
 Compare object identities. More...
 
bool operator!= (const largeobject &other) const
 Compare object identities. More...
 
bool operator<= (const largeobject &other) const
 Compare object identities. More...
 
bool operator>= (const largeobject &other) const
 Compare object identities. More...
 
bool operator< (const largeobject &other) const
 Compare object identities. More...
 
bool operator> (const largeobject &other) const
 Compare object identities. More...
 

Protected Member Functions

PGSTD::string Reason (int err) const
 

Static Protected Member Functions

static internal::pq::PGconn
*PQXX_PURE 
RawConnection (const dbtransaction &T)
 

Private Attributes

oid m_ID
 

Detailed Description

Identity of a large object.

This class encapsulates the identity of a large object. To access the contents of the object, create a largeobjectaccess, a largeobject_streambuf, or an ilostream, an olostream or a lostream around the largeobject.

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

Constructor & Destructor Documentation

pqxx::largeobject::largeobject ( ) throw ()

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

pqxx::largeobject::largeobject ( dbtransaction T)
explicit

Create new large object.

Parameters
TBackend transaction in which the object is to be created
pqxx::largeobject::largeobject ( oid  O) throw ()
inlineexplicit

Wrap object with given oid.

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

Parameters
OObject identifier for the given object
pqxx::largeobject::largeobject ( dbtransaction T,
const PGSTD::string &  File 
)

Import large object from a local file.

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

Parameters
TBackend transaction in which the large object is to be created
FileA filename on the client program's filesystem
pqxx::largeobject::largeobject ( const largeobjectaccess O) throw ()

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
OAlready opened large object to copy identity from

Member Function Documentation

oid pqxx::largeobject::id ( ) const throw ()
inline

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

bool pqxx::largeobject::operator!= ( const largeobject other) const
inline

Compare object identities.

Warning
Only valid between large objects in the same database.
bool pqxx::largeobject::operator< ( const largeobject other) const
inline

Compare object identities.

Warning
Only valid between large objects in the same database.
bool pqxx::largeobject::operator<= ( const largeobject other) const
inline

Compare object identities.

Warning
Only valid between large objects in the same database.
bool pqxx::largeobject::operator== ( const largeobject other) const
inline

Compare object identities.

Warning
Only valid between large objects in the same database.
bool pqxx::largeobject::operator> ( const largeobject other) const
inline

Compare object identities.

Warning
Only valid between large objects in the same database.
bool pqxx::largeobject::operator>= ( const largeobject other) const
inline

Compare object identities.

Warning
Only valid between large objects in the same database.
static internal::pq::PGconn* PQXX_PURE pqxx::largeobject::RawConnection ( const dbtransaction T)
staticprotected

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

Here is the caller graph for this function:

PGSTD::string pqxx::largeobject::Reason ( int  err) const
protected
void 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
TTransaction in which the object is to be deleted
void pqxx::largeobject::to_file ( dbtransaction T,
const PGSTD::string &  File 
) const

Export large object's contents to a local file.

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

Parameters
TTransaction in which the object is to be accessed
FileA filename on the client's filesystem

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

Here is the caller graph for this function:

Member Data Documentation

oid pqxx::largeobject::m_ID
private

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