1 /**
2 * Begin svn Header
3 * $Rev: 29 $:	Revision of last commit
4 * $Author: josephodada@gmail.com $:	Author of last commit
5 * $Date: 2013-04-25 10:57:46 +0100 (Thu, 25 Apr 2013) $:	Date of last commit
6 * $HeadURL: https://numl.googlecode.com/svn/trunk/libnuml/src/common/numlfwd.h $
7 * $Id: numlfwd.h 29 2013-04-25 09:57:46Z josephodada@gmail.com $
8 * End svn Header
9 * ***************************************************************************
10 * This file is part of libNUML.  Please visit http://code.google.com/p/numl/for more
11 * information about NUML, and the latest version of libNUML.
12 * Copyright (c) 2013 The University of Manchester.
13 *
14 * This library is free software; you can redistribute it and/or modify it
15 * under the terms of the GNU Lesser General Public License as published
16 * by the Free Software Foundation.  A copy of the license agreement is
17 * provided in the file named "LICENSE.txt" included with this software
18 * distribution and also available online as http://www.gnu.org/licenses/lgpl.html
19 *
20 * The original code was initially developed by:
21 *
22 * 	SBML Team
23 * 	Control and Dynamical Systems, MC 107-81
24 * 	California Institute of Technology
25 * 	Pasadena, CA, 91125, USA
26 *
27 *  	http://www.sbml.org
28 * 	mailto:sbml-team@caltech.edu
29 *
30 * Adapted for NUML by:
31 *
32 * 	NUML Team
33 * 	Computational Systems Biology Group
34 * 	School of Computer Science
35 * 	The University of Manchester
36 * 	Manchester, M1 7DN UK
37 * 	mailto:josephodada@gmail.com
38 *
39 *   Contributor(s):
40 *   Joseph O. Dada, The University of Manchester - initial LIBNUML API and implementation
41 * ***************************************************************************
42 **/
43 
44 
45 /**
46  *
47  * Declaring all types up-front avoids compilation errors of the form
48  * <em>"Redefinition of type 'Foo'"</em>, and allows our combined C/C++
49  * headers to depend minimally upon each other.  Put another way, the type
50  * definitions below serve the same purpose as <tt>class Foo;</tt> forward
51  * declarations in C++ code.
52  */
53 
54 #ifndef numlfwd_h
55 #define numlfwd_h
56 
57 #include <sbml/common/libsbml-namespace.h>
58 #include <numl/common/libnuml-namespace.h>
59 #include <numl/common/libnuml-config.h>
60 
61 
62 #ifdef __cplusplus
63 /**
64  * Defined as a class when compiling for C++ and as a C struct when
65  * compiling for C.
66  */
67 #  define CLASS_OR_STRUCT class
68 #else
69 /**
70  * Defined as a class when compiling for C++ and as a C struct when
71  * compiling for C.
72  */
73 #  define CLASS_OR_STRUCT struct
74 #endif  /* __cplusplus */
75 
76 LIBNUML_CPP_NAMESPACE_BEGIN
77 
78 /**
79  * @var typedef class NMBase NMBase_t
80  * @copydoc NMBase
81  */
82 typedef CLASS_OR_STRUCT NMBase                     NMBase_t;
83 
84 /**
85  * @var typedef class NUMLDocument NUMLDocument_t
86  * @copydoc NUMLDocument
87  */
88 typedef CLASS_OR_STRUCT NUMLDocument           NUMLDocument_t;
89 
90 /**
91  * @var typedef class Model Model_t
92  * @copydoc Model
93  */
94 // TODO remove typedef CLASS_OR_STRUCT Model                     Model_t;
95 
96 /**
97  * @var typedef class OntologyTerm OntologyTerm_t
98  * @copydoc OntologyTerm
99  */
100 typedef CLASS_OR_STRUCT OntologyTerm        OntologyTerm_t;
101 
102 
103 /**
104  * @var typedef class Dimension Dimension_t
105  * @copydoc Dimension
106  */
107 typedef CLASS_OR_STRUCT Dimension       Dimension_t;
108 /**
109  * @var typedef class CompositeValue CompositeValue_t
110  * @copydoc CompositeValue
111  */
112 typedef CLASS_OR_STRUCT CompositeValue       CompositeValue_t;
113 
114 /**
115  * @var typedef class Tuple Tuple_t
116  * @copydoc Tuple
117  */
118 typedef CLASS_OR_STRUCT Tuple       Tuple_t;
119 
120 /**
121  * @var typedef class AtomicValue AtomicValue_t
122  * @copydoc AtomicValue
123  */
124 typedef CLASS_OR_STRUCT AtomicValue       AtomicValue_t;
125 
126 /**
127  * @var typedef class Method Method_t
128  * @copydoc Method
129  */
130 //TODO remove typedef CLASS_OR_STRUCT Method        Method_t;
131 
132 /**
133  * @var typedef class Software Software_t
134  * @copydoc Software
135  */
136 //TODO remove typedef CLASS_OR_STRUCT Software        Software_t;
137 
138 /**
139  * @var typedef class Result Result_t
140  * @copydoc Result
141  */
142 //typedef CLASS_OR_STRUCT Result        Result_t;
143 
144 /**
145  * @var typedef class ResultComponent ResultComponent_t
146  * @copydoc ResultComponent
147  */
148 typedef CLASS_OR_STRUCT ResultComponent       ResultComponent_t;
149 
150 /**
151  * @var typedef class DimensionDescription DimensionDescription_t
152  * @copydoc DimensionDescription
153  */
154 typedef CLASS_OR_STRUCT DimensionDescription       DimensionDescription_t;
155 
156 /**
157  * @var typedef class CompositeDescription CompositeDescription_t
158  * @copydoc CompositeDescription
159  */
160 typedef CLASS_OR_STRUCT CompositeDescription       CompositeDescription_t;
161 
162 /**
163  * @var typedef class TupleDescription TupleDescription_t
164  * @copydoc TupleDescription
165  */
166 typedef CLASS_OR_STRUCT TupleDescription       TupleDescription_t;
167 
168 /**
169  * @var typedef class AtomicDescription AtomicDescription_t
170  * @copydoc AtomicDescription
171  */
172 typedef CLASS_OR_STRUCT AtomicDescription       AtomicDescription_t;
173 
174 /**
175  * @var typedef class NUMLReader NUMLReader_t
176  * @copydoc NUMLReader
177  */
178 typedef CLASS_OR_STRUCT NUMLReader                NUMLReader_t;
179 
180 /**
181  * @var typedef class NUMLWriter NUMLWriter_t
182  * @copydoc NUMLWriter
183  */
184 typedef CLASS_OR_STRUCT NUMLWriter                NUMLWriter_t;
185 
186 /**
187  * @var typedef class NUMLError NUMLError_t
188  * @copydoc NUMLError
189  */
190 typedef CLASS_OR_STRUCT NUMLError                 NUMLError_t;
191 
192 /**
193  * @var typedef class NUMLNamespaces NUMLNamespaces_t
194  * @copydoc NUMLNamespaces
195  */
196 typedef CLASS_OR_STRUCT NUMLNamespaces             NUMLNamespaces_t;
197 
198 /**
199  * @var typedef class NUMLList NUMLList_t
200  * @copydoc NUMLList
201  */
202 typedef CLASS_OR_STRUCT NUMLList                      NUMLList_t;
203 
204 LIBNUML_CPP_NAMESPACE_END
205 
206 LIBSBML_CPP_NAMESPACE_BEGIN
207 /**
208  * @var typedef class ASTNode ASTNode_t
209  * @copydoc ASTNode
210  */
211 typedef CLASS_OR_STRUCT ASTNode                   ASTNode_t;
212 
213 /**
214  * @var typedef class List List_t
215  * @copydoc List
216  */
217 typedef CLASS_OR_STRUCT List                      List_t;
218 
219 /**
220  * @var typedef class XMLError XMLError_t
221  * @copydoc XMLError
222  */
223 typedef CLASS_OR_STRUCT XMLError                  XMLError_t;
224 
225 /**
226  * @var typedef class XMLErrorLog XMLErrorLog_t
227  * @copydoc XMLErrorLog
228  */
229 typedef CLASS_OR_STRUCT XMLErrorLog               XMLErrorLog_t;
230 
231 /**
232  * @var typedef class XMLNode XMLNode_t
233  * @copydoc XMLNode
234  */
235 typedef CLASS_OR_STRUCT XMLNode                   XMLNode_t;
236 
237 /**
238  * @var typedef class XMLAttributes XMLAttributes_t
239  * @copydoc XMLAttributes
240  */
241 typedef CLASS_OR_STRUCT XMLAttributes             XMLAttributes_t;
242 
243 /**
244  * @var typedef class XMLNamespaces XMLNamespaces_t
245  * @copydoc XMLNamespaces
246  */
247 typedef CLASS_OR_STRUCT XMLNamespaces		  XMLNamespaces_t;
248 
249 /**
250  * @var typedef class XMLToken XMLToken_t
251  * @copydoc XMLToken
252  */
253 typedef CLASS_OR_STRUCT XMLToken                  XMLToken_t;
254 
255 /**
256  * @var typedef class XMLInputStream XMLInputStream_t
257  * @copydoc XMLInputStream
258  */
259 typedef CLASS_OR_STRUCT XMLInputStream            XMLInputStream_t;
260 
261 
262 /**
263  * @var typedef class XMLOutputStream XMLOutputStream_t
264  * @copydoc XMLOutputStream
265  */
266 typedef CLASS_OR_STRUCT XMLOutputStream           XMLOutputStream_t;
267 
268 
269 /**
270  * @var typedef class XMLTriple XMLTriple_t
271  * @copydoc XMLTriple
272  */
273 typedef CLASS_OR_STRUCT XMLTriple                 XMLTriple_t;
274 
275 /**
276  * @var typedef class Date Date_t
277  * @copydoc Date
278  */
279 typedef CLASS_OR_STRUCT Date                      Date_t;
280 
281 /**
282  * @var typedef class ModelCreator ModelCreator_t
283  * @copydoc ModelCreator
284  */
285 typedef CLASS_OR_STRUCT ModelCreator              ModelCreator_t;
286 
287 /**
288  * @var typedef class CVTerm CVTerm_t
289  * @copydoc CVTerm
290  */
291 typedef CLASS_OR_STRUCT CVTerm              CVTerm_t;
292 
293 /**
294  * @var typedef class ModelHistory ModelHistory_t
295  * @copydoc ModelHistory
296  */
297 typedef CLASS_OR_STRUCT ModelHistory              ModelHistory_t;
298 
299 LIBSBML_CPP_NAMESPACE_END
300 #undef CLASS_OR_STRUCT
301 
302 #endif  /* numlfwd_h  */
303