-
Notifications
You must be signed in to change notification settings - Fork 298
/
DefaultContainerManager.h
55 lines (50 loc) · 1.26 KB
/
DefaultContainerManager.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
#pragma once
/** @addtogroup dataexchange
*
* @{
*/
#include <Core/Modelica.h>
#include <Core/ModelicaDefine.h>
/**
* A container manager that is designed for single threaded write output. It has just one container that can
* be filled with values and written directly.
*/
class DefaultContainerManager : public Writer
{
private:
write_data_t _container;
protected:
/**
* Write the given container to the result file.
* @param container The container that should be written.
*/
void writeContainer(const write_data_t& container)
{
write(get<0>(container),get<1>(container));
}
public:
DefaultContainerManager() :
_container()
{
}
virtual ~DefaultContainerManager()
{
}
/**
* Get the internal container. It is always the same.
* @return A reference to the internal container that can be filled with values.
*/
virtual write_data_t& getFreeContainer()
{
return _container;
};
/**
* Write the given container to the result file.
* @param container The container that should be written.
*/
virtual void addContainerToWriteQueue(const write_data_t& container)
{
writeContainer(container);
};
};
/** @} */ // end of dataexchange