1 /* objentr.h 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information 6 * 7 * This software/database is a "United States Government Work" under the 8 * terms of the United States Copyright Act. It was written as part of 9 * the author's official duties as a United States Government employee and 10 * thus cannot be copyrighted. This software/database is freely available 11 * to the public for use. The National Library of Medicine and the U.S. 12 * Government have not placed any restriction on its use or reproduction. 13 * 14 * Although all reasonable efforts have been taken to ensure the accuracy 15 * and reliability of the software and data, the NLM and the U.S. 16 * Government do not and cannot warrant the performance or results that 17 * may be obtained by using this software or data. The NLM and the U.S. 18 * Government disclaim all warranties, express or implied, including 19 * warranties of performance, merchantability or fitness for any particular 20 * purpose. 21 * 22 * Please cite the author in any work or product based on this material. 23 * 24 * =========================================================================== 25 * 26 * RCS $Id: objentr.h,v 6.3 1999/08/17 16:31:27 kans Exp $ 27 * 28 * Author: Ostell, Schuler 29 * 30 * Version Creation Date: 6/28/94 31 * 32 * File Description: 33 * entrez index access library for Entrez 34 * 35 * Modifications: 36 * -------------------------------------------------------------------------- 37 * Date Name Description of modification 38 * ------- ---------- ----------------------------------------------------- 39 * 06-28-94 Schuler This file created from definitions extracted 40 * from accentr.h 41 * 11-21-94 Schuler Changed DocUid from long to Int4 42 * 11-30-94 Schuler Added cd_count field to EntrezInfo 43 * 03-13-95 Schuler Bumped DocType_MAX up to 8 (was 5) 44 * 05-16-94 Schuler Added RCS Log directive. Comments will henceforth 45 * be inserted automatically into the source at the 46 * time it is checked into the system. 47 48 $Log: objentr.h,v $ 49 Revision 6.3 1999/08/17 16:31:27 kans 50 increased field tag size to handle current data 51 52 Revision 6.2 1998/03/26 23:23:19 yaschenk 53 adding CdRomAsnLoad() as extern function to load Asn tree 54 55 Revision 6.1 1997/10/07 22:09:46 volodya 56 new data fields (entrezDate, pStatus, pLanguage, pPubType) have added to DocSum structure 57 58 Revision 6.0 1997/08/25 18:13:18 madden 59 Revision changed to 6.0 60 61 Revision 5.3 1997/06/26 21:55:48 vakatov 62 [PC] DLL'd "ncbicdr.lib", "ncbiacc.lib", "ncbinacc.lib" and "ncbicacc.lib" 63 64 Revision 5.2 1997/03/05 16:48:47 brandon 65 added link information to EntrezInfo structure 66 67 * Revision 5.1 1996/07/22 15:31:40 brandon 68 * *** empty log message *** 69 * 70 * Revision 5.0 1996/05/28 13:55:34 ostell 71 * Set to revision 5.0 72 * 73 * Revision 4.0 1995/07/26 13:50:32 ostell 74 * force revision to 4.0 75 * 76 * Revision 1.8 1995/07/10 19:42:49 epstein 77 * add object loaders for DocSum 78 * 79 * Revision 1.7 1995/05/16 14:12:46 schuler 80 * Automatic comment insertion enabled 81 * 82 * ========================================================================== 83 */ 84 85 #ifndef _ObjEntr_h_ 86 #define _ObjEntr_h_ 87 88 #undef NLM_EXTERN 89 #ifdef NLM_IMPORT 90 #define NLM_EXTERN NLM_IMPORT 91 #else 92 #define NLM_EXTERN extern 93 #endif 94 95 #ifdef __cplusplus 96 extern "C" { 97 #endif 98 99 100 #define DocType_MAX 5 101 102 /*typedef long DocUid;*/ 103 #define DocUid Int4 104 105 typedef struct CdDate 106 { 107 unsigned year : 12; 108 unsigned month : 5; 109 unsigned day : 6; 110 } 111 CdDate; 112 113 typedef struct DocSum 114 { 115 DocUid uid; 116 DocUid secondaryUid; 117 unsigned non_document :1; 118 unsigned translated_title :1; 119 unsigned no_authors :1; 120 unsigned no_abstract :1; 121 unsigned is_segmented :1; 122 unsigned is_partial :1; 123 unsigned not_yet_neighbored :1; 124 CdDate create; 125 CdDate modify; 126 char *caption; 127 char *title; 128 char *extra; 129 short link_count[DocType_MAX]; 130 Uint4 entrezDate; /* Entrez Date */ 131 CharPtr pStatus; /* Article processing status */ 132 CharPtr pLanguage; /* Language abbreviations */ 133 CharPtr pPubType; /* Publication type */ 134 } 135 DocSum, PNTR DocSumPtr; 136 137 typedef enum PostType 138 { 139 PostType_sort, 140 PostType_unsort, 141 PostType_hier, 142 PostType_text, 143 PostType_other =255 144 } 145 PostType; 146 147 typedef struct EntrezFieldData 148 { 149 long num_terms; /* number of terms in this field */ 150 short num_bucket; /* number of buckets of terms */ 151 } 152 EntrezFieldData, *EntrezFieldDataPtr; 153 154 typedef struct EntrezTypeData 155 { 156 long num; /* number of entries */ 157 long num_uids; /* number of uids */ 158 DocUid minuid; /* minimum uid for this type */ 159 DocUid maxuid; /* maxuid for this type */ 160 short num_bucket; /* number of uid buckets */ 161 EntrezFieldData *fields; 162 } 163 EntrezTypeData, *EntrezTypeDataPtr; 164 165 typedef struct EntrezTypeInfo 166 { 167 short id; /* id number to pass to APIs */ 168 char tag[4]; /* 2-letter tag (for internal use) */ 169 char *name; /* short string to go on menu */ 170 char *descr; /* longer, descriptive string */ 171 char *asntype; /* ASN.1 type (e.g. "Medline-entry") */ 172 } 173 EntrezTypeInfo; 174 175 typedef struct EntrezFieldInfo 176 { 177 short id; /* id number to pass to APIs */ 178 char tag[7]; /* 4-letter tag (for internal use) */ 179 char *name; /* short string to go on menu */ 180 char *descr; /* longer, descriptive string */ 181 unsigned single_token :1; /* all terms are single-token */ 182 unsigned has_special :1; /* terms may have special postings */ 183 unsigned hier_avail :1; /* a hierarchical counterpart exists */ 184 short hier_id; /* field-id of hierarchy */ 185 PostType post_type; /* postings type */ 186 } 187 EntrezFieldInfo; 188 189 typedef struct EntrezLinkInfo 190 { 191 Int4 id; /* id number to pass to APIs (volatile) */ 192 CharPtr tag; /* identifier string (for internal use) */ 193 CharPtr name; /* short string to go on menu */ 194 CharPtr descr; /* longer, descriptive string */ 195 Int4 dbfrom; /* database link points from */ 196 Int4 dbto; /* database link points to */ 197 Int4 datasize; /* size of link-associated data (bytes) */ 198 Int4 reciprocal; /* id number of reciprocal link(volatile)*/ 199 } 200 EntrezLinkInfo; 201 202 typedef struct EntrezDivInfo 203 { 204 char tag[4]; /* 3-letter tag (for internal use) */ 205 char *descr; /* Division description */ 206 char *reldate; /* Release number and/or date string */ 207 CdDate date; /* Structured release date */ 208 long *docs; /* Document counts for each type */ 209 } 210 EntrezDivInfo; 211 212 typedef struct EntrezInfo 213 { 214 char *volume_label; /* name */ 215 char *descr; /* description */ 216 short version; /* major release number */ 217 short issue; /* minor release number */ 218 short format; /* (for internal use) */ 219 CdDate release_date; /* Entrez release date */ 220 CdDate close_date; /* close-of-date date for Entrez release */ 221 Boolean no_compression; /* **DEFUNCT** */ 222 short huff_count; /* **DEFUNCT** */ 223 short *huff_left; /* **DEFUNCT** */ 224 short *huff_right; /* **DEFUNCT** */ 225 short type_count; /* number of document types */ 226 EntrezTypeData *types; 227 EntrezTypeInfo *type_info; 228 char **type_names; /* **DEFUNCT** Use type_info[n]->name instead */ 229 short type_bucket_size; 230 short field_count; 231 EntrezFieldInfo *field_info; 232 char **field_names; /* **DEFUNCT** Use field_info[n]->name instead */ 233 short field_bucket_size; 234 short div_count; /* number of divisions */ 235 EntrezDivInfo *div_info; /* division-specific info */ 236 int cd_count; /* how many CD-ROMs in distribution? zero for net */ 237 Int4 link_count; 238 EntrezLinkInfo *link_info; 239 } 240 EntrezInfo, *EntrezInfoPtr; 241 242 NLM_EXTERN Boolean LIBCALL CdRomAsnLoad PROTO((void)); 243 NLM_EXTERN EntrezInfoPtr LIBCALL EntrezInfoFree PROTO((EntrezInfo *info)); 244 NLM_EXTERN EntrezInfoPtr LIBCALL EntrezInfoAsnRead PROTO((AsnIo *aip, AsnType *orig)); 245 NLM_EXTERN Boolean LIBCALL EntrezInfoAsnWrite PROTO((EntrezInfo *info, AsnIo *aip, AsnType *orig)); 246 247 248 NLM_EXTERN DocSumPtr LIBCALL DocSumNew PROTO (( void )); 249 NLM_EXTERN DocSumPtr LIBCALL DocSumAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); 250 NLM_EXTERN Boolean LIBCALL DocSumAsnWrite PROTO (( DocSumPtr , AsnIoPtr, AsnTypePtr)); 251 252 #ifdef __cplusplus 253 } 254 #endif 255 256 #undef NLM_EXTERN 257 #ifdef NLM_EXPORT 258 #define NLM_EXTERN NLM_EXPORT 259 #else 260 #define NLM_EXTERN 261 #endif 262 263 #endif 264 265 266