home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume25 / trn / part01 / threads.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-02  |  2.0 KB  |  108 lines

  1. /* $Id: threads.h,v 4.4.3.1 1991/11/22 04:12:21 davison Trn $
  2. **
  3. ** $Log:    threads.h,v $
  4. ** Revision 4.4.3.1  1991/11/22  04:12:21  davison
  5. ** Trn Release 2.0
  6. ** 
  7. */
  8.  
  9. #define DB_VERSION    2
  10.  
  11. typedef char        BYTE;
  12. typedef short        WORD;
  13. typedef long        LONG;
  14.  
  15. #define ROOT_ARTICLE    0x0001        /* article flag definitions */
  16. #define HAS_XREFS    0x0004        /* article has an xref line */
  17.  
  18. typedef struct Article {
  19.     ART_NUM num;
  20.     char *id;
  21.     struct Domain *domain;
  22.     struct Subject *subject;
  23.     struct Author *author;
  24.     struct Article *parent, *children, *siblings;
  25.     struct Root *root;
  26.     struct Article *id_link;
  27.     time_t date;
  28.     WORD child_cnt;
  29.     WORD flags;
  30.     WORD seq;
  31. } ARTICLE;
  32.  
  33. typedef struct Domain {
  34.     char *name;
  35.     ARTICLE *ids;
  36.     struct Domain *link;
  37. } DOMAIN;
  38.  
  39. typedef struct Author {
  40.     struct Author *link;        /* this link MUST be first */
  41.     char *name;
  42.     WORD seq;
  43.     WORD count;
  44. } AUTHOR;
  45.  
  46. typedef struct Subject {
  47.     struct Subject *link;        /* this link MUST be first */
  48.     char *str;
  49.     WORD seq;
  50.     WORD count;
  51. } SUBJECT;
  52.  
  53. typedef struct Root {
  54.     struct Root *link;            /* this link MUST be first */
  55.     ARTICLE *articles;
  56.     SUBJECT *subjects;
  57.     ART_NUM root_num;
  58.     WORD thread_cnt;
  59.     WORD subject_cnt;
  60.     WORD seq;
  61. } ROOT;
  62.  
  63. typedef struct {
  64.     LONG root_num;
  65.     WORD articles;
  66.     WORD thread_cnt;
  67.     WORD subject_cnt;
  68.     WORD pad_hack;
  69. } PACKED_ROOT;
  70.  
  71. typedef struct {
  72.     LONG num;
  73.     LONG date;
  74.     WORD subject, author;
  75.     WORD flags;
  76.     WORD child_cnt;
  77.     WORD parent;
  78.     WORD padding;
  79.     WORD siblings;
  80.     WORD root;
  81. } PACKED_ARTICLE;
  82.  
  83. typedef struct Total {
  84.     LONG first, last;
  85.     LONG string1;
  86.     LONG string2;
  87.     WORD root;
  88.     WORD article;
  89.     WORD subject;
  90.     WORD author;
  91.     WORD domain;
  92.     WORD pad_hack;
  93. } TOTAL;
  94.  
  95. typedef struct {
  96.     BYTE l[sizeof (LONG)];
  97.     BYTE w[sizeof (WORD)];
  98.     BYTE version;
  99.     BYTE pad_hack;
  100. } BMAP;
  101.  
  102. EXT bool word_same, long_same;
  103. EXT BMAP my_bmap, mt_bmap;
  104.  
  105. char *thread_name ANSI((char *));
  106. void mybytemap ANSI((BMAP *));
  107. void wp_bmap(), lp_bmap(), swap_bmaps();
  108.