YAMI4 Core
parameter_iterator.h
1 // Copyright Maciej Sobczak 2008-2019.
2 // This file is part of YAMI4.
3 //
4 // YAMI4 is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // YAMI4 is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with YAMI4. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef YAMICORE_PARAMETER_ITERATOR_H_INCLUDED
18 #define YAMICORE_PARAMETER_ITERATOR_H_INCLUDED
19 
20 #include "core.h"
21 #include "dll.h"
22 #include "parameter_entry.h"
23 
24 namespace yami
25 {
26 
27 namespace details
28 {
29 class allocator;
30 struct entry;
31 } // namespace details
32 
33 namespace core
34 {
35 
36 class parameters;
37 
47 {
48 public:
54  bool has_next() const;
55 
61  void move_next();
62 
66  parameter_entry current() const;
67 
76  void remove();
77 
78 private:
79  friend class parameters;
80 
81  details::entry * data_;
82  std::size_t current_index_;
83  std::size_t num_of_entries_;
84  details::allocator * allocator_;
85 };
86 
87 } // namespace core
88 
89 } // namespace yami
90 
91 #endif // YAMICORE_PARAMETER_ITERATOR_H_INCLUDED
Collection of message parameters.
Definition: parameters.h:91
Namespace devoted for everything related to YAMI4.
Definition: agent.h:25
Iterator to parameter entries.
Definition: parameter_iterator.h:46
Read-only view on the parameters entry.
Definition: parameter_entry.h:42