Accessor for large object's contents. More...
#include <largeobject.hxx>
Public Types | |
typedef long | off_type |
typedef PGSTD::ios::openmode | openmode |
Open mode: in , out (can be combined with the "or" operator) More... | |
typedef size_type | pos_type |
typedef PGSTD::ios::seekdir | seekdir |
Seek direction: beg , cur , end . More... | |
typedef long | size_type |
Public Member Functions | |
largeobjectaccess (dbtransaction &T, openmode mode=PGSTD::ios::in|PGSTD::ios::out) | |
Create new large object and open it. More... | |
largeobjectaccess (dbtransaction &T, oid O, openmode mode=PGSTD::ios::in|PGSTD::ios::out) | |
Open large object with given oid. More... | |
largeobjectaccess (dbtransaction &T, largeobject O, openmode mode=PGSTD::ios::in|PGSTD::ios::out) | |
Open given large object. More... | |
largeobjectaccess (dbtransaction &T, const PGSTD::string &File, openmode mode=PGSTD::ios::in|PGSTD::ios::out) | |
Import large object from a local file and open it. More... | |
~largeobjectaccess () throw () | |
void | to_file (const PGSTD::string &File) const |
Export large object's contents to a local file. More... | |
High-level access to object contents | |
void | write (const char Buf[], size_type Len) |
Write data to large object. More... | |
void | write (const PGSTD::string &Buf) |
Write string to large object. More... | |
size_type | read (char Buf[], size_type Len) |
Read data from large object. More... | |
size_type | seek (size_type dest, seekdir dir) |
Seek in large object's data stream. More... | |
size_type | tell () const |
Report current position in large object's data stream. More... | |
Low-level access to object contents | |
These functions provide a more "C-like" access interface, returning special values instead of throwing exceptions on error. These functions are generally best avoided in favour of the high-level access functions, which behave more like C++ functions should. | |
pos_type | cseek (off_type dest, seekdir dir) throw () |
Seek in large object's data stream. More... | |
off_type | cwrite (const char Buf[], size_type Len) throw () |
Write to large object's data stream. More... | |
off_type | cread (char Buf[], size_type Len) throw () |
Read from large object's data stream. More... | |
pos_type | ctell () const throw () |
Report current position in large object's data stream. More... | |
Error/warning output | |
void | process_notice (const PGSTD::string &) throw () |
Issue message to transaction's notice processor. More... | |
Private Member Functions | |
largeobjectaccess () | |
largeobjectaccess (const largeobjectaccess &) | |
void | close () throw () |
oid | id () const throw () |
Object identifier. More... | |
void | open (openmode mode) |
largeobjectaccess | operator= (const largeobjectaccess &) |
internal::pq::PGconn * | RawConnection () const |
PGSTD::string PQXX_PRIVATE | Reason (int err) const |
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... | |
Static Private Member Functions | |
static internal::pq::PGconn *PQXX_PURE | RawConnection (const dbtransaction &T) |
Private Attributes | |
int | m_fd |
dbtransaction & | m_Trans |
Accessor for large object's contents.
typedef long pqxx::largeobjectaccess::off_type |
typedef PGSTD::ios::openmode pqxx::largeobjectaccess::openmode |
Open mode: in
, out
(can be combined with the "or" operator)
According to the C++ standard, these should be in std::ios_base
. We take them from std::ios
instead, which should be safe because it inherits the same definition, to accommodate gcc 2.95 & 2.96.
typedef PGSTD::ios::seekdir pqxx::largeobjectaccess::seekdir |
Seek direction: beg
, cur
, end
.
According to the C++ standard, these should be in std::ios_base
. We take them from std::ios
instead, which should be safe because it inherits the same definition, to accommodate gcc 2.95 & 2.96.
typedef long pqxx::largeobject::size_type |
|
explicit |
Create new large object and open it.
T | Backend transaction in which the object is to be created |
mode | Access mode, defaults to ios_base::in | ios_base::out |
pqxx::largeobjectaccess::largeobjectaccess | ( | dbtransaction & | T, |
oid | O, | ||
openmode | mode = PGSTD::ios::in|PGSTD::ios::out |
||
) |
Open large object with given oid.
Convert combination of a transaction and object identifier into a large object identity. Does not affect the database.
T | Transaction in which the object is to be accessed |
O | Object identifier for the given object |
mode | Access mode, defaults to ios_base::in | ios_base::out |
pqxx::largeobjectaccess::largeobjectaccess | ( | dbtransaction & | T, |
largeobject | O, | ||
openmode | mode = PGSTD::ios::in|PGSTD::ios::out |
||
) |
Open given large object.
Open a large object with the given identity for reading and/or writing
T | Transaction in which the object is to be accessed |
O | Identity for the large object to be accessed |
mode | Access mode, defaults to ios_base::in | ios_base::out |
pqxx::largeobjectaccess::largeobjectaccess | ( | dbtransaction & | T, |
const PGSTD::string & | File, | ||
openmode | mode = PGSTD::ios::in|PGSTD::ios::out |
||
) |
Import large object from a local file and open it.
Creates a large object containing the data found in the given file.
T | Backend transaction in which the large object is to be created |
File | A filename on the client program's filesystem |
mode | Access mode, defaults to ios_base::in | ios_base::out |
|
inline |
|
private |
|
private |
|
private |
Read from large object's data stream.
Does not throw exception in case of error; inspect return value and errno
instead.
Buf | Area where incoming bytes should be stored |
Len | Number of bytes to read |
Seek in large object's data stream.
Does not throw exception in case of error; inspect return value and errno
instead.
dest | Offset to go to |
dir | Origin to which dest is relative: ios_base::beg (from beginning of the object), ios_base::cur (from current access position), or ios_base;:end (from end of object) |
pos_type pqxx::largeobjectaccess::ctell | ( | ) | const throw () |
Report current position in large object's data stream.
Does not throw exception in case of error; inspect return value and errno
instead.
Write to large object's data stream.
Does not throw exception in case of error; inspect return value and errno
instead.
Buf | Data to write |
Len | Number of bytes to write |
|
inlineinherited |
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).
|
private |
|
inlineinherited |
Compare object identities.
|
inlineinherited |
Compare object identities.
|
inlineinherited |
Compare object identities.
|
private |
|
inlineinherited |
Compare object identities.
|
inlineinherited |
Compare object identities.
|
inlineinherited |
Compare object identities.
void pqxx::largeobjectaccess::process_notice | ( | const PGSTD::string & | ) | throw () |
Issue message to transaction's notice processor.
|
staticprotectedinherited |
|
inlineprivate |
Read data from large object.
Throws an exception if an error occurs while reading.
Buf | Location to store the read data in |
Len | Number of bytes to try and read |
|
private |
|
inherited |
Delete large object from database.
Unlike its low-level equivalent cunlink, this will throw an exception if deletion fails.
T | Transaction in which the object is to be deleted |
Seek in large object's data stream.
Throws an exception if an error occurs.
size_type pqxx::largeobjectaccess::tell | ( | ) | const |
Report current position in large object's data stream.
Throws an exception if an error occurs.
|
inherited |
Export large object's contents to a local file.
Writes the data stored in the large object to the given file.
T | Transaction in which the object is to be accessed |
File | A filename on the client's filesystem |
Referenced by to_file().
|
inline |
Export large object's contents to a local file.
Writes the data stored in the large object to the given file.
File | A filename on the client's filesystem |
References pqxx::largeobject::to_file().
void pqxx::largeobjectaccess::write | ( | const char | Buf[], |
size_type | Len | ||
) |
Write data to large object.
If not all bytes could be written, an exception is thrown.
Buf | Data to write |
Len | Number of bytes from Buf to write |
|
inline |
|
private |
|
private |