00001 #ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX 00002 #define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX 00003 00004 // --------------------------------------------------------------------------------------- 00005 00006 #include <iterator> 00007 #include <cstddef> 00008 00009 #include "portaudiocpp/System.hxx" 00010 00011 // --------------------------------------------------------------------------------------- 00012 00013 // Forward declaration(s): 00014 namespace portaudio 00015 { 00016 class HostApi; 00017 } 00018 00019 // --------------------------------------------------------------------------------------- 00020 00021 // Declaration(s): 00022 namespace portaudio 00023 { 00024 00025 00031 class System::HostApiIterator 00032 { 00033 public: 00034 typedef std::bidirectional_iterator_tag iterator_category; 00035 typedef Device value_type; 00036 typedef ptrdiff_t difference_type; 00037 typedef HostApi * pointer; 00038 typedef HostApi & reference; 00039 00040 HostApi &operator*() const; 00041 HostApi *operator->() const; 00042 00043 HostApiIterator &operator++(); 00044 HostApiIterator operator++(int); 00045 HostApiIterator &operator--(); 00046 HostApiIterator operator--(int); 00047 00048 bool operator==(const HostApiIterator &rhs); 00049 bool operator!=(const HostApiIterator &rhs); 00050 00051 private: 00052 friend class System; 00053 HostApi **ptr_; 00054 }; 00055 00056 00057 } // namespace portaudio 00058 00059 // --------------------------------------------------------------------------------------- 00060 00061 #endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX