1 /*****************************************************************************/
2 /*                                                                           */
3 /*                 (C) Copyright 1992-1997  Alberto Pasquale                 */
4 /*                                                                           */
5 /*                   A L L   R I G H T S   R E S E R V E D                   */
6 /*                                                                           */
7 /*****************************************************************************/
8 /*                                                                           */
9 /* This source code is NOT in the public domain and it CANNOT be used or     */
10 /* distributed without written permission from the author.                   */
11 /*                                                                           */
12 /*****************************************************************************/
13 /*                                                                           */
14 /* How to contact the author:  Alberto Pasquale of 2:332/504@fidonet         */
15 /*                             Viale Verdi 106                               */
16 /*                             41100 Modena                                  */
17 /*                             Italy                                         */
18 /*                                                                           */
19 /*****************************************************************************/
20 
21 // Types.hpp
22 
23 
24 #ifndef TYPES_HPP
25 #define TYPES_HPP
26 
27 #include "addrs.hpp"
28 #include "v7.hpp"
29 #include "phtrans.hpp"
30 
31 
32 struct StrChain {
33     char *text;
34     StrChain *next;
35 };
36 
37 
38 struct CS {
39     word cost;
40     word ucost;
41 };
42 
43 
44 struct CO {        // cost table
45     char *mstr;
46     word cost;          // call cost (analog)
47     word ucost;         // user cost (analog)
48     word costdig;       // call cost (digital) (def. =cost)
49     word ucostdig;      // user cost (digital) (def. =ucost)
50     CO   *next;
51 };
52 
53 
54 struct DL {        // dial table
55     char  *mstr;
56     char  *pre;
57     char  *post;
58     StrChain *Exchange_head; // used for LocalValues/LocalExchanges
59     CO    *co;       // used when combined dial/cost is used
60     DL    *next;
61 };
62 
63 
64 #define TD_DIGITAL  0x01
65 
66 struct TD {         // TypeDef
67    char flag[50];
68    byte type;
69    byte info;       // additional info on the flag, bit-wise
70    PT   *pt;        // Phone Trans pointer, NULL if none.
71    TD   *next;
72 };
73 
74 
75 struct FD {         // FlagDef
76    char flag[50];
77    word flag_w;
78    FD   *next;
79 };
80 
81 
82 struct ADRDATA {        // password, phone, flags, cost
83    ADR adr;
84    union {
85       char *txt;
86       struct {
87         word w1;
88         word w2;
89       } w;
90    };
91    ADRDATA *next;
92 };
93 
94 
95                         // V7DATA.flags
96 
97 #define V7DTP_F     0x0001  // Make v7+ DTP data file
98 #define V7PDX_F     0x0002  // Make v7+ PDX Phone Index
99 #define V7Dsk_F     0x0004  // Link using Disk (otherwise memory)
100 #define Stats_F     0x0008  // Log Statistics for this output nodelist
101 
102 
103 struct V7DATA {
104     char *nodex;            // No extension
105     char *sysopndx;
106     word flags;
107 };
108 
109 
110 
111 #endif
112 
113