]> granicus.if.org Git - postgresql/commitdiff
Indent libpq++ as mentioned in email. Format was terrible, and this
authorBruce Momjian <bruce@momjian.us>
Tue, 2 Jul 2002 16:32:19 +0000 (16:32 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 2 Jul 2002 16:32:19 +0000 (16:32 +0000)
will make fixing things easier.

19 files changed:
src/interfaces/libpq++/examples/testlibpq0.cc
src/interfaces/libpq++/examples/testlibpq1.cc
src/interfaces/libpq++/examples/testlibpq2.cc
src/interfaces/libpq++/examples/testlibpq3.cc
src/interfaces/libpq++/examples/testlibpq4.cc
src/interfaces/libpq++/examples/testlibpq5.cc
src/interfaces/libpq++/examples/testlibpq6.cc
src/interfaces/libpq++/examples/testlo.cc
src/interfaces/libpq++/libpq++.h
src/interfaces/libpq++/pgconnection.cc
src/interfaces/libpq++/pgconnection.h
src/interfaces/libpq++/pgcursordb.cc
src/interfaces/libpq++/pgcursordb.h
src/interfaces/libpq++/pgdatabase.cc
src/interfaces/libpq++/pgdatabase.h
src/interfaces/libpq++/pglobject.cc
src/interfaces/libpq++/pglobject.h
src/interfaces/libpq++/pgtransdb.cc
src/interfaces/libpq++/pgtransdb.h

index 041ced557fc40b6814448277b03578d5bc0bac65..24fb03fc785c670cbbc679dca204d6184c4cb347 100644 (file)
@@ -1,52 +1,53 @@
 /*-------------------------------------------------------------------------
- *
- * testlibpq0.c--
- *    small test program for libpq++, 
- * small interactive loop where queries can be entered interactively
- * and sent to the backend
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq++/examples/Attic/testlibpq0.cc,v 1.6 2000/05/29 21:25:04 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* testlibpq0.c--
+*       small test program for libpq++,
+* small interactive loop where queries can be entered interactively
+* and sent to the backend
+*
+* Copyright (c) 1994, Regents of the University of California
+*
+*
+* IDENTIFICATION
+*       $Header: /cvsroot/pgsql/src/interfaces/libpq++/examples/Attic/testlibpq0.cc,v 1.7 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
 
 #include <iostream.h>
 #include "libpq++.h"
 
 int main()
 {
-  // Open the connection to the database and make sure it's OK
-  PgDatabase data("dbname=template1");
-  if ( data.ConnectionBad() ) {
-      cout << "Connection was unsuccessful..." << endl
-           << "Error message returned: " << data.ErrorMessage() << endl;
-      return 1;
-  }
-  else
-      cout << "Connection successful...  Enter queries below:" << endl;
-    
-  // Interactively obtain and execute queries
-  ExecStatusType status;
-  string buf;
-  int done = 0;
-  while (!done)
-    {
-      cout << "> ";
-      cout.flush();
-      getline(cin, buf);
-      if ( buf != "" )
-              if ( (status = data.Exec( buf.c_str() )) == PGRES_TUPLES_OK ) 
-                 data.DisplayTuples();
-              else
-                 cout << "No tuples returned..." << endl
-                      << "status = " << status << endl
-                      << "Error returned: " << data.ErrorMessage() << endl;
-      else
-              done = 1;
-      }
-  return 0;
+       // Open the connection to the database and make sure it's OK
+       PgDatabase data("dbname=template1");
+       if ( data.ConnectionBad() )
+       {
+               cout << "Connection was unsuccessful..." << endl
+               << "Error message returned: " << data.ErrorMessage() << endl;
+               return 1;
+       }
+       else
+               cout << "Connection successful...  Enter queries below:" << endl;
+
+       // Interactively obtain and execute queries
+       ExecStatusType status;
+       string buf;
+       int done = 0;
+       while (!done)
+       {
+               cout << "> ";
+               cout.flush();
+               getline(cin, buf);
+               if ( buf != "" )
+                       if ( (status = data.Exec( buf.c_str() )) == PGRES_TUPLES_OK )
+                               data.DisplayTuples();
+                       else
+                               cout << "No tuples returned..." << endl
+                               << "status = " << status << endl
+                               << "Error returned: " << data.ErrorMessage() << endl;
+               else
+                       done = 1;
+       }
+       return 0;
 } // End main()
index 5c71c906b9fcb62bfcebf304208be9d7f9e454be..f6469b8a3a1dffc0bd946d5d274c5968f731d874 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * testlibpq1.cc
- *     Test the C++ version of LIBPQ, the POSTGRES frontend library.
- *
- *  queries the template1 database for a list of database names 
- *
- */
+* testlibpq1.cc
+     Test the C++ version of LIBPQ, the POSTGRES frontend library.
+*
+*  queries the template1 database for a list of database names
+*
+*/
 
 #include <iostream.h>
 #include <iomanip.h>
 
 int main()
 {
-  // Begin, by establishing a connection to the backend.
-  // When no parameters are given then the system will
-  // try to use reasonable defaults by looking up environment variables 
-  // or, failing that, using hardwired constants
-  const char* dbName = "dbname=template1";
-  PgDatabase data(dbName);
+       // Begin, by establishing a connection to the backend.
+       // When no parameters are given then the system will
+       // try to use reasonable defaults by looking up environment variables
+       // or, failing that, using hardwired constants
+       const char* dbName = "dbname=template1";
+       PgDatabase data(dbName);
 
-  // check to see that the backend connection was successfully made
-  if ( data.ConnectionBad() ) {
-      cerr << "Connection to database '" << dbName << "' failed." << endl
-           << "Error returned: " << data.ErrorMessage() << endl;
-      exit(1);
-  }
+       // check to see that the backend connection was successfully made
+       if ( data.ConnectionBad() )
+       {
+               cerr << "Connection to database '" << dbName << "' failed." << endl
+               << "Error returned: " << data.ErrorMessage() << endl;
+               exit(1);
+       }
 
-  // start a transaction block
-  if ( !data.ExecCommandOk("BEGIN") ) {
-    cerr << "BEGIN command failed" << endl;
-    exit(1);
-  }
+       // start a transaction block
+       if ( !data.ExecCommandOk("BEGIN") )
+       {
+               cerr << "BEGIN command failed" << endl;
+               exit(1);
+       }
 
-  // submit command to the backend
-  if ( !data.ExecCommandOk("DECLARE myportal CURSOR FOR select * from pg_database") ) {
-    cerr << "DECLARE CURSOR command failed" << endl;
-    exit(1);
-  }
+       // submit command to the backend
+       if ( !data.ExecCommandOk("DECLARE myportal CURSOR FOR select * from pg_database") )
+       {
+               cerr << "DECLARE CURSOR command failed" << endl;
+               exit(1);
+       }
 
-  // fetch instances from the pg_database, the system catalog of databases
-  if ( !data.ExecTuplesOk("FETCH ALL in myportal") ) {
-    cerr << "FETCH ALL command didn't return tuples properly" << endl;
-    exit(1);
-  }
-  // first, print out the attribute names
-  int nFields = data.Fields();
-  for (int i=0; i < nFields; i++)
-      cout << setiosflags(ios::right) << setw(15) << data.FieldName(i);
-  cout << endl << endl;
+       // fetch instances from the pg_database, the system catalog of databases
+       if ( !data.ExecTuplesOk("FETCH ALL in myportal") )
+       {
+               cerr << "FETCH ALL command didn't return tuples properly" << endl;
+               exit(1);
+       }
 
-  // next, print out the instances
-  for (int i=0; i < data.Tuples(); i++) {
-       for (int j=0; j < nFields; j++)
-            cout << setiosflags(ios::right) << setw(15) << data.GetValue(i,j);
-       cout << endl;
-  }
+       // first, print out the attribute names
+       int nFields = data.Fields();
+       for (int i = 0; i < nFields; i++)
+               cout << setiosflags(ios::right) << setw(15) << data.FieldName(i);
+       cout << endl << endl;
 
-  // Close the portal
-  data.Exec("CLOSE myportal");
+       // next, print out the instances
+       for (int i = 0; i < data.Tuples(); i++)
+       {
+               for (int j = 0; j < nFields; j++)
+                       cout << setiosflags(ios::right) << setw(15) << data.GetValue(i, j);
+               cout << endl;
+       }
 
-  // End the transaction
-  data.Exec("END");
-  return 0;
+       // Close the portal
+       data.Exec("CLOSE myportal");
+
+       // End the transaction
+       data.Exec("END");
+       return 0;
 }
-  
+
 
index 1a602e16b73c82a12119c440395ea4e69341ac3c..9bad37e3cdf6f18ce3e3f09d0c206aef4c30dd19 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * testlibpq2.cc
- *     Test the C++ version of LIBPQ, the POSTGRES frontend library.
- *
- *  queries the template1 database for a list of database names using transaction block
- *
- */
+* testlibpq2.cc
+     Test the C++ version of LIBPQ, the POSTGRES frontend library.
+*
+*  queries the template1 database for a list of database names using transaction block
+*
+*/
 
 #include <iostream.h>
 #include <iomanip.h>
 
 int main()
 {
-  // Begin, by establishing a connection to the backend.
-  // When no parameters are given then the system will
-  // try to use reasonable defaults by looking up environment variables 
-  // or, failing that, using hardwired constants
-  const char* dbName = "dbname=template1";
-  PgTransaction data(dbName);
-
-  // check to see that the backend connection was successfully made
-  if ( data.ConnectionBad() ) {
-      cerr << "Connection to database '" << dbName << "' failed." << endl
-           << "Error returned: " << data.ErrorMessage() << endl;
-      exit(1);
-  }
-
-  // submit command to the backend
-  if ( !data.ExecCommandOk("DECLARE myportal CURSOR FOR select * from pg_database") ) {
-    cerr << "DECLARE CURSOR command failed" << endl;
-    exit(1);
-  }
-
-  // fetch instances from the pg_database, the system catalog of databases
-  if ( !data.ExecTuplesOk("FETCH ALL in myportal") ) {
-    cerr << "FETCH ALL command didn't return tuples properly" << endl;
-    exit(1);
-  }
-  // first, print out the attribute names
-  int nFields = data.Fields();
-  for (int i=0; i < nFields; i++)
-      cout << setiosflags(ios::right) << setw(15) << data.FieldName(i);
-  cout << endl << endl;
-
-  // next, print out the instances
-  for (int i=0; i < data.Tuples(); i++) {
-       for (int j=0; j < nFields; j++)
-            cout << setiosflags(ios::right) << setw(15) << data.GetValue(i,j);
-       cout << endl;
-  }
-
-  // close the portal
-  data.Exec("CLOSE myportal");
-  return 0;
+       // Begin, by establishing a connection to the backend.
+       // When no parameters are given then the system will
+       // try to use reasonable defaults by looking up environment variables
+       // or, failing that, using hardwired constants
+       const char* dbName = "dbname=template1";
+       PgTransaction data(dbName);
+
+       // check to see that the backend connection was successfully made
+       if ( data.ConnectionBad() )
+       {
+               cerr << "Connection to database '" << dbName << "' failed." << endl
+               << "Error returned: " << data.ErrorMessage() << endl;
+               exit(1);
+       }
+
+       // submit command to the backend
+       if ( !data.ExecCommandOk("DECLARE myportal CURSOR FOR select * from pg_database") )
+       {
+               cerr << "DECLARE CURSOR command failed" << endl;
+               exit(1);
+       }
+
+       // fetch instances from the pg_database, the system catalog of databases
+       if ( !data.ExecTuplesOk("FETCH ALL in myportal") )
+       {
+               cerr << "FETCH ALL command didn't return tuples properly" << endl;
+               exit(1);
+       }
+
+       // first, print out the attribute names
+       int nFields = data.Fields();
+       for (int i = 0; i < nFields; i++)
+               cout << setiosflags(ios::right) << setw(15) << data.FieldName(i);
+       cout << endl << endl;
+
+       // next, print out the instances
+       for (int i = 0; i < data.Tuples(); i++)
+       {
+               for (int j = 0; j < nFields; j++)
+                       cout << setiosflags(ios::right) << setw(15) << data.GetValue(i, j);
+               cout << endl;
+       }
+
+       // close the portal
+       data.Exec("CLOSE myportal");
+       return 0;
 }
index da0c48df3547618b7d5953ca2f804b366e60f9db..fa2625f5b28841474a81b64b4e25cf7bedda2261 100644 (file)
@@ -1,11 +1,11 @@
 /*
- * testlibpq3.cc
- *     Test the C++ version of LIBPQ, the POSTGRES frontend library.
- *
- *  queries the template1 database for a list of database names using transaction block
- *  and cursor interface.
- *
- */
+* testlibpq3.cc
+     Test the C++ version of LIBPQ, the POSTGRES frontend library.
+*
+*  queries the template1 database for a list of database names using transaction block
+*  and cursor interface.
+*
+*/
 
 #include <iostream.h>
 #include <iomanip.h>
 
 int main()
 {
-  // Begin, by establishing a connection to the backend.
-  // When no parameters are given then the system will
-  // try to use reasonable defaults by looking up environment variables 
-  // or, failing that, using hardwired constants.
-  // Create a cursor database query object.
-  // All queries using cursor will be performed through this object.
-  const char* dbName = "dbname=template1";
-  PgCursor cData(dbName, "myportal");
+       // Begin, by establishing a connection to the backend.
+       // When no parameters are given then the system will
+       // try to use reasonable defaults by looking up environment variables
+       // or, failing that, using hardwired constants.
+       // Create a cursor database query object.
+       // All queries using cursor will be performed through this object.
+       const char* dbName = "dbname=template1";
+       PgCursor cData(dbName, "myportal");
 
-  // check to see that the backend connection was successfully made
-  if ( cData.ConnectionBad() ) {
-      cerr << "Connection to database '" << dbName << "' failed." << endl
-           << "Error returned: " << cData.ErrorMessage() << endl;
-      exit(1);
-  }
-  
-  // submit command to the backend
-  if ( !cData.Declare("select * from pg_database") ) {
-    cerr << "DECLARE CURSOR command failed" << endl;
-    exit(1);
-  }
+       // check to see that the backend connection was successfully made
+       if ( cData.ConnectionBad() )
+       {
+               cerr << "Connection to database '" << dbName << "' failed." << endl
+               << "Error returned: " << cData.ErrorMessage() << endl;
+               exit(1);
+       }
 
-  // fetch instances from the pg_cDatabase, the system catalog of cDatabases
-  if ( !cData.Fetch() ) {
-    cerr << "FETCH ALL command didn't return tuples properly" << endl;
-    exit(1);
-  }
-  // first, print out the attribute names
-  int nFields = cData.Fields();
-  for (int i=0; i < nFields; i++)
-      cout << setiosflags(ios::right) << setw(15) << cData.FieldName(i);
-  cout << endl << endl;
+       // submit command to the backend
+       if ( !cData.Declare("select * from pg_database") )
+       {
+               cerr << "DECLARE CURSOR command failed" << endl;
+               exit(1);
+       }
 
-  // next, print out the instances
-  for (int i=0; i < cData.Tuples(); i++) {
-       for (int j=0; j < nFields; j++)
-            cout << setiosflags(ios::right) << setw(15) << cData.GetValue(i,j);
-       cout << endl;
-  }
-  return 0;
+       // fetch instances from the pg_cDatabase, the system catalog of cDatabases
+       if ( !cData.Fetch() )
+       {
+               cerr << "FETCH ALL command didn't return tuples properly" << endl;
+               exit(1);
+       }
+
+       // first, print out the attribute names
+       int nFields = cData.Fields();
+       for (int i = 0; i < nFields; i++)
+               cout << setiosflags(ios::right) << setw(15) << cData.FieldName(i);
+       cout << endl << endl;
+
+       // next, print out the instances
+       for (int i = 0; i < cData.Tuples(); i++)
+       {
+               for (int j = 0; j < nFields; j++)
+                       cout << setiosflags(ios::right) << setw(15) << cData.GetValue(i, j);
+               cout << endl;
+       }
+       return 0;
 }
index a3248ea2586311978a2353263135c22032c3e71d..6be620e07362a5465ade26490f41a9bdc76d3ccc 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * testlibpq4.cc
- *     Test of the asynchronous notification interface
- *
-   populate a test database with the following (use testlibpq4.sql):
+* testlibpq4.cc
+     Test of the asynchronous notification interface
+*
+  populate a test database with the following (use testlibpq4.sql):
 
 CREATE TABLE TBL1 (i int4);
 
@@ -10,50 +10,54 @@ CREATE TABLE TBL2 (i int4);
 
 CREATE RULE r1 AS ON INSERT TO TBL1 DO [INSERT INTO TBL2 values (new.i); NOTIFY TBL2];
 
- * Then start up this program
- * After the program has begun, do
+* Then start up this program
+* After the program has begun, do
 
 INSERT INTO TBL1 values (10);
 
- *
- *
- */
+*
+*
+*/
 #include <iostream.h>
 #include "libpq++.h"
 #include <stdlib.h>
 
 int main()
 {
-  // Begin, by connecting to the backend using hardwired constants
-  // and a test database created by the user prior to the invokation
-  // of this test program.
-  const char* dbName = "dbname=template1";
-  PgDatabase data(dbName);
-
-  // Check to see that the backend connection was successfully made
-  if ( data.ConnectionBad() ) {
-    cerr << "Connection to database '" << dbName << "' failed." << endl
-         << data.ErrorMessage() << endl;
-    exit(1);
-  }
-
-  // Listen to a table
-  if ( !data.ExecCommandOk("LISTEN TBL2") ) {
-    cerr << "LISTEN command failed" << endl;
-    exit(1);
-  }
-
-  // Test asynchronous notification
-  while (1) {
-      // check for asynchronous returns
-      PGnotify* notify = data.Notifies();
-      if (notify) {
-         cerr << "ASYNC NOTIFY of '" << notify->relname 
-              << "' from backend pid '" << notify->be_pid 
-              << "' received" << endl;
-         free(notify);
-         break;
-      }
-  }
-  return 0;
+       // Begin, by connecting to the backend using hardwired constants
+       // and a test database created by the user prior to the invokation
+       // of this test program.
+       const char* dbName = "dbname=template1";
+       PgDatabase data(dbName);
+
+       // Check to see that the backend connection was successfully made
+       if ( data.ConnectionBad() )
+       {
+               cerr << "Connection to database '" << dbName << "' failed." << endl
+               << data.ErrorMessage() << endl;
+               exit(1);
+       }
+
+       // Listen to a table
+       if ( !data.ExecCommandOk("LISTEN TBL2") )
+       {
+               cerr << "LISTEN command failed" << endl;
+               exit(1);
+       }
+
+       // Test asynchronous notification
+       while (1)
+       {
+               // check for asynchronous returns
+               PGnotify* notify = data.Notifies();
+               if (notify)
+               {
+                       cerr << "ASYNC NOTIFY of '" << notify->relname
+                       << "' from backend pid '" << notify->be_pid
+                       << "' received" << endl;
+                       free(notify);
+                       break;
+               }
+       }
+       return 0;
 }
index 04e600d5316b858bb01b7f7739e169f5d0845467..086a598cc7c3fe98092526603e85636d944d171e 100644 (file)
 /*
- * testlibpq5.cc
- *     Test the C++ version of LIBPQ, the POSTGRES frontend library.
- *   tests the binary cursor interface
- *
- *
- *
- populate a database by doing the following (use testlibpq5.sql):
+* testlibpq5.cc
+     Test the C++ version of LIBPQ, the POSTGRES frontend library.
+*      tests the binary cursor interface
+*
+*
+*
+populate a database by doing the following (use testlibpq5.sql):
+
 CREATE TABLE test1 (i int4, d float4, p polygon);
 
 INSERT INTO test1 values (1, 3.567, '(3.0, 4.0, 1.0, 2.0)'::polygon);
 
 INSERT INTO test1 values (2, 89.05, '(4.0, 3.0, 2.0, 1.0)'::polygon);
 
- the expected output is:
+the expected output is:
 
 tuple 0: got
- i = (4 bytes) 1,
- d = (4 bytes) 3.567000,
- p = (4 bytes) 2 points         boundbox = (hi=3.000000/4.000000, lo = 1.000000,2.000000)
+i = (4 bytes) 1,
+d = (4 bytes) 3.567000,
+p = (4 bytes) 2 points            boundbox = (hi=3.000000/4.000000, lo = 1.000000,2.000000)
 tuple 1: got
- i = (4 bytes) 2,
- d = (4 bytes) 89.050003,
- p = (4 bytes) 2 points         boundbox = (hi=4.000000/3.000000, lo = 2.000000,1.000000)
+i = (4 bytes) 2,
+d = (4 bytes) 89.050003,
+p = (4 bytes) 2 points            boundbox = (hi=4.000000/3.000000, lo = 2.000000,1.000000)
 
- *
- */
+*
+*/
 #include <iostream.h>
 #include "libpq++.h"
 #include <stdlib.h>
-extern "C" {
+extern "C"
+{
 #include "postgres.h"          // for Postgres types
 #include "utils/geo_decls.h" // for the POLYGON type
 }
 
 int main()
 {
-  // Begin, by connecting to the backend using hardwired constants
-  // and a test database created by the user prior to the invokation
-  // of this test program.  Connect using cursor interface.
-  const char* dbName = "dbname=template1"; // change this to the name of your test database
-  PgCursor data(dbName, "mycursor");
-
-  // check to see that the backend connection was successfully made
-  if ( data.ConnectionBad() ) {
-    cerr << "Connection to database '" << dbName << "' failed." << endl
-         << data.ErrorMessage();
-    exit(1);
-  }
-
-  // Declare a binary cursor for all the tuples in database 'test1'
-  if ( !data.Declare("select * from test1", 1) ) {
-    cerr << "DECLARE CURSOR command failed" << endl;
-    exit(1);
-  }
-
-  // fetch all instances from the current cursor
-  if ( !data.Fetch() ) {
-    cerr << "FETCH ALL command didn't return tuples properly" << endl;
-    exit(1);
-  }
-  // Find the field numbers for the columns 'i', 'd', and 'p'
-  int i_fnum = data.FieldNum("i");
-  int d_fnum = data.FieldNum("d");
-  int p_fnum = data.FieldNum("p");
-  
-/*
-  for (i=0;i<3;i++) {
-      printf("type[%d] = %d, size[%d] = %d\n",
-            i, data.FieldType(i), 
-            i, data.FieldSize(i));
-  }
-*/
+       // Begin, by connecting to the backend using hardwired constants
+       // and a test database created by the user prior to the invokation
+       // of this test program.  Connect using cursor interface.
+       const char* dbName = "dbname=template1"; // change this to the name of your test database
+       PgCursor data(dbName, "mycursor");
+
+       // check to see that the backend connection was successfully made
+       if ( data.ConnectionBad() )
+       {
+               cerr << "Connection to database '" << dbName << "' failed." << endl
+               << data.ErrorMessage();
+               exit(1);
+       }
+
+       // Declare a binary cursor for all the tuples in database 'test1'
+       if ( !data.Declare("select * from test1", 1) )
+       {
+               cerr << "DECLARE CURSOR command failed" << endl;
+               exit(1);
+       }
+
+       // fetch all instances from the current cursor
+       if ( !data.Fetch() )
+       {
+               cerr << "FETCH ALL command didn't return tuples properly" << endl;
+               exit(1);
+       }
+
+       // Find the field numbers for the columns 'i', 'd', and 'p'
+       int i_fnum = data.FieldNum("i");
+       int d_fnum = data.FieldNum("d");
+       int p_fnum = data.FieldNum("p");
+
+       /*
+         for (i=0;i<3;i++) {
+                 printf("type[%d] = %d, size[%d] = %d\n",
+                        i, data.FieldType(i),
+                        i, data.FieldSize(i));
+         }
+       */
+
+       // Print out the information about the extracted tuple
+       for (int i = 0; i < data.Tuples(); i++)
+       {
+               // we hard-wire this to the 3 fields we know about
+               int* ival = (int*)data.GetValue(i, i_fnum);
+               float* dval = (float*)data.GetValue(i, d_fnum);
+               int plen = data.GetLength(i, p_fnum);
+
+               // Allocate correct memory space for the Polygon struct and copy
+               // the extracted data into it.
+               // plen doesn't include the length field so need to increment by VARHDSZ
+               POLYGON* pval = (POLYGON*) malloc(plen + VARHDRSZ);
+               pval->size = plen;
+               memmove((char*)&pval->npts, data.GetValue(i, p_fnum), plen);
+
+               // Display Polygon Information
+               cout << "tuple " << i << ": got" << endl
+               << " i = (" << data.GetLength(i, i_fnum) << " bytes) " << *ival << "," << endl
+               << " d = (" << data.GetLength(i, d_fnum) << " bytes) " << *dval << "," << endl
+               << " p = (" << data.GetLength(i, d_fnum) << " bytes) " << pval->npts << " points"
+               << "\tboundbox = (hi=" << pval->boundbox.high.x << "/" << pval->boundbox.high.y << ","
+               << "lo = " << pval->boundbox.low.x << "," << pval->boundbox.low.y << ")" << endl;
 
-  // Print out the information about the extracted tuple
-  for (int i=0; i < data.Tuples(); i++) {
-    // we hard-wire this to the 3 fields we know about
-    int* ival = (int*)data.GetValue(i,i_fnum);
-    float* dval = (float*)data.GetValue(i,d_fnum);
-    int plen = data.GetLength(i,p_fnum);
-
-    // Allocate correct memory space for the Polygon struct and copy
-    // the extracted data into it.
-    // plen doesn't include the length field so need to increment by VARHDSZ
-    POLYGON* pval = (POLYGON*) malloc(plen + VARHDRSZ); 
-    pval->size = plen;
-    memmove((char*)&pval->npts, data.GetValue(i,p_fnum), plen);
-    
-    // Display Polygon Information
-    cout << "tuple " << i << ": got" << endl
-         << " i = (" << data.GetLength(i,i_fnum) << " bytes) " << *ival << "," << endl
-         << " d = (" << data.GetLength(i,d_fnum) << " bytes) " << *dval << "," << endl
-         << " p = (" << data.GetLength(i,d_fnum) << " bytes) " << pval->npts << " points"
-         << "\tboundbox = (hi=" << pval->boundbox.high.x << "/" << pval->boundbox.high.y << ","
-         << "lo = " << pval->boundbox.low.x << "," << pval->boundbox.low.y << ")" << endl;
-          
-    // Deallocate memory allocated for the Polygon structure
-    free(pval);
-  }
-  return 0;
+               // Deallocate memory allocated for the Polygon structure
+               free(pval);
+       }
+       return 0;
 }
index 2a6dc92ed5c324eb275b7e72aa43879e2a9ff815..29b84c0cbe287a65b7b89d9141771e4ed470b030 100644 (file)
@@ -1,60 +1,68 @@
 /*
- * testlibpq4.cc
- *     Test the C++ version of LIBPQ, the POSTGRES frontend library.
- * tests the copy in features
- *
- */
+* testlibpq4.cc
+     Test the C++ version of LIBPQ, the POSTGRES frontend library.
+* tests the copy in features
+*
+*/
 #include <iostream.h>
 #include "libpq++.h"
 #include <stdlib.h>
 
 int main()
 {
-  // Begin, by connecting to the backend using hardwired constants
-  // and a test database created by the user prior to the invokation
-  // of this test program.  Connect using transaction interface.
-  const char* dbName = "dbname=template1";
-  PgTransaction data(dbName);
+       // Begin, by connecting to the backend using hardwired constants
+       // and a test database created by the user prior to the invokation
+       // of this test program.  Connect using transaction interface.
+       const char* dbName = "dbname=template1";
+       PgTransaction data(dbName);
 
-  // check to see that the backend connection was successfully made
-  if ( data.ConnectionBad() ) {
-    cerr << "Connection to database '" << dbName << "' failed." << endl
-         << data.ErrorMessage();
-    exit(1);
-  }
-  else cout << "Connected to database '" << dbName << "'..." << endl;
+       // check to see that the backend connection was successfully made
+       if ( data.ConnectionBad() )
+       {
+               cerr << "Connection to database '" << dbName << "' failed." << endl
+               << data.ErrorMessage();
+               exit(1);
+       }
+       else
+               cout << "Connected to database '" << dbName << "'..." << endl;
 
-  // Create a new table
-  if ( !data.ExecCommandOk("CREATE TABLE foo (a int4, b char(16), d float8)") ) {
-      cerr << "CREATE TABLE foo command failed" << endl;
-      exit(1);
-  }
-  else cout << "CREATEd TABLE foo successfully.." <<  endl;
+       // Create a new table
+       if ( !data.ExecCommandOk("CREATE TABLE foo (a int4, b char(16), d float8)") )
+       {
+               cerr << "CREATE TABLE foo command failed" << endl;
+               exit(1);
+       }
+       else
+               cout << "CREATEd TABLE foo successfully.." << endl;
 
-  // Initiate Copy command
-  if ( data.ExecCommandOk("COPY foo FROM STDIN") ) {
-      cerr << "COPY foo FROM STDIN" << endl;
-      exit(1);      
-  }
-  else cout << "COPY foo FROM STDIN was successful.." <<  endl;
+       // Initiate Copy command
+       if ( data.ExecCommandOk("COPY foo FROM STDIN") )
+       {
+               cerr << "COPY foo FROM STDIN" << endl;
+               exit(1);
+       }
+       else
+               cout << "COPY foo FROM STDIN was successful.." << endl;
 
-  // Put some test data into the table
-  data.PutLine("3\thello world\t4.5\n");
-  cout << "Line: \"3\thello world\t4.5\" copied..." << endl;
-  data.PutLine("4\tgoodbye word\t7.11\n");
-  cout << "Line: \"4\tgoodbye word\t7.11\" copied..." << endl;
-  data.PutLine("\\.\n");
-  cout << "Line: \"\\.\" copied..." << endl;
-  if ( !data.EndCopy() )
-       cout << "Ended COPY succesfully..." << endl;
-  else cerr << "End Copy failed..." << endl;
-  
-  // Print the data that was inserted into the table
-  if ( data.ExecTuplesOk("SELECT * FROM foo") )
-       data.PrintTuples();
-  else cerr << "SELECT * FROM foo failed..." << endl;
-  
-  // Drop the test table
-  data.Exec("DROP TABLE foo");
-  return 0;
+       // Put some test data into the table
+       data.PutLine("3\thello world\t4.5\n");
+       cout << "Line: \"3\thello world\t4.5\" copied..." << endl;
+       data.PutLine("4\tgoodbye word\t7.11\n");
+       cout << "Line: \"4\tgoodbye word\t7.11\" copied..." << endl;
+       data.PutLine("\\.\n");
+       cout << "Line: \"\\.\" copied..." << endl;
+       if ( !data.EndCopy() )
+               cout << "Ended COPY succesfully..." << endl;
+       else
+               cerr << "End Copy failed..." << endl;
+
+       // Print the data that was inserted into the table
+       if ( data.ExecTuplesOk("SELECT * FROM foo") )
+               data.PrintTuples();
+       else
+               cerr << "SELECT * FROM foo failed..." << endl;
+
+       // Drop the test table
+       data.Exec("DROP TABLE foo");
+       return 0;
 }
index 0fd516c04fc1ba935e9e1c5269095ef614c9a295..04ea8071dc01e22b83ea62d74e04618071ca758a 100644 (file)
@@ -1,50 +1,52 @@
 /*-------------------------------------------------------------------------
- *
- * lotest.cc--
- *    test using large objects with libpq
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq++/examples/Attic/testlo.cc,v 1.8 2000/05/29 21:25:04 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* lotest.cc--
+*       test using large objects with libpq
+*
+* Copyright (c) 1994, Regents of the University of California
+*
+*
+* IDENTIFICATION
+*       $Header: /cvsroot/pgsql/src/interfaces/libpq++/examples/Attic/testlo.cc,v 1.9 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
 #include <iostream.h>
 #include "libpq++.h"
 #include <stdlib.h>
 
 int main(int argc, char **argv)
 {
-    // Check if the program was invoked correctly; if not, signal error
-    if (argc < 4 || argc > 5) {
-       cerr << "Usage: " << argv[0] << " conninfo_str in_filename out_filename [oid]" << endl;
-       exit(1);
-    }
+       // Check if the program was invoked correctly; if not, signal error
+       if (argc < 4 || argc > 5)
+       {
+               cerr << "Usage: " << argv[0] << " conninfo_str in_filename out_filename [oid]" << endl;
+               exit(1);
+       }
 
-    // Get the arguments passed to the program
-    char* conninfo = argv[1];
-    char* in_filename = argv[2];
-    char* out_filename = argv[3];
+       // Get the arguments passed to the program
+       char* conninfo = argv[1];
+       char* in_filename = argv[2];
+       char* out_filename = argv[3];
 
-    // Set up the connection and create a large object
-    int lobjId = ( argc == 4 ? 0 : atoi(argv[4]) );
-    PgLargeObject object(lobjId, conninfo);
+       // Set up the connection and create a large object
+       int lobjId = ( argc == 4 ? 0 : atoi(argv[4]) );
+       PgLargeObject object(lobjId, conninfo);
 
-    // check to see that the backend connection was successfully made
-    if ( object.ConnectionBad() ) {
-         cerr << "Connection with conninfo '" << conninfo << "' failed." << endl
-              << object.ErrorMessage();
-        exit(1);
-    }
+       // check to see that the backend connection was successfully made
+       if ( object.ConnectionBad() )
+       {
+               cerr << "Connection with conninfo '" << conninfo << "' failed." << endl
+               << object.ErrorMessage();
+               exit(1);
+       }
 
-    // Test the import and export features of the Large Object interface
-    object.Exec("BEGIN");
-    cout << "Importing file \"" << in_filename << "\"..." << endl;
-    object.Import(in_filename);
-    cout << "Exporting large object to file \"" << out_filename << "\"..." << endl;
-    object.Export(out_filename);
-    object.Exec("END"); // WHY DOES IT CORE DUMP HERE ???
-    return 0;
+       // Test the import and export features of the Large Object interface
+       object.Exec("BEGIN");
+       cout << "Importing file \"" << in_filename << "\"..." << endl;
+       object.Import(in_filename);
+       cout << "Exporting large object to file \"" << out_filename << "\"..." << endl;
+       object.Export(out_filename);
+       object.Exec("END"); // WHY DOES IT CORE DUMP HERE ???
+       return 0;
 }
index 42b570a1266e17ed4325958e9d382fc8fb881f4b..b8c7945e5869bd061ea5488dbbbd9ae3931d9f85 100644 (file)
@@ -1,25 +1,25 @@
 /*-------------------------------------------------------------------------
- *
- * libpq++.h
- *    
- *
- *   DESCRIPTION
- *     C++ client interface to Postgres
- *   used for building front-end applications
- *
- *   NOTES
- *      This is intended to be included by client applications.
- *      It will not work as an inclusion in the libpq++ sources, since
- *      in the build environment the individual include files are not
- *   yet installed in a subdirectory.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $Id: libpq++.h,v 1.12 2002/06/20 20:29:54 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* libpq++.h
+*
+*
+*      DESCRIPTION
+     C++ client interface to Postgres
+*      used for building front-end applications
+*
+*      NOTES
+*         This is intended to be included by client applications.
+      It will not work as an inclusion in the libpq++ sources, since
+      in the build environment the individual include files are not
+*      yet installed in a subdirectory.
+*
+* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+* Portions Copyright (c) 1994, Regents of the University of California
+*
+* $Id: libpq++.h,v 1.13 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
 
 
 #ifndef LIBPQXX_H
index 074a6bdc4336a32e28ce03558291fe2e002bb4fe..5b61ff636a0c121ae07df6ab66e3ba37c562286e 100644 (file)
@@ -1,19 +1,19 @@
 /*-------------------------------------------------------------------------
- *
- *   FILE
- *     pgconnection.cc
- *
- *   DESCRIPTION
- *      implementation of the PgConnection class.
- *   PgConnection encapsulates a frontend to backend connection
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgconnection.cc,v 1.14 2002/06/15 18:49:29 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+*      FILE
+     pgconnection.cc
+*
+*      DESCRIPTION
+*         implementation of the PgConnection class.
+*      PgConnection encapsulates a frontend to backend connection
+*
+* Copyright (c) 1994, Regents of the University of California
+*
+* IDENTIFICATION
+*        $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgconnection.cc,v 1.15 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
 
 #include "pgconnection.h"
 
@@ -28,44 +28,46 @@ using namespace std;
 // ****************************************************************
 // default constructor -- initialize everything
 PgConnection::PgConnection()
-       : pgConn(NULL), pgResult(NULL), pgCloseConnection(false)
+               : pgConn(NULL), pgResult(NULL), pgCloseConnection(false)
 {}
 
 
 // constructor -- checks environment variable for database name
 // Now uses PQconnectdb
+
 PgConnection::PgConnection(const char* conninfo)
-       : pgConn(NULL), pgResult(NULL), pgCloseConnection(true)
+               : pgConn(NULL), pgResult(NULL), pgCloseConnection(true)
 {
-  // Connect to the database
-  Connect(conninfo);
+       // Connect to the database
+       Connect(conninfo);
 }
 
 
 // destructor - closes down the connection and cleanup
 PgConnection::~PgConnection()
 {
-  // Close the connection only if needed
-  // This feature will most probably be used by the derived classes that
-  // need not close the connection after they are destructed.
-  CloseConnection();
+       // Close the connection only if needed
+       // This feature will most probably be used by the derived classes that
+       // need not close the connection after they are destructed.
+       CloseConnection();
 }
 
 
 // PgConnection::CloseConnection()
 // close down the connection if there is one
-void PgConnection::CloseConnection() 
+void PgConnection::CloseConnection()
 {
-  // if the connection is open, close it first
-  if (pgCloseConnection) {    
-       if (pgResult)
-                  PQclear(pgResult);
-       pgResult = NULL;
-       if (pgConn)
-                  PQfinish(pgConn);
-       pgConn = NULL;
-       pgCloseConnection = false;
-  }
+       // if the connection is open, close it first
+       if (pgCloseConnection)
+       {
+               if (pgResult)
+                       PQclear(pgResult);
+               pgResult = NULL;
+               if (pgConn)
+                       PQfinish(pgConn);
+               pgConn = NULL;
+               pgCloseConnection = false;
+       }
 }
 
 
@@ -73,40 +75,40 @@ void PgConnection::CloseConnection()
 // establish a connection to a backend
 ConnStatusType PgConnection::Connect(const char conninfo[])
 {
-  // if the connection is open, close it first
-  CloseConnection();
+       // if the connection is open, close it first
+       CloseConnection();
+
+       // Connect to the database
+       pgConn = PQconnectdb(conninfo);
 
-  // Connect to the database
-  pgConn = PQconnectdb(conninfo);
+       // Now we have a connection we must close (even if it's bad!)
+       pgCloseConnection = true;
 
-  // Now we have a connection we must close (even if it's bad!)
-  pgCloseConnection = true;
-  
-  // Status will return either CONNECTION_OK or CONNECTION_BAD
-  return Status();
+       // Status will return either CONNECTION_OK or CONNECTION_BAD
+       return Status();
 }
 
 // PgConnection::status -- return connection or result status
 ConnStatusType PgConnection::Status() const
 {
-  return PQstatus(pgConn);
+       return PQstatus(pgConn);
 }
 
 // PgConnection::exec  -- send a query to the backend
 ExecStatusType PgConnection::Exec(const char* query)
 {
-  // Clear the result stucture if needed
-  if (pgResult)
-    PQclear(pgResult); 
-
-  // Execute the given query
-  pgResult = PQexec(pgConn, query);
-  
-  // Return the status
-  if (pgResult)
-       return PQresultStatus(pgResult);
-  else 
-       return PGRES_FATAL_ERROR;
+       // Clear the result stucture if needed
+       if (pgResult)
+               PQclear(pgResult);
+
+       // Execute the given query
+       pgResult = PQexec(pgConn, query);
+
+       // Return the status
+       if (pgResult)
+               return PQresultStatus(pgResult);
+       else
+               return PGRES_FATAL_ERROR;
 }
 
 // Return true if the Postgres command was executed OK
@@ -125,34 +127,34 @@ int PgConnection::ExecTuplesOk(const char* query)
 // PgConnection::notifies() -- returns a notification from a list of unhandled notifications
 PGnotify* PgConnection::Notifies()
 {
-  return PQnotifies(pgConn);
+       return PQnotifies(pgConn);
 }
 
 // From Integer To String Conversion Function
 string PgConnection::IntToString(int n)
 {
-  char buffer [4*sizeof(n) + 2];
-  sprintf(buffer, "%d", n);
-  return buffer;
+       char buffer [4*sizeof(n) + 2];
+       sprintf(buffer, "%d", n);
+       return buffer;
 }
 
 bool PgConnection::ConnectionBad() const
-{ 
-  return Status() == CONNECTION_BAD; 
+{
+       return Status() == CONNECTION_BAD;
 }
 
 const char* PgConnection::ErrorMessage() const
-{ 
-  return (const char *)PQerrorMessage(pgConn); 
+{
+       return (const char *)PQerrorMessage(pgConn);
 }
-  
+
 const char* PgConnection::DBName() const
-{ 
-  return (const char *)PQdb(pgConn); 
+{
+       return (const char *)PQdb(pgConn);
 }
 
 PQnoticeProcessor PgConnection::SetNoticeProcessor(PQnoticeProcessor proc, void *arg)
 {
-  return PQsetNoticeProcessor(pgConn, proc, arg);
+       return PQsetNoticeProcessor(pgConn, proc, arg);
 }
 
index 310302d4431455ebb59eda72132571c372f1ecce..01878cdde16e9c7042ed54b94526cf7f08b5d64e 100644 (file)
@@ -1,27 +1,28 @@
 /*-------------------------------------------------------------------------
- *
- * pgconnection.h
- *    
- *
- *   DESCRIPTION
- *             Postgres Connection Class: 
- *                Manage Postgres backend connection
- *
- *   NOTES
- *      Currently under construction.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- * 
- * $Id: pgconnection.h,v 1.18 2002/06/20 20:29:54 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* pgconnection.h
+*
+*
+*      DESCRIPTION
+*              Postgres Connection Class:
+                Manage Postgres backend connection
+*
+*      NOTES
+*         Currently under construction.
+*
+* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+* Portions Copyright (c) 1994, Regents of the University of California
+*
+* $Id: pgconnection.h,v 1.19 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #ifndef PGCONNECTION_H
 #define PGCONNECTION_H
 
-extern "C" {
+extern "C"
+{
 #include "pg_config.h"
 }
 
@@ -37,7 +38,8 @@ extern "C" {
 #include <string>
 #endif
 
-extern "C" {
+extern "C"
+{
 #include "libpq-fe.h"
 }
 
@@ -54,47 +56,48 @@ extern "C" {
 //
 // ****************************************************************
 // This class contains all the information about the connection
-// to the backend process.  All the database classes should be
+// to the backend process.     All the database classes should be
 // derived from this class to obtain the connection interface.
-class DLLIMPORT PgConnection {
+class DLLIMPORT PgConnection
+{
 protected:
-  PGconn* pgConn;                      // Connection Structure
-  PGresult* pgResult;                  // Current Query Result
-  bool pgCloseConnection; // true if connection should be closed by destructor
-  
+       PGconn* pgConn;                 // Connection Structure
+       PGresult* pgResult;                     // Current Query Result
+       bool pgCloseConnection; // true if connection should be closed by destructor
+
 public:
-   explicit PgConnection(const char* conninfo); // use reasonable & environment defaults
-   virtual ~PgConnection();                    // close connection and clean up
-   
-   // Connection status and error messages
-   ConnStatusType Status() const;
-   bool ConnectionBad() const;
-   const char* ErrorMessage() const;
-  
-   // returns the database name of the connection
-   const char* DBName() const;
-
-   // Query Execution interface
-   ExecStatusType Exec(const char* query);  // send a query to the backend
-   int ExecCommandOk(const char* query);    // send a command and check if it's OK
-   int ExecTuplesOk(const char* query);     // send a command and check if tuples are returned
-   PGnotify* Notifies();
-    
+       explicit PgConnection(const char* conninfo); // use reasonable & environment defaults
+       virtual ~PgConnection();                        // close connection and clean up
+
+       // Connection status and error messages
+       ConnStatusType Status() const;
+       bool ConnectionBad() const;
+       const char* ErrorMessage() const;
+
+       // returns the database name of the connection
+       const char* DBName() const;
+
+       // Query Execution interface
+       ExecStatusType Exec(const char* query);  // send a query to the backend
+       int ExecCommandOk(const char* query);    // send a command and check if it's OK
+       int ExecTuplesOk(const char* query);     // send a command and check if tuples are returned
+       PGnotify* Notifies();
+
        // set the notice processor
        PQnoticeProcessor SetNoticeProcessor(PQnoticeProcessor proc, void *arg);
 
 protected:
-   ConnStatusType Connect(const char* conninfo);
-   void CloseConnection();
-   static PGSTD string IntToString(int);
-   // Default constructor is only available to subclasses
-   PgConnection();
+       ConnStatusType Connect(const char* conninfo);
+       void CloseConnection();
+       static PGSTD string IntToString(int);
+       // Default constructor is only available to subclasses
+       PgConnection();
 
 private:
-// We don't support copying of PgConnection objects,
-// so make copy constructor and assignment op private.
-   PgConnection(const PgConnection&);
-   PgConnection& operator= (const PgConnection&);
+       // We don't support copying of PgConnection objects,
+       // so make copy constructor and assignment op private.
+       PgConnection(const PgConnection&);
+       PgConnection& operator= (const PgConnection&);
 };
 
 
index ee77a36b12435b0a6af40a370e2e3bbe55e9e940..182911817a130ae3ad0b236f49940802e0df694a 100644 (file)
@@ -1,22 +1,22 @@
 /*-------------------------------------------------------------------------
- *
- *   FILE
- *     pgcursordb.cpp
- *
- *   DESCRIPTION
- *      implementation of the PgCursor class.
- *   PgCursor encapsulates a cursor interface to the backend
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgcursordb.cc,v 1.7 2002/06/15 18:49:29 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+*      FILE
+     pgcursordb.cpp
+*
+*      DESCRIPTION
+*         implementation of the PgCursor class.
+*      PgCursor encapsulates a cursor interface to the backend
+*
+* Copyright (c) 1994, Regents of the University of California
+*
+* IDENTIFICATION
+*        $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgcursordb.cc,v 1.8 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #include "pgcursordb.h"
+
 #ifdef HAVE_NAMESPACE_STD
 using namespace std;
 #endif
@@ -30,17 +30,18 @@ using namespace std;
 // Make a connection to the specified database with default environment
 // See PQconnectdb() for conninfo usage
 PgCursor::PgCursor(const char* conninfo, const char* cursor)
-   : PgTransaction(conninfo), pgCursor(cursor)
+               : PgTransaction(conninfo), pgCursor(cursor)
 {}
 
 // Do not make a connection to the backend -- just query
 // Connection should not be closed after the object destructs since some
 // other object is using the connection
 //PgCursor::PgCursor(const PgConnection& conn, const char* cursor)
-//   : PgTransaction(conn), pgCursor(cursor)
+//      : PgTransaction(conn), pgCursor(cursor)
 //{}
 
 // Destructor: End the transaction block
+
 PgCursor::~PgCursor()
 {
        Close();
@@ -57,7 +58,7 @@ int PgCursor::Declare(string query, bool binary)
 {
        string cmd = "DECLARE " + pgCursor;
        if ( binary )
-            cmd += " BINARY";
+               cmd += " BINARY";
        cmd += " CURSOR FOR " + query;
        return ExecCommandOk( cmd.c_str() );
 }
index d7eaa96a278c115cb6ab3ba486a777f9de18382b..7f11ce5d1c90faf8e6f85cc722d3b754563bfae6 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
- *
- * pgcursordb.h
- *    
- *
- *   DESCRIPTION
- *             Postgres Cursor Database Class: 
- *                Query Postgres backend using a cursor
- *
- *   NOTES
- *      Currently under construction.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- *  $Id: pgcursordb.h,v 1.11 2002/06/20 20:29:54 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* pgcursordb.h
+*
+*
+*      DESCRIPTION
+*              Postgres Cursor Database Class:
+                Query Postgres backend using a cursor
+*
+*      NOTES
+*         Currently under construction.
+*
+* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+* Portions Copyright (c) 1994, Regents of the University of California
+*
+*
+*  $Id: pgcursordb.h,v 1.12 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #ifndef PGCURSORDB_H
 #define PGCURSORDB_H
 
 // manipulates data through it.  The interface will introduce some
 // ease of use through the methods that will allow cursor specific
 // operations, like fetch, forward, etc.
-class DLLIMPORT PgCursor : public PgTransaction {
+class DLLIMPORT PgCursor : public PgTransaction
+{
 public:
-  PgCursor(const char* conninfo, const char* cursor);  // use reasonable & environment defaults
-  // connect to the database with given environment and database name
-  //  PgCursor(const PgConnection&, const char* cursor);
-  ~PgCursor(); // close connection and clean up
-  
-  // Commands associated with cursor interface
-  int Declare(PGSTD string query, bool binary = false);        // Declare a cursor with given name
-  int Fetch(const char* dir = "FORWARD");              // Fetch ALL tuples in given direction
-  int Fetch(unsigned num, const char* dir = "FORWARD");        // Fetch specified amount of tuples
-  int Close(); // Close the cursor
-  
-  // Accessors to the cursor name
-  const char* Cursor() const { return pgCursor.c_str(); }
-  // TODO: Setter has same name as getter--ouch!
-  // OBSOLESCENT
-  void Cursor(PGSTD string cursor) { pgCursor = cursor; }
-  
+       PgCursor(const char* conninfo, const char* cursor); // use reasonable & environment defaults
+       // connect to the database with given environment and database name
+       //      PgCursor(const PgConnection&, const char* cursor);
+       ~PgCursor();    // close connection and clean up
+
+       // Commands associated with cursor interface
+       int Declare(PGSTD string query, bool binary = false);   // Declare a cursor with given name
+       int Fetch(const char* dir = "FORWARD");         // Fetch ALL tuples in given direction
+       int Fetch(unsigned num, const char* dir = "FORWARD");   // Fetch specified amount of tuples
+       int Close();    // Close the cursor
+
+       // Accessors to the cursor name
+       const char* Cursor() const
+       {
+               return pgCursor.c_str();
+       }
+       // TODO: Setter has same name as getter--ouch!
+       // OBSOLESCENT
+       void Cursor(PGSTD string cursor)
+       {
+               pgCursor = cursor;
+       }
+
 protected:
-  int Fetch(PGSTD string num, PGSTD string dir);
-  
+       int Fetch(PGSTD string num, PGSTD string dir);
+
 protected:
-  PGSTD string pgCursor;
-  
+       PGSTD string pgCursor;
+
 protected:
-  PgCursor() : PgTransaction() {}      // Do not connect
+       PgCursor() : PgTransaction()
+       {}      // Do not connect
+
 
 private:
-// We don't support copying of PgCursor objects,
-// so make copy constructor and assignment op private.
-   PgCursor(const PgCursor&);
-   PgCursor& operator= (const PgCursor&);
-}; // End PgCursor Class Declaration
+       // We don't support copying of PgCursor objects,
+       // so make copy constructor and assignment op private.
+       PgCursor(const PgCursor&);
+       PgCursor& operator= (const PgCursor&);
+}
+; // End PgCursor Class Declaration
 
 
 #undef PGSTD
index fe1face88daafad9cabb28690f52213a003605d8..6d8cd82c5413194bd088fa3ad9477491d6fe8342 100644 (file)
@@ -1,20 +1,20 @@
 /*-------------------------------------------------------------------------
- *
- *   FILE
- *      pgdatabase.cpp
- *
- *   DESCRIPTION
- *      implementation of the PgDatabase class.
- *   PgDatabase encapsulates some utility routines
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgdatabase.cc,v 1.12 2001/09/30 22:30:37 tgl Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+*      FILE
+*         pgdatabase.cpp
+*
+*      DESCRIPTION
+*         implementation of the PgDatabase class.
+*      PgDatabase encapsulates some utility routines
+*
+* Copyright (c) 1994, Regents of the University of California
+*
+* IDENTIFICATION
+*        $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgdatabase.cc,v 1.13 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #include "pgdatabase.h"
 
 #ifdef HAVE_NAMESPACE_STD
@@ -23,11 +23,11 @@ using namespace std;
 
 
 // OBSOLESCENT (uses PQprint(), which is no longer being maintained)
-void PgDatabase::DisplayTuples(FILE *out, 
-       bool fillAlign, 
-       const char* fieldSep, 
-       bool printHeader,
-       bool /* quiet */) const
+void PgDatabase::DisplayTuples(FILE *out,
+                                                          bool fillAlign,
+                                                          const char* fieldSep,
+                                                          bool printHeader,
+                                                          bool /* quiet */) const
 {
        PQprintOpt po;
 
@@ -38,16 +38,16 @@ void PgDatabase::DisplayTuples(FILE *out,
        po.tableOpt = po.caption = 0;
        po.fieldName = 0;
 
-       PQprint(out,pgResult,&po);
+       PQprint(out, pgResult, &po);
 }
 
 
 
 // OBSOLESCENT (uses PQprint(), which is no longer being maintained)
-void PgDatabase::PrintTuples(FILE *out, 
-       bool printAttName, 
-       bool terseOutput,
-       bool fillAlign) const
+void PgDatabase::PrintTuples(FILE *out,
+                                                        bool printAttName,
+                                                        bool terseOutput,
+                                                        bool fillAlign) const
 {
        PQprintOpt po;
 
@@ -58,124 +58,124 @@ void PgDatabase::PrintTuples(FILE *out,
        po.fieldSep = (char *) (terseOutput ? "" : "|");
        po.fieldName = 0;
 
-       PQprint(out,pgResult,&po);
+       PQprint(out, pgResult, &po);
 }
 
 
 
 int PgDatabase::Tuples() const
-{ 
-return PQntuples(pgResult); 
+{
+       return PQntuples(pgResult);
 }
 
 
 int PgDatabase::CmdTuples() const
 {
-const char *a = PQcmdTuples(pgResult);
-return a[0] ? atoi(a) : -1;
+       const char *a = PQcmdTuples(pgResult);
+       return a[0] ? atoi(a) : -1;
 }
 
 
 // TODO: Make const?
 int PgDatabase::Fields()
-{ 
-return PQnfields(pgResult); 
+{
+       return PQnfields(pgResult);
 }
 
 
 const char* PgDatabase::FieldName(int field_num) const
-{ 
-return PQfname(pgResult, field_num); 
+{
+       return PQfname(pgResult, field_num);
 }
 
 
 int PgDatabase::FieldNum(const char* field_name) const
-{ 
-return PQfnumber(pgResult, field_name); 
+{
+       return PQfnumber(pgResult, field_name);
 }
 
 
 Oid PgDatabase::FieldType(int field_num) const
-{ 
-return PQftype(pgResult, field_num); 
+{
+       return PQftype(pgResult, field_num);
 }
 
 
 Oid PgDatabase::FieldType(const char* field_name) const
-{ 
-return PQftype(pgResult, FieldNum(field_name)); 
+{
+       return PQftype(pgResult, FieldNum(field_name));
 }
 
 
 int PgDatabase::FieldSize(int field_num) const
-{ 
-return PQfsize(pgResult, field_num); 
+{
+       return PQfsize(pgResult, field_num);
 }
 
 
 int PgDatabase::FieldSize(const char* field_name) const
-{ 
-return PQfsize(pgResult, FieldNum(field_name)); 
+{
+       return PQfsize(pgResult, FieldNum(field_name));
 }
 
 
 const char* PgDatabase::GetValue(int tup_num, int field_num) const
-{ 
-return PQgetvalue(pgResult, tup_num, field_num); 
+{
+       return PQgetvalue(pgResult, tup_num, field_num);
 }
 
 
 const char* PgDatabase::GetValue(int tup_num, const char* field_name) const
-{ 
-return PQgetvalue(pgResult, tup_num, FieldNum(field_name)); 
+{
+       return PQgetvalue(pgResult, tup_num, FieldNum(field_name));
 }
 
 
 bool PgDatabase::GetIsNull(int tup_num, int field_num) const
-{ 
-return PQgetisnull(pgResult, tup_num, field_num); 
+{
+       return PQgetisnull(pgResult, tup_num, field_num);
 }
 
 
 bool PgDatabase::GetIsNull(int tup_num, const char* field_name) const
-{ 
-return PQgetisnull(pgResult, tup_num, FieldNum(field_name)); 
+{
+       return PQgetisnull(pgResult, tup_num, FieldNum(field_name));
 }
 
 
 int PgDatabase::GetLength(int tup_num, int field_num) const
-{ 
-return PQgetlength(pgResult, tup_num, field_num); 
+{
+       return PQgetlength(pgResult, tup_num, field_num);
 }
 
 
 int PgDatabase::GetLength(int tup_num, const char* field_name) const
-{ 
-return PQgetlength(pgResult, tup_num, FieldNum(field_name)); 
+{
+       return PQgetlength(pgResult, tup_num, FieldNum(field_name));
 }
 
 
 int PgDatabase::GetLine(char str[], int length)
-{ 
-return PQgetline(pgConn, str, length); 
+{
+       return PQgetline(pgConn, str, length);
 }
 
 
 void PgDatabase::PutLine(const char str[])
-{ 
-PQputline(pgConn, str); 
+{
+       PQputline(pgConn, str);
 }
 
 
 const char* PgDatabase::OidStatus() const
-{ 
-return PQoidStatus(pgResult); 
+{
+       return PQoidStatus(pgResult);
 }
 
 
 int PgDatabase::EndCopy()
-{ 
-return PQendcopy(pgConn); 
+{
+       return PQendcopy(pgConn);
 }
 
 
index 4f0ca62ae0249cc0685260ebb6775444384b4068..e1e3c34f6194149d2f15b5857c8b06e4fc1405b3 100644 (file)
@@ -1,27 +1,27 @@
 /*-------------------------------------------------------------------------
- *
- * pgdatabase.h
- *    
- *
- *   DESCRIPTION
- *             Postgres Database Class: 
- *                Query Postgres backend to obtain query results
- *
- *   NOTES
- *      Currently under construction.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- *  $Id: pgdatabase.h,v 1.13 2002/06/20 20:29:54 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* pgdatabase.h
+*
+*
+*      DESCRIPTION
+*              Postgres Database Class:
+                Query Postgres backend to obtain query results
+*
+*      NOTES
+*         Currently under construction.
+*
+* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+* Portions Copyright (c) 1994, Regents of the University of California
+*
+*
+*  $Id: pgdatabase.h,v 1.14 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #ifndef PGDATABASE_H
 #define PGDATABASE_H
+
 #ifndef PGCONNECTION_H
 #include "pgconnection.h"
 #endif
 // PgDatabase - a class for accessing databases
 //
 // ****************************************************************
-// This is the basic database access class.  Its interface should 
+// This is the basic database access class.  Its interface should
 // be used only after a query has been sent to the backend and
 // results are being received.
-class DLLIMPORT PgDatabase : public PgConnection {
+class DLLIMPORT PgDatabase : public PgConnection
+{
 public:
-  // connect to the database with conninfo
-  explicit PgDatabase(const char* conninfo) : PgConnection(conninfo) {}
+       // connect to the database with conninfo
+       explicit PgDatabase(const char* conninfo) : PgConnection(conninfo)
+       {}
+
+       ~PgDatabase()
+       {}                              // close connection and clean up
 
-  ~PgDatabase() {}                             // close connection and clean up
 
-  typedef int size_type;
-  
-  // query result access
-  size_type Tuples() const;
-  size_type CmdTuples() const; 
-  int Fields();
-  const char* FieldName(int field_num) const;
-  int FieldNum(const char* field_name) const;
-  Oid FieldType(int field_num) const;
-  Oid FieldType(const char* field_name) const;
-  int FieldSize(int field_num) const;
-  int FieldSize(const char* field_name) const;
-  const char* GetValue(size_type tup_num, int field_num) const;
-  const char* GetValue(size_type tup_num, const char* field_name) const;
-  bool GetIsNull(size_type tup_num, int field_num) const;
-  bool GetIsNull(size_type tup_num, const char* field_name) const;
-  int GetLength(size_type tup_num, int field_num) const;
-  int GetLength(size_type tup_num, const char* field_name) const;
+       typedef int size_type;
 
-  // OBSOLESCENT (use PQprint()):
-  void DisplayTuples(FILE *out=0, bool fillAlign=true, 
-       const char* fieldSep="|", bool printHeader=true, bool quiet=false) const;
-  void PrintTuples(FILE *out=0, bool printAttName=true, 
-       bool terseOutput=false, bool fillAlign=false) const;
+       // query result access
+       size_type Tuples() const;
+       size_type CmdTuples() const;
+       int Fields();
+       const char* FieldName(int field_num) const;
+       int FieldNum(const char* field_name) const;
+       Oid FieldType(int field_num) const;
+       Oid FieldType(const char* field_name) const;
+       int FieldSize(int field_num) const;
+       int FieldSize(const char* field_name) const;
+       const char* GetValue(size_type tup_num, int field_num) const;
+       const char* GetValue(size_type tup_num, const char* field_name) const;
+       bool GetIsNull(size_type tup_num, int field_num) const;
+       bool GetIsNull(size_type tup_num, const char* field_name) const;
+       int GetLength(size_type tup_num, int field_num) const;
+       int GetLength(size_type tup_num, const char* field_name) const;
+
+       // OBSOLESCENT (use PQprint()):
+       void DisplayTuples(FILE *out = 0, bool fillAlign = true,
+                                          const char* fieldSep = "|", bool printHeader = true, bool quiet = false) const;
+       void PrintTuples(FILE *out = 0, bool printAttName = true,
+                                        bool terseOutput = false, bool fillAlign = false) const;
+
+       // copy command related access
+       int GetLine(char str[], int length);
+       void PutLine(const char str[]);
+       const char* OidStatus() const;
+       int EndCopy();
 
-  // copy command related access
-  int GetLine(char str[], int length);
-  void PutLine(const char str[]);
-  const char* OidStatus() const;
-  int EndCopy();
-    
 protected:
-  PgDatabase() : PgConnection() {}     // Do not connect
+       PgDatabase() : PgConnection()
+       {}      // Do not connect
+
 
 private:
-// We don't support copying of PgDatabase objects,
-// so make copy constructor and assignment op private.
-   PgDatabase(const PgDatabase&);
-   PgDatabase& operator= (const PgDatabase&);
+       // We don't support copying of PgDatabase objects,
+       // so make copy constructor and assignment op private.
+       PgDatabase(const PgDatabase&);
+       PgDatabase& operator= (const PgDatabase&);
 };
 
 #endif // PGDATABASE_H
index 0c83b75298ed28fd26af3a6dd6b57a06ac795f54..5db38d74a5d24ec79c3c8525401f86c11bf2a0b1 100644 (file)
@@ -1,23 +1,24 @@
 /*-------------------------------------------------------------------------
- *
- *   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.10 2002/06/15 19:30:40 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+*      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" {
+
+extern "C"
+{
 #include "libpq/libpq-fs.h"
 }
 
@@ -35,140 +36,145 @@ using namespace std;
 // creates a large object in the default database
 // See PQconnectdb() for conninfo usage
 PgLargeObject::PgLargeObject(const char* conninfo)
-       : PgConnection(conninfo)
+               : PgConnection(conninfo)
 {
-  Init();
-  if (! ConnectionBad()) {
-         Create();
-         Open();
-  }
+       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)
+PgLargeObject::PgLargeObject(Oid lobjId, const char* conninfo)
+               : PgConnection(conninfo)
 {
-  Init(lobjId);
-  if (! ConnectionBad()) {
-         if ( !pgObject )
-                 Create();
-         Open();
-  }
+       Init(lobjId);
+       if (! ConnectionBad())
+       {
+               if ( !pgObject )
+                       Create();
+               Open();
+       }
 }
 
 // destructor -- closes large object
 PgLargeObject::~PgLargeObject()
 {
-  Close();
+       Close();
 }
 
 // PgLargeObject::Init
 // Initialize the variables
 void PgLargeObject::Init(Oid lobjId)
 {
-  pgFd = -1;
-  pgObject = 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" ;
+       // 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 ;
+       // 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;
+       // 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;
+{
+       if (pgFd >= 0)
+               lo_close(pgConn, pgFd);
+       pgFd = -1;
 }
 
 
 int PgLargeObject::Read(char* buf, int len)
-{ 
-  return lo_read(pgConn, pgFd, buf, len); 
+{
+       return lo_read(pgConn, pgFd, buf, len);
 }
 
 
 int PgLargeObject::Write(const char* buf, int len)
-{ 
-  return lo_write(pgConn, pgFd, (char*)buf, len); 
+{
+       return lo_write(pgConn, pgFd, (char*)buf, len);
 }
 
 
 int PgLargeObject::LSeek(int offset, int whence)
-{ 
-  return lo_lseek(pgConn, pgFd, offset, whence); 
+{
+       return lo_lseek(pgConn, pgFd, offset, whence);
 }
 
 
 int PgLargeObject::Tell() const
-{ 
-  return lo_tell(pgConn, pgFd); 
+{
+       return lo_tell(pgConn, pgFd);
 }
 
 
-Oid PgLargeObject::Import(const char* filename) 
-{ 
-  return pgObject = lo_import(pgConn, filename); 
+Oid PgLargeObject::Import(const char* filename)
+{
+       return pgObject = lo_import(pgConn, filename);
 }
 
 
-int PgLargeObject::Export(const char* filename) 
-{ 
-  return lo_export(pgConn, pgObject, filename); 
+int PgLargeObject::Export(const char* filename)
+{
+       return lo_export(pgConn, pgObject, filename);
 }
 
 
 string PgLargeObject::Status() const
-{ 
-  return loStatus; 
+{
+       return loStatus;
 }
 
-Oid PgLargeObject::LOid(){
-  return pgObject;
+Oid PgLargeObject::LOid()
+{
+       return pgObject;
 }
index 33b01df16ca62b2fb56275568f1989fb8cfc7476..b44187b6902566e53ce659db54dbefe7e2f0609e 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
- *
- *   FILE
- *     pglobject.h
- *
- *   DESCRIPTION
- *      declaration of the PGlobj class.
- *   PGlobj encapsulates a large object interface to Postgres backend 
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- *  $Id: pglobject.h,v 1.10 2002/06/20 20:29:54 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+*      FILE
+     pglobject.h
+*
+*      DESCRIPTION
+*         declaration of the PGlobj class.
+*      PGlobj encapsulates a large object interface to Postgres backend
+*
+* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+* Portions Copyright (c) 1994, Regents of the University of California
+*
+*
+*  $Id: pglobject.h,v 1.11 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #ifndef PGLOBJECT_H
 #define PGLOBJECT_H
+
 #ifndef PGCONNECTION_H
 #include "pgconnection.h"
 #endif
 // PgLargeObject - a class for accessing Large Object in a database
 //
 // ****************************************************************
-class DLLIMPORT PgLargeObject : public PgConnection {
+class DLLIMPORT PgLargeObject : public PgConnection
+{
 private:
-  int pgFd;
-  Oid pgObject;
-  PGSTD string loStatus;
-  void Init(Oid lobjId = 0);
+       int pgFd;
+       Oid pgObject;
+       PGSTD string loStatus;
+       void Init(Oid lobjId = 0);
 
 public:
-  explicit PgLargeObject(const char* conninfo = 0);   // use reasonable defaults and create large object
-  explicit PgLargeObject(Oid lobjId, const char* conninfo = 0); // use reasonable defaults and open large object
-  ~PgLargeObject(); // close connection and clean up
-  
-  void Create();
-  void Open();
-  void Close();
-  int Read(char* buf, int len);
-  int Write(const char* buf, int len);
-  int LSeek(int offset, int whence);
-  int Tell() const;
-  int Unlink();
-  Oid LOid();
-  Oid Import(const char* filename);
-  int Export(const char* filename); 
-  PGSTD string Status() const;
+       explicit PgLargeObject(const char* conninfo = 0);       // use reasonable defaults and create large object
+       explicit PgLargeObject(Oid lobjId, const char* conninfo = 0); // use reasonable defaults and open large object
+       ~PgLargeObject(); // close connection and clean up
+
+       void Create();
+       void Open();
+       void Close();
+       int Read(char* buf, int len);
+       int Write(const char* buf, int len);
+       int LSeek(int offset, int whence);
+       int Tell() const;
+       int Unlink();
+       Oid LOid();
+       Oid Import(const char* filename);
+       int Export(const char* filename);
+       PGSTD string Status() const;
 
 private:
-// We don't support copying of PgLargeObject objects,
-// so make copy constructor and assignment op private.
-   PgLargeObject(const PgLargeObject&);
-   PgLargeObject& operator= (const PgLargeObject&);
+       // We don't support copying of PgLargeObject objects,
+       // so make copy constructor and assignment op private.
+       PgLargeObject(const PgLargeObject&);
+       PgLargeObject& operator= (const PgLargeObject&);
 };
 
 
index dd7195e1bf937c1943af6648ccfc5bac198041dd..d3efee5c7c69befb3d19ac98707b60ee27117738 100644 (file)
@@ -1,20 +1,20 @@
 /*-------------------------------------------------------------------------
- *
- *   FILE
- *     pgtransdb.cpp
- *
- *   DESCRIPTION
- *      implementation of the PgTransaction class.
- *   PgConnection encapsulates a transaction querying to backend
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgtransdb.cc,v 1.4 2001/05/09 17:29:10 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+*      FILE
+     pgtransdb.cpp
+*
+*      DESCRIPTION
+*         implementation of the PgTransaction class.
+*      PgConnection encapsulates a transaction querying to backend
+*
+* Copyright (c) 1994, Regents of the University of California
+*
+* IDENTIFICATION
+*        $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgtransdb.cc,v 1.5 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #include "pgtransdb.h"
 
 // ****************************************************************
 //
 // ****************************************************************
 // Make a connection to the specified database with default environment
-// See PQconnectdb() for conninfo usage. 
+// See PQconnectdb() for conninfo usage.
 PgTransaction::PgTransaction(const char* conninfo)
-   : PgDatabase(conninfo),
-     pgCommitted(true)
+               : PgDatabase(conninfo),
+               pgCommitted(true)
 {
        BeginTransaction();
 }
@@ -34,7 +34,8 @@ PgTransaction::PgTransaction(const char* conninfo)
 // Destructor: End the transaction block
 PgTransaction::~PgTransaction()
 {
-       if (!pgCommitted) Exec("ABORT");
+       if (!pgCommitted)
+               Exec("ABORT");
 }
 
 // Begin the transaction block
index e6acec526291210fd868956fcab0663f6afe17b5..dddd35a77817d32544a64efa25a14c527b980af8 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
- *
- * pgtransdb.h
- *    
- *
- *   DESCRIPTION
- *             Postgres Transaction Database Class: 
- *                Query Postgres backend using a transaction block
- *
- *   NOTES
- *      Currently under construction.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- *  $Id: pgtransdb.h,v 1.9 2002/06/20 20:29:54 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
+*
+* pgtransdb.h
+*
+*
+*      DESCRIPTION
+*              Postgres Transaction Database Class:
+                Query Postgres backend using a transaction block
+*
+*      NOTES
+*         Currently under construction.
+*
+* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+* Portions Copyright (c) 1994, Regents of the University of California
+*
+*
+*  $Id: pgtransdb.h,v 1.10 2002/07/02 16:32:19 momjian Exp $
+*
+*-------------------------------------------------------------------------
+*/
+
 #ifndef PGTRANSDB_H
 #define PGTRANSDB_H
 
 // This is the database access class that keeps an open
 // transaction block during its lifetime.  The block is ENDed when
 // the object is destroyed.
-class DLLIMPORT PgTransaction : public PgDatabase {
+class DLLIMPORT PgTransaction : public PgDatabase
+{
 public:
-  explicit PgTransaction(const char* conninfo);        // use reasonable & environment defaults
-  // connect to the database with given environment and database name
-  // explicit PgTransaction(const PgConnection&);
-  ~PgTransaction();    // close connection and clean up
-  
+       explicit PgTransaction(const char* conninfo);   // use reasonable & environment defaults
+       // connect to the database with given environment and database name
+       // explicit PgTransaction(const PgConnection&);
+       ~PgTransaction();       // close connection and clean up
+
 protected:
-  ExecStatusType BeginTransaction();
-  ExecStatusType EndTransaction();
-  
+       ExecStatusType BeginTransaction();
+       ExecStatusType EndTransaction();
+
 protected:
-  PgTransaction() : PgDatabase(), pgCommitted(true) {} // Do not connect
+       PgTransaction() : PgDatabase(), pgCommitted(true)
+       {}      // Do not connect
+
 
 private:
-  bool pgCommitted;
+       bool pgCommitted;
 
-// We don't support copying of PgTransaction objects,
-// so make copy constructor and assignment op private.
-   PgTransaction(const PgTransaction&);
-   PgTransaction& operator= (const PgTransaction&);
-}; // End PgTransaction Class Declaration
+       // We don't support copying of PgTransaction objects,
+       // so make copy constructor and assignment op private.
+       PgTransaction(const PgTransaction&);
+       PgTransaction& operator= (const PgTransaction&);
+}
+; // End PgTransaction Class Declaration
 
 #endif // PGTRANSDB_H