Mercurial > hg > sv-dependency-builds
annotate src/portaudio/bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx @ 98:4188fd8db918
Add Rubber Band build
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Wed, 20 Mar 2013 15:58:55 +0000 |
parents | 8a15ff55d9af |
children |
rev | line source |
---|---|
cannam@89 | 1 #ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX |
cannam@89 | 2 #define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX |
cannam@89 | 3 |
cannam@89 | 4 // --------------------------------------------------------------------------------------- |
cannam@89 | 5 |
cannam@89 | 6 #include <iterator> |
cannam@89 | 7 #include <cstddef> |
cannam@89 | 8 |
cannam@89 | 9 #include "portaudiocpp/System.hxx" |
cannam@89 | 10 |
cannam@89 | 11 // --------------------------------------------------------------------------------------- |
cannam@89 | 12 |
cannam@89 | 13 // Forward declaration(s): |
cannam@89 | 14 namespace portaudio |
cannam@89 | 15 { |
cannam@89 | 16 class HostApi; |
cannam@89 | 17 } |
cannam@89 | 18 |
cannam@89 | 19 // --------------------------------------------------------------------------------------- |
cannam@89 | 20 |
cannam@89 | 21 // Declaration(s): |
cannam@89 | 22 namespace portaudio |
cannam@89 | 23 { |
cannam@89 | 24 |
cannam@89 | 25 |
cannam@89 | 26 ////// |
cannam@89 | 27 /// @brief Iterator class for iterating through all HostApis in a System. |
cannam@89 | 28 /// |
cannam@89 | 29 /// Compliant with the STL bidirectional iterator concept. |
cannam@89 | 30 ////// |
cannam@89 | 31 class System::HostApiIterator |
cannam@89 | 32 { |
cannam@89 | 33 public: |
cannam@89 | 34 typedef std::bidirectional_iterator_tag iterator_category; |
cannam@89 | 35 typedef Device value_type; |
cannam@89 | 36 typedef ptrdiff_t difference_type; |
cannam@89 | 37 typedef HostApi * pointer; |
cannam@89 | 38 typedef HostApi & reference; |
cannam@89 | 39 |
cannam@89 | 40 HostApi &operator*() const; |
cannam@89 | 41 HostApi *operator->() const; |
cannam@89 | 42 |
cannam@89 | 43 HostApiIterator &operator++(); |
cannam@89 | 44 HostApiIterator operator++(int); |
cannam@89 | 45 HostApiIterator &operator--(); |
cannam@89 | 46 HostApiIterator operator--(int); |
cannam@89 | 47 |
cannam@89 | 48 bool operator==(const HostApiIterator &rhs); |
cannam@89 | 49 bool operator!=(const HostApiIterator &rhs); |
cannam@89 | 50 |
cannam@89 | 51 private: |
cannam@89 | 52 friend class System; |
cannam@89 | 53 HostApi **ptr_; |
cannam@89 | 54 }; |
cannam@89 | 55 |
cannam@89 | 56 |
cannam@89 | 57 } // namespace portaudio |
cannam@89 | 58 |
cannam@89 | 59 // --------------------------------------------------------------------------------------- |
cannam@89 | 60 |
cannam@89 | 61 #endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX |