15#ifdef INKCPP_BUILD_CLIB
46 : _list_table{
nullptr}
52 virtual list_interface&
operator=(
const list_interface&) =
default;
54 virtual ~list_interface() {}
61 const char* _flag_name;
62 const char* _list_name;
63 const list_interface& _list;
65 bool _one_list_iterator;
66 friend list_interface;
67#ifdef INKCPP_BUILD_CLIB
75 iterator(
const char* flag_name,
const list_interface&
list,
int i,
bool one_list_only =
false)
76 : _flag_name(flag_name)
80 , _one_list_iterator(one_list_only)
111 _list.next(_flag_name, _list_name, _i, _one_list_iterator);
118 bool operator!=(
const iterator& itr)
const {
return itr._i != _i; }
123 bool operator==(
const iterator& itr)
const {
return itr._i == _i; }
130# pragma GCC diagnostic push
131# pragma GCC diagnostic ignored "-Wunused-parameter"
133# pragma warning(push)
135# pragma warning(disable : 4100)
141 inkAssert(
false,
"Not implemented function from interfaces is called!");
146 virtual void add(
const char* flag)
148 inkAssert(
false,
"Not implemented function from interface is called!");
154 inkAssert(
false,
"Not implemented function from interface is called!");
160 inkAssert(
false,
"Not implemented function from interface is called!");
161 return new_iterator(
nullptr, -1);
167 inkAssert(
false,
"Not implemented function from interface is called!");
168 return new_iterator(
nullptr, -1);
174 inkAssert(
false,
"Not implemented function from interface is called!");
175 return new_iterator(
nullptr, -1);
182 next(
const char*& flag_name,
const char*& list_name,
int& i,
bool _one_list_iterator)
const
184 inkAssert(
false,
"Not implemented funciton from interface is called!");
188# pragma GCC diagnostic pop
195 iterator new_iterator(
const char* flag_name,
int i,
bool one_list_only =
false)
const
197 return iterator(flag_name, *
this, i, one_list_only);
201 list_interface(internal::list_table& table,
int list)
202 : _list_table{&table}
208 internal::list_table* _list_table;
int ink_list_flags_from(const HInkList *self, const char *list_name, InkListIter *iter)
Creates an Iterator over all flags contained in a list assziated with a defined list.
int ink_list_flags(const HInkList *self, InkListIter *iter)
Creates an Iterator over all flags contained in a list.
iterater for flags in a list
Definition list.h:60
iterator(const iterator &)=default
copy constructor.
iterator & operator++()
continue iterator to next value
Definition list.h:109
bool operator!=(const iterator &itr) const
checks if iterator points not to the same element
Definition list.h:118
Flag operator*() const
access value the iterator is pointing to
Definition list.h:106
bool operator==(const iterator &itr) const
checks if iterator points to the same element
Definition list.h:123
virtual bool contains(const char *flag) const
checks if a flag is contained in the list
Definition list.h:139
virtual iterator begin() const
begin iterator for contained flags in list
Definition list.h:158
virtual list_interface & operator=(const list_interface &)=default
copy assigment operator.
virtual void remove(const char *flag)
removes a flag from list
Definition list.h:152
virtual void add(const char *flag)
add a flag to list
Definition list.h:146
virtual iterator begin(const char *list_name) const
returns a iterator over elements of the given list
Definition list.h:165
virtual iterator end() const
end iterator for contained flags in list
Definition list.h:172
#define inkAssert(condition, text,...)
Compile argument agnostic assert macro.
Definition system.h:58
Contaning all modules and classes used for the inkles ink runtime.
Definition choice.h:13
list_interface * list
alias for ink::runtime::list_interface pointer
Definition types.h:24
Iterater used to iterate flags of a HInkList.
Definition inkcpp.h:152
contains flag data
Definition list.h:89
const char * flag_name
name of the flag
Definition list.h:90
const char * list_name
name of the list
Definition list.h:91
friend std::ostream & operator<<(std::ostream &os, const Flag &flag)
serelization operator
Definition list.h:97