Locus No Pilotus
Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++
Loading...
Searching...
No Matches
data_manager.cpp File Reference
#include "data_manager.h"
Include dependency graph for data_manager.cpp:

Namespaces

namespace  data_tools
 

Macros

#define ADD_BY_GUI_POINTER(Object, object_name)
 
#define ADD_BY_LINK(Object, object_name)
 
#define ADD_BY_VECTOR(object_name)
 
#define CHECK_AND_REMOVE_ALL
 
#define CHECK_AND_REMOVE_LAST
 
#define GET_OBJECTS(Object, object_name)
 
#define OBJECT_METHODS(Object, object_name)
 
#define SET_BY_VECTOR(object_name)
 

Macro Definition Documentation

◆ ADD_BY_GUI_POINTER

#define ADD_BY_GUI_POINTER ( Object,
object_name )
Value:
void DataManager::Add(gui::Object* object_name##_ptr) { \
object_name##s_.emplace_back(object_name##_ptr); \
object_name##_ptr->GetData().SetId(GetMinId_(gui::ObjectType::Object##s)); \
\
} \
\
void DataManager::Add(std::vector<gui::Object*> new_##object_name##s) { \
for (const auto& object_name : new_##object_name##s) { \
Add(object_name); \
object_name->GetData().SetId(GetMinId_(gui::ObjectType::Object##s)); \
} \
\
}
#define CHECK_AND_REMOVE_LAST
Definition data_manager.cpp:8
59#define ADD_BY_GUI_POINTER(Object, object_name) \
60 void DataManager::Add(gui::Object* object_name##_ptr) { \
61 object_name##s_.emplace_back(object_name##_ptr); \
62 object_name##_ptr->GetData().SetId(GetMinId_(gui::ObjectType::Object##s)); \
63 \
64 CHECK_AND_REMOVE_LAST; \
65 } \
66 \
67 void DataManager::Add(std::vector<gui::Object*> new_##object_name##s) { \
68 for (const auto& object_name : new_##object_name##s) { \
69 Add(object_name); \
70 object_name->GetData().SetId(GetMinId_(gui::ObjectType::Object##s)); \
71 } \
72 \
73 CHECK_AND_REMOVE_LAST; \
74 }

◆ ADD_BY_LINK

#define ADD_BY_LINK ( Object,
object_name )
Value:
{ \
object_name##s_.emplace_back(new gui::Object(data)); \
\
}
20#define ADD_BY_LINK(Object, object_name) \
21 { \
22 object_name##s_.emplace_back(new gui::Object(data)); \
23 \
24 CHECK_AND_REMOVE_LAST; \
25 }

◆ ADD_BY_VECTOR

#define ADD_BY_VECTOR ( object_name)
Value:
{ \
for (const auto& object_name : new_##object_name##s) Add(object_name); \
\
}
27#define ADD_BY_VECTOR(object_name) \
28 { \
29 for (const auto& object_name : new_##object_name##s) Add(object_name); \
30 \
31 CHECK_AND_REMOVE_LAST; \
32 }

◆ CHECK_AND_REMOVE_ALL

#define CHECK_AND_REMOVE_ALL
Value:
{ \
CheckErrorValues_(); \
RemoveAllDuplicates(); \
}
14#define CHECK_AND_REMOVE_ALL \
15 { \
16 CheckErrorValues_(); \
17 RemoveAllDuplicates(); \
18 }

◆ CHECK_AND_REMOVE_LAST

#define CHECK_AND_REMOVE_LAST
Value:
{ \
CheckErrorValues_(); \
RemoveLastDuplicate(); \
}
8#define CHECK_AND_REMOVE_LAST \
9 { \
10 CheckErrorValues_(); \
11 RemoveLastDuplicate(); \
12 }

◆ GET_OBJECTS

#define GET_OBJECTS ( Object,
object_name )
Value:
std::vector<gui::Object*> DataManager::Get##Object##sPtrs() { \
auto res = std::vector<gui::Object*>(); \
for (auto& object_name##_ptr_ : object_name##s_) \
res.push_back(object_name##_ptr_.get()); \
\
return res; \
} \
\
std::vector<gui::Object> DataManager::Get##Object##s() const { \
auto res = std::vector<gui::Object>(); \
for (auto& object_name##_ptr_ : object_name##s_) \
res.push_back(*object_name##_ptr_); \
\
return res; \
}
42#define GET_OBJECTS(Object, object_name) \
43 std::vector<gui::Object*> DataManager::Get##Object##sPtrs() { \
44 auto res = std::vector<gui::Object*>(); \
45 for (auto& object_name##_ptr_ : object_name##s_) \
46 res.push_back(object_name##_ptr_.get()); \
47 \
48 return res; \
49 } \
50 \
51 std::vector<gui::Object> DataManager::Get##Object##s() const { \
52 auto res = std::vector<gui::Object>(); \
53 for (auto& object_name##_ptr_ : object_name##s_) \
54 res.push_back(*object_name##_ptr_); \
55 \
56 return res; \
57 }

◆ OBJECT_METHODS

#define OBJECT_METHODS ( Object,
object_name )
76#define OBJECT_METHODS(Object, object_name) \
77 void DataManager::Add(lib::Object& data) { \
78 ADD_BY_LINK(Object, object_name); \
79 } \
80 \
81 void DataManager::Add(const lib::Object& data) { \
82 ADD_BY_LINK(Object, object_name); \
83 } \
84 \
85 ADD_BY_GUI_POINTER(Object, object_name) \
86 \
87 void DataManager::Add(std::vector<lib::Object>& new_##object_name##s) { \
88 ADD_BY_VECTOR(object_name); \
89 } \
90 \
91 void DataManager::Add( \
92 const std::vector<lib::Object>& new_##object_name##s) { \
93 ADD_BY_VECTOR(object_name); \
94 } \
95 \
96 void DataManager::Set(std::vector<gui::Object*> object_name##s) { \
97 SET_BY_VECTOR(object_name); \
98 } \
99 \
100 void DataManager::Set(std::vector<lib::Object>& object_name##s) { \
101 SET_BY_VECTOR(object_name); \
102 } \
103 \
104 void DataManager::Set(const std::vector<lib::Object>& object_name##s) { \
105 SET_BY_VECTOR(object_name); \
106 } \
107 \
108 GET_OBJECTS(Object, object_name)

◆ SET_BY_VECTOR

#define SET_BY_VECTOR ( object_name)
Value:
{ \
object_name##s_.clear(); \
Add(object_name##s); \
\
}
#define CHECK_AND_REMOVE_ALL
Definition data_manager.cpp:14
34#define SET_BY_VECTOR(object_name) \
35 { \
36 object_name##s_.clear(); \
37 Add(object_name##s); \
38 \
39 CHECK_AND_REMOVE_ALL; \
40 }