## root/include/dbengcat.h

/* [<][>][^][v][top][bottom][index][help] */

## INCLUDED FROM

    /* Bbuuzzb low level system catalog management header.
       Rick Smereka, Copyright (C) 2001-2004.

       This program is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation; either version 2 of the License, or
       (at your option) any later version.

       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

       You should have received a copy of the GNU General Public License
       along with this program; if not, get a copy via the Internet at
       http://gnu.org/copyleft/gpl.html or write to the Free Software
       Foundation, Inc., 59 Temple Place, Suite 330, Boston,
       MA 02111-1307 USA

       You can contact the author via email at rsmereka@future-lab.com

       Original QNX version. Oct/2001, Rick Smereka

       Ported to Red Hat Linux and 32bit Windows. Dec/2001, Rick Smereka

       Added 'DBENG_CATALOG_FIELD_REPLICATE', 'DBENG_CATALOG_SSF_PORT'
       and 'DBENG_CATALOG_SSF_TNAME'. Jan/2002, Rick Smereka

       Added another parameter to prototypes 'dbeng_catalog_new_table'
       and 'dbeng_catalog_set_name'. Feb/2002, Rick Smereka

       Added prototype 'dbeng_catalog_list'. Aug/2002, Rick Smereka

       Ported to Debian Linux. Nov/2002, Rick Smereka

       Added define 'DBENG_CATALOG_FIELD_AUTOPACK'. Added new structure
       'dbengcat_details'. Added prototypes 'dbeng_catalog_table_details',
       'dbeng_catalog_init_table_details' and 'dbeng_catalog_term_table_details'.
       Mar/2004, Rick Smereka

       Ported to DOS. Jun/2005, Rick Smereka */

    #define DBENG_CATALOG_FIELD_TNAME 1
    #define DBENG_CATALOG_FIELD_FNAME 2
    #define DBENG_CATALOG_FIELD_REPLICATE 3
    #define DBENG_CATALOG_FIELD_AUTOPACK 4
    #define DBENG_CATALOG_SSF_PORT 1
    #define DBENG_CATALOG_SSF_TNAME 2
    #define DBENG_CATALOG_TYPE_TNAME 1
    #define DBENG_CATALOG_TYPE_FNAME 2
    #define DBENG_CATALOG_FNAME_IND '%'

    // structure returned by 'dbeng_catalog_table_details'

    struct dbengcat_details
       {
       char *logical_name;     // logical table name
       char *physical_name;    // OS path/file name
       int systable_flag;      // is it a system table?
       int apack;              // autopack threshold
    #ifdef MULTIUSER
       char *rep_list;         // replication list
    #endif
       };

    /* function prototypes */

    #ifdef __cplusplus
    extern "C"
    {
    #endif

    int dbeng_catalog_new(char *, char *);
    int dbeng_catalog_new_table(char *, char *, int);
    int dbeng_catalog_delete(char *);
    int dbeng_catalog_fname(char *, char *);
    int dbeng_catalog_list(char *, char *);
    int dbeng_catalog_init_table_details(char *, int, struct dbengcat_details **);
    int dbeng_catalog_term_table_details(struct dbengcat_details **);
    int dbeng_catalog_table_details(struct dbengcat_details *);

    #ifdef __cplusplus
    }
    #endif

/* [<][>][^][v][top][bottom][index][help] */