+class Drive
+{
+public:
+ Drive (std::string internal_name, uint64_t size, bool mounted, boost::optional<std::string> vendor, boost::optional<std::string> model)
+ : _internal_name(internal_name)
+ , _size(size)
+ , _mounted(mounted)
+ , _vendor(vendor)
+ , _model(model)
+ {}
+
+ std::string description () const;
+ std::string internal_name () const {
+ return _internal_name;
+ }
+ bool mounted () const {
+ return _mounted;
+ }
+
+private:
+ std::string _internal_name;
+ /** size in bytes */
+ uint64_t _size;
+ bool _mounted;
+ boost::optional<std::string> _vendor;
+ boost::optional<std::string> _model;
+};
+
+std::vector<Drive> get_drives ();
+