roadrunner  2.6.0
Fast simulator for SBML models
SBMLInitialValueSymbolResolver.h
1 /*
2  * SBMLInitialValueSymbolResolver.h
3  *
4  * Created on: Jul 25, 2013
5  * Author: andy
6  */
7 
8 #ifndef SBMLInitialValueSymbolResolver_H_
9 #define SBMLInitialValueSymbolResolver_H_
10 
11 #include "LoadSymbolResolverBase.h"
12 #include "LLVMIncludes.h"
13 #include "LLVMModelDataSymbols.h"
14 #include "LLVMModelSymbols.h"
15 
16 namespace libsbml
17 {
18 class Model;
19 }
20 
21 namespace rrllvm
22 {
23 
28 {
29 public:
30 
35  SBMLInitialValueSymbolResolver(llvm::Value *modelData,
36  const ModelGeneratorContext& ctx);
37 
38 
39  virtual ~SBMLInitialValueSymbolResolver() {};
40 
41  virtual llvm::Value *loadSymbolValue(const std::string& symbol,
42  const llvm::ArrayRef<llvm::Value*>& args =
43  llvm::ArrayRef<llvm::Value*>());
44 
45 private:
46  llvm::Value *modelData;
47 
48 };
49 
50 } /* namespace rr */
51 #endif /* SBMLInitialValueSymbolResolver_H_ */
provide common sbml model functionality to three kinds of resolvers.
Definition: LoadSymbolResolverBase.h:34
All LLVM code generating objects basically need at a minimum three things to operate:
Definition: ModelGeneratorContext.h:95
pulls values from the original sbml document.
Definition: SBMLInitialValueSymbolResolver.h:28
virtual llvm::Value * loadSymbolValue(const std::string &symbol, const llvm::ArrayRef< llvm::Value * > &args=llvm::ArrayRef< llvm::Value * >())
generate an LLVM load instruction.
Definition: SBMLInitialValueSymbolResolver.cpp:28
SBMLInitialValueSymbolResolver(llvm::Value *modelData, const ModelGeneratorContext &ctx)
need a modelData ptr because it holds state needed from the random number generators,...
Definition: SBMLInitialValueSymbolResolver.cpp:21