chromium/ui/ozone/platform/drm/gpu/drm_device_generator.h

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

#ifndef UI_OZONE_PLATFORM_DRM_GPU_DRM_DEVICE_GENERATOR_H_
#define UI_OZONE_PLATFORM_DRM_GPU_DRM_DEVICE_GENERATOR_H_

#include "base/files/file_path.h"
#include "base/files/scoped_file.h"
#include "base/memory/scoped_refptr.h"

namespace ui {

class DrmDevice;

class DrmDeviceGenerator {
 public:
  DrmDeviceGenerator();

  DrmDeviceGenerator(const DrmDeviceGenerator&) = delete;
  DrmDeviceGenerator& operator=(const DrmDeviceGenerator&) = delete;

  virtual ~DrmDeviceGenerator();

  // Creates a DRM device for |file|. |device_path| describes the location of
  // the DRM device.
  virtual scoped_refptr<DrmDevice> CreateDevice(
      const base::FilePath& device_path,
      base::ScopedFD fd,
      bool is_primary_device) = 0;

 public:
};

}  // namespace ui

#endif  // UI_OZONE_PLATFORM_DRM_GPU_DRM_DEVICE_GENERATOR_H_