1 /**
2  * @file    sbmlfwd.h
3  * @brief   Forward declarations for all opaque C types.
4  * @author  Ben Bornstein
5  *
6  * <!--------------------------------------------------------------------------
7  * This file is part of libSBML.  Please visit http://sbml.org for more
8  * information about SBML, and the latest version of libSBML.
9  *
10  * Copyright (C) 2020 jointly by the following organizations:
11  *     1. California Institute of Technology, Pasadena, CA, USA
12  *     2. University of Heidelberg, Heidelberg, Germany
13  *     3. University College London, London, UK
14  *
15  * Copyright (C) 2019 jointly by the following organizations:
16  *     1. California Institute of Technology, Pasadena, CA, USA
17  *     2. University of Heidelberg, Heidelberg, Germany
18  *
19  * Copyright (C) 2013-2018 jointly by the following organizations:
20  *     1. California Institute of Technology, Pasadena, CA, USA
21  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
22  *     3. University of Heidelberg, Heidelberg, Germany
23  *
24  * Copyright (C) 2009-2013 jointly by the following organizations:
25  *     1. California Institute of Technology, Pasadena, CA, USA
26  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
27  *
28  * Copyright (C) 2006-2008 by the California Institute of Technology,
29  *     Pasadena, CA, USA
30  *
31  * Copyright (C) 2002-2005 jointly by the following organizations:
32  *     1. California Institute of Technology, Pasadena, CA, USA
33  *     2. Japan Science and Technology Agency, Japan
34  *
35  * This library is free software; you can redistribute it and/or modify it
36  * under the terms of the GNU Lesser General Public License as published by
37  * the Free Software Foundation.  A copy of the license agreement is provided
38  * in the file named "LICENSE.txt" included with this software distribution and
39  * also available online as http://sbml.org/software/libsbml/license.html
40  * ------------------------------------------------------------------------ -->
41  *
42  * Declaring all types up-front avoids compilation errors of the form
43  * <em>"Redefinition of type 'Foo'"</em>, and allows our combined C/C++
44  * headers to depend minimally upon each other.  Put another way, the type
45  * definitions below serve the same purpose as <tt>class Foo;</tt> forward
46  * declarations in C++ code.
47  */
48 
49 #ifndef sbmlfwd_h
50 #define sbmlfwd_h
51 
52 
53 #include <sbml/common/libsbml-namespace.h>
54 #include <sbml/common/libsbml-config.h>
55 
56 
57 #ifdef __cplusplus
58 /**
59  * Defined as a class when compiling for C++ and as a C struct when
60  * compiling for C.
61  */
62 #  define CLASS_OR_STRUCT class
63 #else
64 /**
65  * Defined as a class when compiling for C++ and as a C struct when
66  * compiling for C.
67  */
68 #  define CLASS_OR_STRUCT struct
69 #endif  /* __cplusplus */
70 
71 LIBSBML_CPP_NAMESPACE_BEGIN
72 
73 /**
74  * @var typedef class SBase SBase_t
75  * @copydoc SBase
76  */
77 typedef CLASS_OR_STRUCT SBase                     SBase_t;
78 
79 /**
80  * @var typedef class SBMLDocument SBMLDocument_t
81  * @copydoc SBMLDocument
82  */
83 typedef CLASS_OR_STRUCT SBMLDocument              SBMLDocument_t;
84 
85 /**
86  * @var typedef class Model Model_t
87  * @copydoc Model
88  */
89 typedef CLASS_OR_STRUCT Model                     Model_t;
90 
91 /**
92  * @var typedef class FunctionDefinition FunctionDefinition_t
93  * @copydoc FunctionDefinition
94  */
95 typedef CLASS_OR_STRUCT FunctionDefinition        FunctionDefinition_t;
96 
97 /**
98  * @var typedef class Unit Unit_t
99  * @copydoc Unit
100  */
101 typedef CLASS_OR_STRUCT Unit                      Unit_t;
102 
103 /**
104  * @var typedef class UnitDefinition UnitDefinition_t
105  * @copydoc UnitDefinition
106  */
107 typedef CLASS_OR_STRUCT UnitDefinition            UnitDefinition_t;
108 
109 /**
110  * @var typedef class CompartmentType CompartmentType_t
111  * @copydoc CompartmentType
112  */
113 typedef CLASS_OR_STRUCT CompartmentType           CompartmentType_t;
114 
115 /**
116  * @var typedef class SpeciesType SpeciesType_t
117  * @copydoc SpeciesType
118  */
119 typedef CLASS_OR_STRUCT SpeciesType               SpeciesType_t;
120 
121 /**
122  * @var typedef class Compartment Compartment_t
123  * @copydoc Compartment
124  */
125 typedef CLASS_OR_STRUCT Compartment               Compartment_t;
126 
127 /**
128  * @var typedef class Species Species_t
129  * @copydoc Species
130  */
131 typedef CLASS_OR_STRUCT Species                   Species_t;
132 
133 /**
134  * @var typedef class Parameter Parameter_t
135  * @copydoc Parameter
136  */
137 typedef CLASS_OR_STRUCT Parameter                 Parameter_t;
138 
139 /**
140  * @var typedef class LocalParameter LocalParameter_t
141  * @copydoc LocalParameter
142  */
143 typedef CLASS_OR_STRUCT LocalParameter             LocalParameter_t;
144 
145 /**
146  * @var typedef class InitialAssignment InitialAssignment_t
147  * @copydoc InitialAssignment
148  */
149 typedef CLASS_OR_STRUCT InitialAssignment         InitialAssignment_t;
150 
151 /**
152  * @var typedef class Rule Rule_t
153  * @copydoc Rule
154  */
155 typedef CLASS_OR_STRUCT Rule                      Rule_t;
156 
157 /**
158  * @var typedef class Constraint Constraint_t
159  * @copydoc Constraint
160  */
161 typedef CLASS_OR_STRUCT Constraint                Constraint_t;
162 
163 /**
164  * @var typedef class Reaction Reaction_t
165  * @copydoc Reaction
166  */
167 typedef CLASS_OR_STRUCT Reaction                  Reaction_t;
168 
169 /**
170  * @var typedef class KineticLaw KineticLaw_t
171  * @copydoc KineticLaw
172  */
173 typedef CLASS_OR_STRUCT KineticLaw                KineticLaw_t;
174 
175 /**
176  * In C, a SpeciesReference_t is actually a synonym for the
177  * SimpleSpeciesReference base class.
178  */
179 typedef CLASS_OR_STRUCT SimpleSpeciesReference    SpeciesReference_t;
180 
181 /**
182  * @var typedef class Event Event_t
183  * @copydoc Event
184  */
185 typedef CLASS_OR_STRUCT Event                     Event_t;
186 
187 /**
188  * @var typedef class EventAssignment EventAssignment_t
189  * @copydoc EventAssignment
190  */
191 typedef CLASS_OR_STRUCT EventAssignment           EventAssignment_t;
192 
193 /**
194  * @var typedef class Trigger Trigger_t
195  * @copydoc Trigger
196  */
197 typedef CLASS_OR_STRUCT Trigger                   Trigger_t;
198 
199 /**
200  * @var typedef class Delay Delay_t
201  * @copydoc Delay
202  */
203 typedef CLASS_OR_STRUCT Delay                     Delay_t;
204 
205 /**
206  * @var typedef class StoichiometryMath StoichiometryMath_t
207  * @copydoc StoichiometryMath
208  */
209 typedef CLASS_OR_STRUCT StoichiometryMath          StoichiometryMath_t;
210 
211 /**
212  * @var typedef class Priority Priority_t
213  * @copydoc Priority
214  */
215 typedef CLASS_OR_STRUCT Priority                     Priority_t;
216 
217 /**
218  * @var typedef class AlgebraicRule AlgebraicRule_t
219  * @copydoc AlgebraicRule
220  */
221 typedef CLASS_OR_STRUCT AlgebraicRule                AlgebraicRule_t;
222 
223 /**
224  * @var typedef class AssignmentRule AssignmentRule_t
225  * @copydoc AssignmentRule
226  */
227 typedef CLASS_OR_STRUCT AssignmentRule                AssignmentRule_t;
228 
229 /**
230  * @var typedef class RateRule RateRule_t
231  * @copydoc RateRule
232  */
233 typedef CLASS_OR_STRUCT RateRule                RateRule_t;
234 
235 /**
236  * @var typedef class ModifierSpeciesReference ModifierSpeciesReference_t
237  * @copydoc ModifierSpeciesReference
238  */
239 typedef CLASS_OR_STRUCT ModifierSpeciesReference                ModifierSpeciesReference_t;
240 
241 /**
242  * @var typedef class SBMLReader SBMLReader_t
243  * @copydoc SBMLReader
244  */
245 typedef CLASS_OR_STRUCT SBMLReader                SBMLReader_t;
246 
247 /**
248  * @var typedef class SBMLWriter SBMLWriter_t
249  * @copydoc SBMLWriter
250  */
251 typedef CLASS_OR_STRUCT SBMLWriter                SBMLWriter_t;
252 
253 /**
254  * @var typedef class SBMLError SBMLError_t
255  * @copydoc SBMLError
256  */
257 typedef CLASS_OR_STRUCT SBMLError                 SBMLError_t;
258 
259 /**
260  * @var typedef class ASTNode ASTNode_t
261  * @copydoc ASTNode
262  */
263 typedef CLASS_OR_STRUCT ASTNode                   ASTNode_t;
264 
265 /**
266  * @var typedef class List List_t
267  * @copydoc List
268  */
269 typedef CLASS_OR_STRUCT List                      List_t;
270 
271 /** @cond doxygenLibsbmlInternal */
272 /**
273  * @var typedef class ListNode ListNode_t
274  * @copydoc ListNode
275  */
276 typedef CLASS_OR_STRUCT ListNode                  ListNode_t;
277 /** @endcond */
278 
279 /**
280  * @var typedef class ListOf ListOf_t
281  * @copydoc ListOf
282  */
283 typedef CLASS_OR_STRUCT ListOf                    ListOf_t;
284 
285 /**
286  * @var typedef class XMLError XMLError_t
287  * @copydoc XMLError
288  */
289 typedef CLASS_OR_STRUCT XMLError                  XMLError_t;
290 
291 /**
292  * @var typedef class XMLErrorLog XMLErrorLog_t
293  * @copydoc XMLErrorLog
294  */
295 typedef CLASS_OR_STRUCT XMLErrorLog               XMLErrorLog_t;
296 
297 /**
298  * @var typedef class XMLNode XMLNode_t
299  * @copydoc XMLNode
300  */
301 typedef CLASS_OR_STRUCT XMLNode                   XMLNode_t;
302 
303 /**
304  * @var typedef class XMLAttributes XMLAttributes_t
305  * @copydoc XMLAttributes
306  */
307 typedef CLASS_OR_STRUCT XMLAttributes             XMLAttributes_t;
308 
309 /**
310  * @var typedef class XMLNamespaces XMLNamespaces_t
311  * @copydoc XMLNamespaces
312  */
313 typedef CLASS_OR_STRUCT XMLNamespaces		  XMLNamespaces_t;
314 
315 /**
316  * @var typedef class XMLToken XMLToken_t
317  * @copydoc XMLToken
318  */
319 typedef CLASS_OR_STRUCT XMLToken                  XMLToken_t;
320 
321 /** @cond doxygenLibsbmlInternal */
322 /**
323  * @var typedef class XMLInputStream XMLInputStream_t
324  * @copydoc XMLInputStream
325  */
326 typedef CLASS_OR_STRUCT XMLInputStream            XMLInputStream_t;
327 /** @endcond */
328 
329 /** @cond doxygenLibsbmlInternal */
330 /**
331  * @var typedef class XMLOutputStream XMLOutputStream_t
332  * @copydoc XMLOutputStream
333  */
334 typedef CLASS_OR_STRUCT XMLOutputStream           XMLOutputStream_t;
335 /** @endcond */
336 
337 /**
338  * @var typedef class XMLTriple XMLTriple_t
339  * @copydoc XMLTriple
340  */
341 typedef CLASS_OR_STRUCT XMLTriple                 XMLTriple_t;
342 
343 /**
344  * @var typedef class CVTerm CVTerm_t
345  * @copydoc CVTerm
346  */
347 typedef CLASS_OR_STRUCT CVTerm                    CVTerm_t;
348 
349 /**
350  * @var typedef class Date Date_t
351  * @copydoc Date
352  */
353 typedef CLASS_OR_STRUCT Date                      Date_t;
354 
355 /**
356  * @var typedef class ModelCreator ModelCreator_t
357  * @copydoc ModelCreator
358  */
359 typedef CLASS_OR_STRUCT ModelCreator              ModelCreator_t;
360 
361 /**
362  * @var typedef class ModelHistory ModelHistory_t
363  * @copydoc ModelHistory
364  */
365 typedef CLASS_OR_STRUCT ModelHistory              ModelHistory_t;
366 
367 /**
368  * @var typedef class SBMLNamespaces SBMLNamespaces_t
369  * @copydoc SBMLNamespaces
370  */
371 typedef CLASS_OR_STRUCT SBMLNamespaces            SBMLNamespaces_t;
372 
373 /**
374  * @var typedef class SBaseExtensionPoint SBaseExtensionPoint_t
375  * @copydoc SBaseExtensionPoint
376  */
377 typedef CLASS_OR_STRUCT SBaseExtensionPoint       SBaseExtensionPoint_t;
378 
379 /**
380  * @var typedef class SBMLExtension SBMLExtension_t
381  * @copydoc SBMLExtension
382  */
383 typedef CLASS_OR_STRUCT SBMLExtension             SBMLExtension_t;
384 
385 /**
386  * @var typedef class SBasePluginCreatorBase SBasePluginCreatorBase_t
387  */
388 typedef CLASS_OR_STRUCT SBasePluginCreatorBase    SBasePluginCreatorBase_t;
389 
390 
391 /**
392  * @var typedef class SBMLExtensionNamespaces SBMLExtensionNamespaces_t
393  * @copydoc SBMLExtensionNamespaces
394  */
395 typedef CLASS_OR_STRUCT ISBMLExtensionNamespaces    SBMLExtensionNamespaces_t;
396 
397 /**
398  * @var typedef class ExpectedAttributes ExpectedAttributes_t
399  */
400 typedef CLASS_OR_STRUCT ExpectedAttributes    ExpectedAttributes_t;
401 
402 
403 /**
404  * @var typedef class SBasePlugin    SBasePlugin_t
405  */
406 typedef CLASS_OR_STRUCT SBasePlugin    SBasePlugin_t;
407 
408 /**
409  * @var typedef class SBMLDocumentPlugin SBMLDocumentPlugin_t
410  * @copydoc SBMLDocumentPlugin
411  */
412 typedef CLASS_OR_STRUCT SBMLDocumentPlugin    SBMLDocumentPlugin_t;
413 
414 /**
415  * @var typedef class L3ParserSettings L3ParserSettings_t
416  */
417 typedef CLASS_OR_STRUCT L3ParserSettings    L3ParserSettings_t;
418 
419 
420 /**
421  * @var typedef class ConversionOption ConversionOption_t
422  */
423 typedef CLASS_OR_STRUCT ConversionOption    ConversionOption_t;
424 
425 /**
426  * @var typedef class ConversionProperties ConversionProperties_t
427  */
428 typedef CLASS_OR_STRUCT ConversionProperties    ConversionProperties_t;
429 
430 /**
431  * @var typedef class ConversionProperties ConversionProperties_t
432  */
433 typedef CLASS_OR_STRUCT IdentifierTransformer    IdentifierTransformer_t;
434 
435 /**
436  * @var typedef class ElementTransformer ElementTransformer_t
437  */
438 typedef CLASS_OR_STRUCT ElementTransformer    ElementTransformer_t;
439 
440 
441 LIBSBML_CPP_NAMESPACE_END
442 
443 #undef CLASS_OR_STRUCT
444 
445 #endif  /* sbmlfwd_h  */
446