25 #ifndef INCLUDED_USBSerialEnum_h_GUID_74DF3866_AA0B_4FB9_05D5_5FC824D366DC
26 #define INCLUDED_USBSerialEnum_h_GUID_74DF3866_AA0B_4FB9_05D5_5FC824D366DC
29 #include <osvr/USBSerial/Export.h>
43 typedef std::vector<USBSerialDevice> DeviceList;
47 class EnumeratorIterator {
50 OSVR_USBSERIAL_EXPORT EnumeratorIterator(DeviceList
const &devs,
52 OSVR_USBSERIAL_EXPORT EnumeratorIterator &operator++();
53 OSVR_USBSERIAL_EXPORT USBSerialDevice
const &operator*()
const;
54 OSVR_USBSERIAL_EXPORT
bool
55 operator!=(
const EnumeratorIterator &other)
const;
58 DeviceList
const *devs =
nullptr;
64 OSVR_USBSERIAL_EXPORT Enumerator(uint16_t vID, uint16_t pID);
65 OSVR_USBSERIAL_EXPORT Enumerator();
66 friend Enumerator enumerate();
67 friend Enumerator enumerate(uint16_t vID, uint16_t pID);
70 Enumerator(Enumerator
const &) =
delete;
71 Enumerator &operator=(Enumerator
const &) =
delete;
74 OSVR_USBSERIAL_EXPORT Enumerator(Enumerator &&other);
75 OSVR_USBSERIAL_EXPORT ~Enumerator();
77 OSVR_USBSERIAL_EXPORT EnumeratorIterator begin();
78 OSVR_USBSERIAL_EXPORT EnumeratorIterator end();
81 std::unique_ptr<EnumeratorImpl> m_impl;
84 inline Enumerator enumerate() {
return Enumerator{}; }
85 inline Enumerator enumerate(uint16_t vID, uint16_t pID) {
86 return Enumerator{vID, pID};
91 #endif // INCLUDED_USBSerialEnum_h_GUID_74DF3866_AA0B_4FB9_05D5_5FC824D366DC
The main namespace for all C++ elements of the framework, internal and external.
bool operator!=(const OSVR_TimeValue &tvA, const OSVR_TimeValue &tvB)
Operator == overload for time values.