1 /*  objacces.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 * File Name:  objacces.h
27 *
28 * Author:  James Ostell
29 *
30 * Version Creation Date: 1/1/91
31 *
32 * $Revision: 6.0 $
33 *
34 * File Description:  Object manager interface for module NCBI-Access
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * Date	   Name        Description of modification
39 * -------  ----------  -----------------------------------------------------
40 *
41 *
42 * $Log: objacces.h,v $
43 * Revision 6.0  1997/08/25 18:49:07  madden
44 * Revision changed to 6.0
45 *
46 * Revision 4.1  1997/06/19 18:40:35  vakatov
47 * [WIN32,MSVC++]  Adopted for the "NCBIOBJ.LIB" DLL'ization
48 *
49 * Revision 4.0  1995/07/26 13:48:06  ostell
50 * force revision to 4.0
51 *
52  * Revision 3.1  1995/05/15  21:22:00  ostell
53  * added Log line
54  *
55 *
56 *
57 * ==========================================================================
58 */
59 
60 #ifndef _NCBI_Access_
61 #define _NCBI_Access_
62 
63 #ifndef _ASNTOOL_
64 #include <asn.h>
65 #endif
66 
67 #undef NLM_EXTERN
68 #ifdef NLM_IMPORT
69 #define NLM_EXTERN NLM_IMPORT
70 #else
71 #define NLM_EXTERN extern
72 #endif
73 
74 #ifdef __cplusplus
75 extern "C" {
76 #endif
77 
78 /*****************************************************************************
79 *
80 *   loader
81 *
82 *****************************************************************************/
83 NLM_EXTERN Boolean LIBCALL AccessAsnLoad PROTO((void));
84 
85 /*****************************************************************************
86 *
87 *   internal structures for NCBI-Access objects
88 *
89 *****************************************************************************/
90 
91 /*****************************************************************************
92 *
93 *   Link-set
94 *
95 *****************************************************************************/
96                                 /* NOTE: in the uids array, there are num+1
97                                    uids, with the last being 0 */
98 typedef struct linkset
99 {
100     Int4 num;                    /* number of uids */
101     Int4Ptr uids;                /* uids of type "target" */
102     Int4Ptr weights;             /* weights, if neighbors */
103 } LinkSet, PNTR LinkSetPtr;
104 
105 NLM_EXTERN LinkSetPtr LIBCALL LinkSetNew PROTO((void));
106 NLM_EXTERN LinkSetPtr LIBCALL LinkSetFree PROTO((LinkSetPtr ufp));
107 NLM_EXTERN LinkSetPtr LIBCALL LinkSetAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
108 NLM_EXTERN Boolean    LIBCALL LinkSetAsnWrite PROTO((LinkSetPtr ufp, AsnIoPtr aip, AsnTypePtr atp));
109 
110 #ifdef __cplusplus
111 }
112 #endif
113 
114 #undef NLM_EXTERN
115 #ifdef NLM_EXPORT
116 #define NLM_EXTERN NLM_EXPORT
117 #else
118 #define NLM_EXTERN
119 #endif
120 
121 #endif
122 
123