home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / C / TPXCLS / TPXCLASS.HPP < prev   
Encoding:
C/C++ Source or Header  |  1991-12-11  |  6.0 KB  |  206 lines

  1.  
  2. // tpxclass.hpp
  3. //-----------------------------------------------------------------------------
  4.  
  5. #if !defined(tpxclass_hpp)
  6.  
  7. #define tpxclass_hpp
  8.  
  9. //-----------------------------------------------------------------------------
  10.  
  11. extern "C" {
  12.  
  13. #include <mem.h>
  14. #include <stdio.h>
  15. #include <stdlib.h>
  16. #include <string.h>
  17.  
  18. }
  19.  
  20. #include <pxengine.h>
  21.  
  22. //-----------------------------------------------------------------------------
  23.  
  24. //---------PX Table-----------------
  25.  
  26. class PX_Table{
  27.  
  28.   private:
  29.     char field_count,
  30.          index_count,
  31.          secondary_index_count,
  32.          current_field_count,
  33.          current_index_count,
  34.          current_secondary_index_count,
  35.          **field_name,
  36.          **field_type;
  37.  
  38.     FIELDHANDLE *index_field_handles,
  39.                 *secondary_index_field_handles;
  40.  
  41.     void free_descriptors(void);
  42.  
  43.   public:
  44.     char *data_buf;
  45.     TABLEHANDLE table_handle;
  46.     char table_path[80];
  47.  
  48.     RECORDNUMBER total_records;
  49.     FIELDHANDLE  total_fields;
  50.  
  51.     PX_Table(void);
  52.     void set_data_buf(char *dbuf);
  53.     void set_path(char *dpath);
  54.     void set_name(char *fname);
  55.     int init_descriptors(char fcount, char icount, char sicount);
  56.     void add_field(char *type, char *name);
  57.     void add_secondary_index(FIELDHANDLE fh);
  58.     int init_data_file(void);
  59.     int pxtbladd(char *tpath);
  60.     int pxtblclose(void);
  61.     int pxtblcopy(char *tpath);
  62.     int pxtbldecrypt(void);
  63.     int pxtbldelete(void);
  64.     int pxtblempty(void);
  65.     int pxtblencrypt(char *psw);
  66.     int pxtblexist(int *exist_flag);
  67.     int pxtblname(int buflen, char *buf);
  68.     int pxtblnrecs(void);
  69.     int pxtblopen(void);
  70.     int pxtblprotected(int *protect_flag);
  71.     int pxtblrename(char *tpath);
  72.  
  73. };
  74.  
  75. //---------PX File------------------
  76.  
  77. class PX_File : public PX_Table{
  78.  
  79.   public:
  80.     RECORDHANDLE record_handle;
  81.     RECORDNUMBER record_number;
  82.     FIELDHANDLE field_handle;
  83.     LOCKHANDLE lock_handle;
  84.  
  85.     PX_File(void);
  86.     int pxfldblank(int *blank_flag);
  87.     int pxfldblank(char *field_name, int *blank_flag);
  88.     int pxfldhandle(char *field_name);
  89.     int pxfldname(char *field_name);
  90.     int pxfldtype(char *field_type);
  91.     int pxfldtype(char *field_name, char *field_type);
  92.     int pxgetalpha(int buf_size, char *buf);
  93.     int pxgetalpha(char *field_name, int buf_size, char *buf);
  94.     int pxgetdate(DATE *buf);
  95.     int pxgetdate(char *field_name, DATE *buf);
  96.     int pxgetdouble(double *buf);
  97.     int pxgetdouble(char *field_name, double *buf);
  98.     int pxgetlong(long *buf);
  99.     int pxgetlong(char *field_name, long *buf);
  100.     int pxgetshort(short *buf);
  101.     int pxgetshort(char *field_name, short *buf);
  102.     int pxneterruser(char *user);
  103.     int pxnetfilelock(int lock_type);
  104.     int pxnetfileunlock(int lock_type);
  105.     int pxnetreclock(void);
  106.     int pxnetrecunlock(void);
  107.     int pxnetreclocked(int *lock_flag);
  108.     int pxnetrecgotolock(void);
  109.     int pxnettblchanged(int *change_flag);
  110.     int pxnettbllock(int lock_type);
  111.     int pxnettblunlock(int lock_type);
  112.     int pxnettblrefresh(void);
  113.     int pxnetusername(char *buf);
  114.     int pxputalpha(char *buf);
  115.     int pxputalpha(char *field_name, char *buf);
  116.     int pxputblank(void);
  117.     int pxputblank(char *field_name);
  118.     int pxputdate(DATE buf);
  119.     int pxputdate(char *field_name, DATE buf);
  120.     int pxputdouble(double buf);
  121.     int pxputdouble(char *field_name, double buf);
  122.     int pxputlong(long buf);
  123.     int pxputlong(char *field_name, long buf);
  124.     int pxputshort(short buf);
  125.     int pxputshort(char *field_name, short buf);
  126.     int pxrecappend(void);
  127.     int pxrecbufclose(void);
  128.     int pxrecbufcopy(RECORDHANDLE rhandle);
  129.     int pxrecbufempty(void);
  130.     int pxrecbufopen(void);
  131.     int pxrecdelete(void);
  132.     int pxrecfirst(void);
  133.     int pxrecget(void);
  134.     int pxrecgoto(RECORDNUMBER rnum);
  135.     int pxrecinsert(void);
  136.     int pxreclast(void);
  137.     int pxrecnext(void);
  138.     int pxrecnflds(void);
  139.     int pxrecnum(void);
  140.     int pxrecprev(void);
  141.     int pxrecupdate(void);
  142.     int pxsrchfld(int mode);
  143.     int pxsrchfld(char *field_name, int mode);
  144.     int pxsrchkey(int num_key_fields, int mode);
  145.  
  146. };
  147.  
  148. //-----------------------------------------------------------------------------
  149. // TPXFile
  150. //-----------------------------------------------------------------------------
  151.  
  152. #define NOVELL_MINVER            2
  153. #define NOVELL_MINSUBVER         10
  154. #define NOVELL_MINREV            'a'
  155. #define NOVELL_MINSFT            1
  156. #define NOVELL_MINTTS            0
  157.  
  158. #define LOAD_RECORDS             1
  159. #define NO_LOAD_RECORDS          0
  160.  
  161. #define NETWORK_FOUND            1
  162. #define NO_NETWORK_FOUND         0
  163.  
  164. class TPXFile : public PX_File{
  165.  
  166.   private:
  167.     int *exception_list;
  168.  
  169.     void free_exceptions(void);
  170.     int check_netware(char *buf);
  171.     int put_field_value(int field_number, char load_flag);
  172.     int get_field_value(int field_number);
  173.     void reassemble_date(char *buf, int month, int day, int year);
  174.     void disassemble_date(char *buf, int *month, int *day, int *year);
  175.     void setstrsz(char *buf, int size);
  176.  
  177.   protected:
  178.     int put_field_values(int start_field, int field_number);
  179.     int get_field_values(void);
  180.  
  181.   public:
  182.     static int network_flag;
  183.  
  184.     TPXFile(void);
  185.     int add_exceptions(int *list);
  186.     int check_exceptions(int code);
  187.     int InitDriver(char *user_name);
  188.     int OpenTable(void);
  189.     int CloseTable(void);
  190.     int GetFirstRecord(void);
  191.     int GetNextRecord(void);
  192.     int SearchRecord(char *fname, int num_key_fields, int *elist, int mode, char load_flag);
  193.     int SearchLastRecord(char *fname, int num_key_fields, char load_flag);
  194.     int FindRecord(char *fname, int *elist, int mode, char load_flag);
  195.     int FindLastRecord(char *fname, char load_flag);
  196.     int UpdateRecord(void);
  197.     int InsertRecord(void);
  198.     int DeleteRecord(void);
  199.     int DeleteAllRecord(char *fname, int num_key_fields);
  200.  
  201. };
  202.  
  203. //-----------------------------------------------------------------------------
  204.  
  205. #endif
  206.