2 * Copyright © 2014 Canonical Ltd.
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
18 #include "anbox/common/fd.h"
24 Fd::Fd() : Fd{invalid} {}
26 Fd::Fd(IntOwnedFd fd) : fd{std::make_shared<int>(fd.int_owned_fd)} {}
32 if (*fd > Fd::invalid) ::close(*fd);
36 Fd::Fd(Fd&& other) : fd{std::move(other.fd)} {}
38 Fd& Fd::operator=(Fd other) {
39 std::swap(fd, other.fd);
43 Fd::operator int() const {