NCBI C Toolkit Cross Reference

C/cdromlib/cdconfig.h


  1 /* cdconfig.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: cdconfig.h,v 6.0 1997/08/25 18:12:48 madden Exp $
 27 *
 28 * Author:  Jonathan Epstein
 29 *
 30 * Version Creation Date: 11/24/92
 31 *
 32 * File Description:
 33         header for cdrom-library complex configuration mechanism
 34 *
 35 * Modifications:  
 36 * --------------------------------------------------------------------------
 37 * Date     Name        Description of modification
 38 * -------  ----------  -----------------------------------------------------
 39 * 05-16-94 Schuler     Added RCS Log directive.  Comments will henceforth
 40 *                      be inserted automatically into the source at the
 41 *                      time it is checked into the system.
 42 
 43 $Log: cdconfig.h,v $
 44 Revision 6.0  1997/08/25 18:12:48  madden
 45 Revision changed to 6.0
 46 
 47 Revision 5.1  1997/06/26 21:55:27  vakatov
 48 [PC] DLL'd "ncbicdr.lib", "ncbiacc.lib", "ncbinacc.lib" and "ncbicacc.lib"
 49 
 50 Revision 5.0  1996/05/28 13:55:34  ostell
 51 Set to revision 5.0
 52 
 53  * Revision 4.0  1995/07/26  13:50:32  ostell
 54  * force revision to 4.0
 55  *
 56  * Revision 1.7  1995/05/16  14:12:46  schuler
 57  * Automatic comment insertion enabled
 58  *
 59 
 60 
 61 
 62 *
 63 * ==========================================================================
 64 */
 65 
 66 #ifndef _CDCONFIG_
 67 
 68 #define _CDCONFIG_ 1
 69 
 70 #define ENTR_REF_CHAN        "ENTR_REF"
 71 #define ENTR_SEQ_CHAN        "ENTR_SEQ"
 72 #define ENTR_LINKS_CHAN      "ENTR_LINK"
 73 
 74 typedef Boolean (* ConfCtlProc) PROTO((VoidPtr parm));
 75 
 76 typedef struct Media {
 77         CharPtr media_alias; /* name in config file */
 78         Int2    media_type;  /* CD or NET or ... */
 79 #define MEDIUM_UNKNOWN  0
 80 #define MEDIUM_CD       1
 81 #define MEDIUM_NETWORK  2
 82 #define MEDIUM_DISK     4
 83         Boolean inited_partial; /* e.g., initialization which can be performed */
 84                                                         /* without actually inserting the CD-ROM       */
 85         Boolean invalid;
 86         Boolean inited_total;
 87         Boolean in_use;
 88         Boolean is_live;     /* Is the device "live", e.g., a CD-ROM which is  */
 89                              /* assumed to be currently inserted?              */
 90         CharPtr formal_name; /* Formal name to be used when talking to user */
 91         EntrezInfoPtr entrez_info;
 92     ConfCtlProc swapOutMedia;
 93     ConfCtlProc swapInMedia;
 94     ConfCtlProc finiMedia;
 95         VoidPtr media_info;  /* media-specific information */
 96         struct Media PNTR next;
 97         struct Media PNTR next_lru; /* doubly-linked pointers in LRU chain */
 98         struct Media PNTR prev_lru;
 99         Boolean LRUineligible;      /* media ineligible for Least Recently Used */
100 } Media, PNTR MediaPtr;
101 
102 typedef struct DrasticActions {
103         MediaPtr from_media;
104         MediaPtr to_media;
105         Boolean  is_drastic;
106         struct DrasticActions PNTR next; /* next in linked list */
107 } DrasticActions, PNTR DrasticActionsPtr;
108 
109 typedef struct DataSourceDbKey {
110     CharPtr section;
111     CharPtr field1;
112     CharPtr field2;
113 } DataSourceDbKey;
114 
115 typedef struct DataSource {
116         Int2            priority;
117         Boolean         no_drastic_action;
118         Boolean         already_searched; /* reset upon each call to SelectDataSource */
119         MediaPtr        media;
120         CharPtr         channel; /* name in config file */
121         struct DataSource PNTR next;
122 } DataSource, PNTR DataSourcePtr;
123 
124 typedef struct DataSourceDb {
125         DataSourceDbKey key;
126         DataSourcePtr   list;
127         struct DataSourceDb PNTR next;
128 } DataSourceDb, PNTR DataSourceDbPtr;
129 
130 
131 #undef NLM_EXTERN
132 #ifdef NLM_IMPORT
133 #define NLM_EXTERN NLM_IMPORT
134 #else
135 #define NLM_EXTERN extern
136 #endif
137 
138 #ifdef __cplusplus
139 extern "C" {
140 #endif
141 
142 NLM_EXTERN void    SetSoleMedia               PROTO((void));
143 NLM_EXTERN Boolean SelectDataSource           PROTO((CharPtr section,
144                                                                                           CharPtr field1, CharPtr field2));
145 NLM_EXTERN Boolean SelectDataSourceByType     PROTO((DocType type,
146                                                                                           CharPtr field1, CharPtr field2));
147 NLM_EXTERN Boolean SelectDataLinksByTypes     PROTO((DocType type,
148                                                                                           DocType link_to_type));
149 NLM_EXTERN Boolean SelectNextDataSource       PROTO((void));
150 NLM_EXTERN void ConfigInit                    PROTO((void));
151 NLM_EXTERN void ConfigFini                    PROTO((void));
152 NLM_EXTERN MediaPtr GetCurMedia               PROTO((void));
153 NLM_EXTERN Int2     CurMediaType              PROTO((void));
154 NLM_EXTERN MediaPtr SetCurMedia               PROTO((MediaPtr NewMedia));
155 NLM_EXTERN MediaPtr PreInitMedia              PROTO((CharPtr buf));
156 NLM_EXTERN Boolean  CdIsInserted              PROTO((MediaPtr media));
157 NLM_EXTERN Int2     ParseMedia                PROTO((ConfCtlProc initfunc, Int2 media_mask));
158 NLM_EXTERN EntrezInfoPtr EntrezInfoMerge      PROTO((void));
159 
160 #ifdef __cplusplus
161 }
162 #endif
163 
164 #undef NLM_EXTERN
165 #ifdef NLM_EXPORT
166 #define NLM_EXTERN NLM_EXPORT
167 #else
168 #define NLM_EXTERN
169 #endif
170 
171 #endif /* _CDCONFIG_ */
172 

source navigation ]   [ diff markup ]   [ identifier search ]   [ freetext search ]   [ file search ]  

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.