diff options
Diffstat (limited to 'src/interfaces/libpq++/pglobject.cc')
-rw-r--r-- | src/interfaces/libpq++/pglobject.cc | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/interfaces/libpq++/pglobject.cc b/src/interfaces/libpq++/pglobject.cc deleted file mode 100644 index 5db38d74a5d..00000000000 --- a/src/interfaces/libpq++/pglobject.cc +++ /dev/null @@ -1,180 +0,0 @@ -/*------------------------------------------------------------------------- -* -* FILE -* pglobject.cc -* -* DESCRIPTION -* implementation of the PgLargeObject class. -* PgLargeObject encapsulates a frontend to backend connection -* -* Copyright (c) 1994, Regents of the University of California -* -* IDENTIFICATION -* $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pglobject.cc,v 1.11 2002/07/02 16:32:19 momjian Exp $ -* -*------------------------------------------------------------------------- -*/ - -#include "pglobject.h" - -extern "C" -{ -#include "libpq/libpq-fs.h" -} - -#ifdef HAVE_NAMESPACE_STD -using namespace std; -#endif - - -// **************************************************************** -// -// PgLargeObject Implementation -// -// **************************************************************** -// default constructor -// creates a large object in the default database -// See PQconnectdb() for conninfo usage -PgLargeObject::PgLargeObject(const char* conninfo) - : PgConnection(conninfo) -{ - Init(); - if (! ConnectionBad()) - { - Create(); - Open(); - } -} - -// constructor -// open an existing large object in the default database -// See PQconnectdb() for conninfo usage -PgLargeObject::PgLargeObject(Oid lobjId, const char* conninfo) - : PgConnection(conninfo) -{ - Init(lobjId); - if (! ConnectionBad()) - { - if ( !pgObject ) - Create(); - Open(); - } -} - -// destructor -- closes large object -PgLargeObject::~PgLargeObject() -{ - Close(); -} - -// PgLargeObject::Init -// Initialize the variables -void PgLargeObject::Init(Oid lobjId) -{ - pgFd = -1; - pgObject = lobjId; -} - -// PgLargeObject::create -// create large object and check for errors -void PgLargeObject::Create() -{ - // Create the object - pgObject = lo_creat(pgConn, INV_READ | INV_WRITE); - - // Check for possible errors - if (!pgObject) - loStatus = "PgLargeObject: can't create large object" ; - else - loStatus = "PgLargeObject: created large object" ; -} - -// PgLargeObject::open -// open large object and check for errors -void PgLargeObject::Open() -{ - // Close any prior object - Close(); - // Open the object - pgFd = lo_open(pgConn, pgObject, INV_READ | INV_WRITE); - - // Check for possible errors - string objStr( IntToString(pgObject) ); - if (pgFd < 0) - loStatus = "PgLargeObject: can't open large object " + objStr ; - else - loStatus = "PgLargeObject: created and opened large object " + objStr ; -} - -// PgLargeObject::unlink -// destroy large object and delete from it from the database -int PgLargeObject::Unlink() -{ - // Unlink the object - int temp = lo_unlink(pgConn, pgObject); - - // Initialize the large object upon success - if (!temp) - { - Close(); - Init(); - } - - // Return the status - return temp; -} - - -void PgLargeObject::Close() -{ - if (pgFd >= 0) - lo_close(pgConn, pgFd); - pgFd = -1; -} - - -int PgLargeObject::Read(char* buf, int len) -{ - return lo_read(pgConn, pgFd, buf, len); -} - - -int PgLargeObject::Write(const char* buf, int len) -{ - return lo_write(pgConn, pgFd, (char*)buf, len); -} - - -int PgLargeObject::LSeek(int offset, int whence) -{ - return lo_lseek(pgConn, pgFd, offset, whence); -} - - -int PgLargeObject::Tell() const -{ - return lo_tell(pgConn, pgFd); -} - - -Oid PgLargeObject::Import(const char* filename) -{ - return pgObject = lo_import(pgConn, filename); -} - - -int PgLargeObject::Export(const char* filename) -{ - return lo_export(pgConn, pgObject, filename); -} - - -string PgLargeObject::Status() const -{ - return loStatus; -} - -Oid PgLargeObject::LOid() -{ - return pgObject; -} |