SystemHostApiIterator.hxx (1493B)
1 #ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX 2 #define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX 3 4 // --------------------------------------------------------------------------------------- 5 6 #include <iterator> 7 #include <cstddef> 8 9 #include "portaudiocpp/System.hxx" 10 11 // --------------------------------------------------------------------------------------- 12 13 // Forward declaration(s): 14 namespace portaudio 15 { 16 class HostApi; 17 } 18 19 // --------------------------------------------------------------------------------------- 20 21 // Declaration(s): 22 namespace portaudio 23 { 24 25 26 ////// 27 /// @brief Iterator class for iterating through all HostApis in a System. 28 /// 29 /// Compliant with the STL bidirectional iterator concept. 30 ////// 31 class System::HostApiIterator 32 { 33 public: 34 typedef std::bidirectional_iterator_tag iterator_category; 35 typedef Device value_type; 36 typedef ptrdiff_t difference_type; 37 typedef HostApi * pointer; 38 typedef HostApi & reference; 39 40 HostApi &operator*() const; 41 HostApi *operator->() const; 42 43 HostApiIterator &operator++(); 44 HostApiIterator operator++(int); 45 HostApiIterator &operator--(); 46 HostApiIterator operator--(int); 47 48 bool operator==(const HostApiIterator &rhs) const; 49 bool operator!=(const HostApiIterator &rhs) const; 50 51 private: 52 friend class System; 53 HostApi **ptr_; 54 }; 55 56 57 } // namespace portaudio 58 59 // --------------------------------------------------------------------------------------- 60 61 #endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX