| // Copyright 2021 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 "ui/gfx/x/ref_counted_fd.h" |
| |
| #include "base/check_op.h" |
| #include "base/files/scoped_file.h" |
| #include "base/memory/scoped_refptr.h" |
| #include "base/posix/eintr_wrapper.h" |
| |
| namespace x11 { |
| |
| RefCountedFD::RefCountedFD() = default; |
| |
| RefCountedFD::RefCountedFD(int fd) : impl_(base::MakeRefCounted<Impl>(fd)) {} |
| |
| RefCountedFD::RefCountedFD(base::ScopedFD fd) |
| : impl_(base::MakeRefCounted<Impl>(std::move(fd))) {} |
| |
| RefCountedFD::RefCountedFD(const RefCountedFD& other) = default; |
| RefCountedFD::RefCountedFD(RefCountedFD&&) = default; |
| RefCountedFD& RefCountedFD::operator=(const RefCountedFD& other) = default; |
| RefCountedFD& RefCountedFD::operator=(RefCountedFD&&) = default; |
| RefCountedFD::~RefCountedFD() = default; |
| |
| int RefCountedFD::get() const { |
| return impl_ ? impl_->fd().get() : -1; |
| } |
| |
| RefCountedFD::Impl::Impl(int fd) : fd_(fd) {} |
| |
| RefCountedFD::Impl::Impl(base::ScopedFD fd) : fd_(std::move(fd)) {} |
| |
| RefCountedFD::Impl::~Impl() = default; |
| |
| } // namespace x11 |