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