//  This may look like C code, but it is really -*- C++ -*-

//  ------------------------------------------------------------------
//  The Goldware Library
//  Copyright (C) 1990-1999 Odinn Sorensen
//  ------------------------------------------------------------------
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the GNU Library General Public
//  License as published by the Free Software Foundation; either
//  version 2 of the License, or (at your option) any later version.
//
//  This library 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
//  Library General Public License for more details.
//
//  You should have received a copy of the GNU Library General Public
//  License along with this program; if not, write to the Free
//  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
//  MA 02111-1307, USA
//  ------------------------------------------------------------------
//  $Id$
//  ------------------------------------------------------------------

#ifndef __gs_db_h
#define __gs_db_h


//  ------------------------------------------------------------------

#include <gdefs.h>


//  ------------------------------------------------------------------

#if defined(GOLD_CANPACK)
    #pragma pack(1)
#endif


//  ------------------------------------------------------------------
//  D'Bridge 1.30 structs

typedef struct
{
    byte  allocated;
    char  tag[17];
    char  echoid[57];
} DB130_AA1;

typedef struct
{
    char    desc[41];
    short   group;
    char    msgbase;
    char    path[49];
    char    kind;
    short   board;
    byte    ispvt;
    byte    tinyseenbys;
    char    origin[57];
    char    defaultpriority;
    ftn_addr addr;
    short   purge;
    short   preserve;
    short   security;
    char    archive[57];
    char    forwardto[5][57];
} DB130_AA2;


//  ------------------------------------------------------------------
//  D'Bridge 1.30+ QBBS lastread records

typedef struct
{
    char  name[37];
    struct
    {
        word  msgno;
        word  index;
    } lastread[200];
} DB130_LRQ;


//  ------------------------------------------------------------------
//  D'Bridge B1046 DBRIDGE.ADF struct

typedef struct
{
    byte    allocated;        // 000
    char    tag[17];          // 001
    char    echoid[57];       // 018
    char    desc[41];         // 075
    short   group;            // 116
    char    msgbase;          // 118
    char    path[49];         // 119
    char    kind;             // 168
    short   board;            // 169
    byte    ispvt;            // 171
    byte    tinyseenbys;      // 172
    char    origin[57];       // 173
    char    defaultpriority;  // 230
    ftn_addr addr;            // 231
    short   purge;
    short   preserve;
    short   security;
    char    archive[57];
    char    forwardto[5][57];
} DB1046_ADF;               // 587 bytes


//  ------------------------------------------------------------------
//  D'Bridge B1047.A22 DBRIDGE.ADF struct

typedef struct
{
    byte    allocated;        // 000
    char    alertflag;        // 001
    char    tag[17];          // 002
    char    echoid[57];       // 019
    char    desc[41];         // 076
    short   group;            // 117
    char    msgbase;          // 119
    char    path[49];         // 120
    char    kind;             // 169
    short   board;            // 170
    byte    ispvt;            // 172
    char    tinyseenbys;      // 173
    char    origin[57];       // 174
    char    defaultpriority;  // 231
    ftn_addr addr;            // 232
    byte    fill[18];
    short   purge;
    short   preserve;
    short   security;
    char    archive[57];
    char    forwardto[5][57];
} DB1047A22_ADF;            // 606 bytes


//  ------------------------------------------------------------------
//  D'Bridge B1047.A27+ DBRIDGE.ADF struct

typedef struct
{
    byte    allocated;        // 000
    char    alertflag;        // 001
    char    tag[17];          // 002
    char    echoid[57];       // 019
    char    desc[41];         // 076
    short   group;            // 117
    char    msgbase;          // 119
    char    path[49];         // 120
    char    kind;             // 169
    short   board;            // 170
    byte    ispvt;            // 172
    char    tinyseenbys;      // 173
    char    origin[57];       // 174
    char    defaultpriority;  // 231
    ftn_addr addr;            // 232
    byte    fill[13];         // 240
    short   purge;            // 253
    short   preserve;         // 255
    short   security;         // 257
    char    archive[57];      // 259
    char    forwardto[5][57]; // 316
} DB1047A27_ADF;            // 601 bytes


//  ------------------------------------------------------------------
//  D'Bridge B2011+ DBRIDGE.ADF struct

typedef struct
{
    byte  allocated;          // 000
    char  alertflag;          // 001
    char  tag[17];            // 002
    char  echoid[57];         // 019
    char  desc[41];           // 076
    short group;              // 117
    char  msgbase;            // 119
    char  path[49];           // 120
    char  kind;               // 169
    short board;              // 170
    byte  ispvt;              // 172
    char  tinyseenbys;        // 173
    char  origin[57];         // 174
    char  defaultpriority;    // 231
    ftn_addr addr;            // 232
    byte  fill[13];           // 240
    short purge;              // 253
    short preserve;           // 255
    short security;           // 257
    char  archive[57];        // 259
    char  forwardto[19][77];  // 316
} DB2011_ADF;               // 1779 bytes


//  ------------------------------------------------------------------

#if defined(GOLD_CANPACK)
    #pragma pack()
#endif


//  ------------------------------------------------------------------

#endif

//  ------------------------------------------------------------------
