#pragma once

#include "UsbBase.h"
#include "File.h"

namespace ehs
{
    class Usb final : public UsbBase
    {
    private:
        int hdl;

    public:
        ~Usb() override;

        Usb();

        Usb(UInt_32 bus, UInt_32 address);

        Usb(Usb&& usb) noexcept;

        Usb(const Usb& usb);

        Usb& operator=(Usb&& usb) noexcept;

        Usb& operator=(const Usb& usb);

        void Initialize() override;

        void Release() override;

        bool IsInitialized() const override;
    };
}