Program listing for file kernel/src/utils/SiconosMemory/SiconosMemory.hpp#
Return to documentation for this file
1#ifndef SICONOSMEMORY_H
2#define SICONOSMEMORY_H
3
4#include "SiconosPointers.hpp"
5#include <deque>
6#include "SiconosAlgebraTypeDef.hpp"
7#include "SiconosSerialization.hpp"
8
9
10typedef std::vector<SiconosVector> MemoryContainer;
11
12
13typedef std::vector<SiconosMemory> VectorOfMemories;
14
15TYPEDEF_SPTR(MemoryContainer)
16
17
18class SiconosMemory : public MemoryContainer
19{
20private:
21 ACCEPT_SERIALIZATION(SiconosMemory);
22
23
24 MemoryContainer::size_type _nbVectorsInMemory = 0;
25
26
27 MemoryContainer::size_type _indx = 0;
28
29
30
31
32
33 SiconosMemory(const MemoryContainer&) = delete;
34 void operator=(const MemoryContainer& V);
35
36public:
37
38
39 SiconosMemory() = default;
40
41
42 SiconosMemory(const unsigned int size, const unsigned int vectorSize);
43
44
45 SiconosMemory(const SiconosMemory& mem);
46
47
48
49 ~SiconosMemory(){};
50
51
52 void operator=(const SiconosMemory&);
53
54
55 const SiconosVector& getSiconosVector(const unsigned int) const;
56
57
58 SiconosVector& getSiconosVectorMutable(const unsigned int);
59
60
61 void setMemorySize(const unsigned int steps,
62 const unsigned int vectorSize);
63
64
65 inline MemoryContainer::size_type nbVectorsInMemory() const
66 {
67 return _nbVectorsInMemory;
68 };
69
70
71 void swap(const SiconosVector& v);
72
73
74 void swap(SP::SiconosVector v);
75
76
77 void display() const;
78
79};
80
81
82#endif