-/*
- * We don't use a std::vector here because it would make a copy of the C array.
- */
-class session_list {
- class iterator : public std::iterator<std::random_access_iterator_tag, std::size_t> {
- public:
- explicit iterator(session_list& list, std::size_t k) : _list(list), _index(k)
- {
- }
-
- iterator& operator++() noexcept
- {
- ++_index;
- return *this;
- }
-
- iterator& operator--() noexcept
- {
- --_index;
- return *this;
- }
-
- iterator& operator++(int) noexcept
- {
- _index++;
- return *this;
- }
-
- iterator& operator--(int) noexcept
- {
- _index--;
- return *this;
- }
-
- bool operator==(iterator other) const noexcept
- {
- return _index == other._index;
- }
-
- bool operator!=(iterator other) const noexcept
- {
- return !(*this == other);
- }
-
- lttng_session& operator*() const noexcept
- {
- return _list[_index];
- }
-
- private:
- session_list& _list;
- std::size_t _index;
- };