// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "device/usb/scoped_libusb_device_handle.h"

#include "device/usb/usb_context.h"
#include "third_party/libusb/src/libusb/libusb.h"

namespace device {

ScopedLibusbDeviceHandle::ScopedLibusbDeviceHandle(
    libusb_device_handle* handle,
    scoped_refptr<UsbContext> context)
    : handle_(handle), context_(std::move(context)) {}

ScopedLibusbDeviceHandle::ScopedLibusbDeviceHandle(
    ScopedLibusbDeviceHandle&& other)
    : handle_(other.handle_), context_(std::move(other.context_)) {
  other.handle_ = nullptr;
}

ScopedLibusbDeviceHandle::~ScopedLibusbDeviceHandle() {
  Reset();
}

void ScopedLibusbDeviceHandle::Reset() {
  libusb_close(handle_);
  handle_ = nullptr;
  context_.reset();
}

bool ScopedLibusbDeviceHandle::IsValid() const {
  return handle_ != nullptr;
}

}  // namespace device
