1 #ifndef CPPAD_CG_MODEL_LIBRARY_C_SOURCE_GEN_INCLUDED
2 #define CPPAD_CG_MODEL_LIBRARY_C_SOURCE_GEN_INCLUDED
28 class ModelLibraryCSourceGen :
public JobTimer {
30 static const std::string FUNCTION_VERSION;
31 static const std::string FUNCTION_MODELS;
32 static const std::string FUNCTION_ONCLOSE;
33 static const std::string FUNCTION_SETTHREADPOOLDISABLED;
34 static const std::string FUNCTION_ISTHREADPOOLDISABLED;
35 static const std::string FUNCTION_SETTHREADS;
36 static const std::string FUNCTION_GETTHREADS;
37 static const std::string FUNCTION_SETTHREADSCHEDULERSTRAT;
38 static const std::string FUNCTION_GETTHREADSCHEDULERSTRAT;
39 static const std::string FUNCTION_SETTHREADPOOLVERBOSE;
40 static const std::string FUNCTION_ISTHREADPOOLVERBOSE;
41 static const std::string FUNCTION_SETTHREADPOOLGUIDEDMAXGROUPWORK;
42 static const std::string FUNCTION_GETTHREADPOOLGUIDEDMAXGROUPWORK;
43 static const std::string FUNCTION_SETTHREADPOOLNUMBEROFTIMEMEAS;
44 static const std::string FUNCTION_GETTHREADPOOLNUMBEROFTIMEMEAS;
45 static const unsigned long API_VERSION;
47 static const std::string CONST;
52 std::map<std::string, ModelCSourceGen<Base>*>
_models;
83 "Another model with the same name was already registered")
92 "Another model with the same name was already registered")
94 _models[headModel.getName()] = &headModel;
109 CPPADCG_ASSERT_KNOWN(
_models.find(model.getName()) ==
_models.end(),
110 "Another model with the same name was already registered")
112 _models[model.getName()] = &model;
117 inline const std::map<std::string, ModelCSourceGen<Base>*>& getModels()
const {
121 void addCustomFunctionSource(
const std::string& filename,
const std::string& source) {
122 CPPADCG_ASSERT_KNOWN(!filename.empty(),
"The filename name cannot be empty")
168 void saveSources(
const std::string& sourcesFolder);
181 virtual void generateVersionSource(std::map<std::string, std::string>& sources);
183 virtual void generateModelsSource(std::map<std::string, std::string>& sources);
185 virtual void generateOnCloseSource(std::map<std::string, std::string>& sources);
187 virtual void generateThreadPoolSources(std::map<std::string, std::string>& sources);
189 static void saveSources(
const std::string& sourcesFolder,
190 const std::map<std::string, std::string>& sources);