-
Notifications
You must be signed in to change notification settings - Fork 298
/
SimObjectVxWorksFactory.h
78 lines (61 loc) · 2.78 KB
/
SimObjectVxWorksFactory.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#pragma once
/** @addtogroup simcorefactoriesPolicies
*
* @{
*/
shared_ptr<ISimData> createSimDataFunction();
shared_ptr<ISimVars> createSimVarsFunction(size_t dim_real,size_t dim_int,size_t dim_bool,size_t dim_string,size_t dim_pre_vars,size_t dim_z,size_t z_i);
//shared_ptr<IAlgLoopSolverFactory> createAlgLoopSolverFactoryFunction(IGlobalSettings* globalSettings,PATH library_path,PATH modelicasystem_path);
extern "C" IAlgLoopSolverFactory* createAlgLoopSolverFactoryFunction(IGlobalSettings* globalSettings,PATH library_path,PATH modelicasystem_path);
shared_ptr<IHistory> createMatFileWriterFactory(IGlobalSettings& globalSettings,size_t dim);
shared_ptr<IHistory> createTextFileWriterFactory(IGlobalSettings& globalSettings,size_t dim);
shared_ptr<IHistory> createBufferReaderWriterFactory(IGlobalSettings& globalSettings,size_t dim);
shared_ptr<IHistory> createDefaultWriterFactory(IGlobalSettings& globalSettings,size_t dim);
/*
Policy class to create a OMC-, Modelica- system or AlgLoopSolver
*/
template <class CreationPolicy>
struct SimObjectVxWorksFactory: public ObjectFactory<CreationPolicy>
{
public:
SimObjectVxWorksFactory(PATH library_path, PATH modelicasystem_path, PATH config_path)
:ObjectFactory<CreationPolicy>(library_path, modelicasystem_path, config_path)
{
}
virtual ~SimObjectVxWorksFactory()
{
}
shared_ptr<ISimData> createSimData()
{
return createSimDataFunction();
}
shared_ptr<ISimVars> createSimVars(size_t dim_real,size_t dim_int,size_t dim_bool,size_t dim_string,size_t dim_pre_vars,size_t dim_z,size_t z_i)
{
return createSimVarsFunction(dim_real, dim_int, dim_bool, dim_string, dim_pre_vars, dim_z, z_i);
}
shared_ptr<IAlgLoopSolverFactory> createAlgLoopSolverFactory(IGlobalSettings* globalSettings)
{
return shared_ptr<IAlgLoopSolverFactory>( createAlgLoopSolverFactoryFunction(globalSettings, ObjectFactory<CreationPolicy>::_library_path, ObjectFactory<CreationPolicy>::_modelicasystem_path));
} //createAlgLoopSolverFactory
shared_ptr<IHistory> createMatFileWriter(IGlobalSettings* settings,size_t dim)
{
shared_ptr<IHistory> writer = createMatFileWriterFactory(*settings,dim);
return writer;
}
shared_ptr<IHistory> createTextFileWriter(IGlobalSettings* settings,size_t dim)
{
shared_ptr<IHistory> writer = createTextFileWriterFactory(*settings,dim);
return writer;
}
shared_ptr<IHistory> createBufferReaderWriter(IGlobalSettings* settings,size_t dim)
{
shared_ptr<IHistory> writer = createBufferReaderWriterFactory(*settings,dim);
return writer;
}
shared_ptr<IHistory> createDefaultWriter(IGlobalSettings* settings,size_t dim)
{
shared_ptr<IHistory> writer = createDefaultWriterFactory(*settings,dim);
return writer;
}
};
/** @} */ // end of simcorefactoriesPolicies