Program listing for file kernel/src/utils/SiconosMemory/SiconosMemory.hpp

Program listing for file kernel/src/utils/SiconosMemory/SiconosMemory.hpp#

 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