pglobject.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  *   FILE
  4.  * pglobject.h
  5.  *
  6.  *   DESCRIPTION
  7.  *      declaration of the PGlobj class.
  8.  *   PGlobj encapsulates a large object interface to Postgres backend 
  9.  *
  10.  * Copyright (c) 1994, Regents of the University of California
  11.  *
  12.  *
  13.  *  $Id: pglobject.h,v 1.2 1999/05/23 01:04:03 momjian Exp $
  14.  *
  15.  *-------------------------------------------------------------------------
  16.  */
  17.  
  18. #ifndef PGLOBJ_H
  19. #define PGLOBJ_H
  20. #include "pgconnection.h"
  21. // buffer size
  22. #define BUFSIZE 1024
  23. // ****************************************************************
  24. //
  25. // PgLargeObject - a class for accessing Large Object in a database
  26. //
  27. // ****************************************************************
  28. class PgLargeObject : public PgConnection {
  29. private:
  30.   int pgFd;
  31.   Oid pgObject;
  32.   string loStatus;
  33. public:
  34.   PgLargeObject(const char* conninfo = 0);   // use reasonable defaults and create large object
  35.   PgLargeObject(Oid lobjId, const char* conninfo = 0); // use reasonable defaults and open large object
  36.   ~PgLargeObject(); // close connection and clean up
  37.   
  38.   void Create();
  39.   void Open();
  40.   void Close();
  41.   int Read(char* buf, int len);
  42.   int Write(const char* buf, int len);
  43.   int LSeek(int offset, int whence);
  44.   int Tell();
  45.   int Unlink();
  46.   Oid LOid();
  47.   Oid Import(const char* filename);
  48.   int Export(const char* filename); 
  49.   string Status();
  50.   
  51. private:
  52.    void Init(Oid lobjId = 0);
  53. };
  54. #endif // PGLOBJ_H
  55. // sig 11's if the filename points to a binary file.