hce-node application  1.4.3
HCE Hierarchical Cluster Engine node application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DRCESubtasksList.hpp
Go to the documentation of this file.
1 
14 #ifndef DRCE_SUBTASKS_LIST_HPP
15 #define DRCE_SUBTASKS_LIST_HPP
16 
17 #include "DRCECommonList.hpp"
18 
19 namespace HCE
20 {
21 namespace drce
22 {
23 //-----------------------------------------------------------------------------
24 template <class _Subtask>
25 class DRCESubtasksList : public DRCECommonList <_Subtask>
26 {
27 public:
31  virtual ~DRCESubtasksList(void) {}
32 
35 
36  void addSubtaskItem(const _Subtask& item);
37  void addSubtaskItem(_Subtask&& item);
38 
39  const std::vector<_Subtask>& getSubtasks(void) const;
40 
41  size_t getSubtasksCount(void) const;
42  const _Subtask& getSubtaskItem(size_t index) const;
43  void setSubtaskItem(size_t index, const _Subtask& item);
44  void setSubtaskItem(size_t index, _Subtask&& item);
45 
46  void clear(void);
47 private:
48  typedef DRCECommonList<_Subtask> inherited;
49 };
50 //-----------------------------------------------------------------------------
52 : inherited()
53 {
54  (*this) = rhs;
55 }
56 //-----------------------------------------------------------------------------
58 : inherited()
59 {
60  (*this) = std::forward<DRCESubtasksList>(rhs);
61 }
62 //-----------------------------------------------------------------------------
64 {
65  if (this!=&rhs)
66  {
67  inherited::items = rhs.getSubtasks();
68  }
69  return *this;
70 }
71 //-----------------------------------------------------------------------------
73 {
74  if (this!=&rhs)
75  {
76  inherited::items = std::move(rhs.getSubtasks());
77  }
78  return *this;
79 }
80 //-----------------------------------------------------------------------------
81 template <class _Subtask> void DRCESubtasksList<_Subtask>::addSubtaskItem(const _Subtask& item)
82 {
83  inherited::addItem(item);
84 }
85 //-----------------------------------------------------------------------------
86 template <class _Subtask> void DRCESubtasksList<_Subtask>::addSubtaskItem(_Subtask&& item)
87 {
88  inherited::addItem(std::forward<_Subtask>(item));
89 }
90 //-----------------------------------------------------------------------------
91 template <class _Subtask> const std::vector<_Subtask>& DRCESubtasksList<_Subtask>::getSubtasks(void) const
92 {
93  return inherited::getItems();
94 }
95 //-----------------------------------------------------------------------------
96 template <class _Subtask> size_t DRCESubtasksList<_Subtask>::getSubtasksCount(void) const
97 {
98  return inherited::getItemsCount();
99 }
100 //-----------------------------------------------------------------------------
101 template <class _Subtask> const _Subtask& DRCESubtasksList<_Subtask>::getSubtaskItem(size_t index) const
102 {
103  return inherited::getItem(index);
104 }
105 //-----------------------------------------------------------------------------
106 template <class _Subtask> void DRCESubtasksList<_Subtask>::setSubtaskItem(size_t index, const _Subtask& item)
107 {
108  inherited::setItem(index, item);
109 }
110 //-----------------------------------------------------------------------------
111 template <class _Subtask> void DRCESubtasksList<_Subtask>::setSubtaskItem(size_t index, _Subtask&& item)
112 {
113  inherited::setItem(index, std::forward<_Subtask>(item));
114 }
115 //-----------------------------------------------------------------------------
116 template <class _Subtask> void DRCESubtasksList<_Subtask>::clear(void)
117 {
118  inherited::clear();
119 }
120 //-----------------------------------------------------------------------------
121 //-----------------------------------------------------------------------------
122 } // end namespace drce
123 } // end namespace HCE
124 
125 #endif // DRCE_SUBTASKS_LIST_HPP
126