+/** A hardware driver provided by the library */
+class SR_API Driver :
+ public ParentOwned<Driver, Context, struct sr_dev_driver>,
+ public Configurable
+{
+public:
+ /** Name of this driver. */
+ string get_name();
+ /** Long name for this driver. */
+ string get_long_name();
+ /** Scan for devices and return a list of devices found.
+ * @param options Mapping of (ConfigKey, value) pairs. */
+ vector<shared_ptr<HardwareDevice> > scan(
+ map<const ConfigKey *, Glib::VariantBase> options = {});
+protected:
+ bool initialized;
+ vector<HardwareDevice *> devices;
+ Driver(struct sr_dev_driver *structure);
+ ~Driver();
+ friend class Context;
+ friend class HardwareDevice;
+ friend class ChannelGroup;
+};
+