xref: /aosp_15_r20/external/cronet/base/file_descriptor_posix.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2021 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "base/file_descriptor_posix.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include "base/files/file.h"
8*6777b538SAndroid Build Coastguard Worker 
9*6777b538SAndroid Build Coastguard Worker namespace base {
10*6777b538SAndroid Build Coastguard Worker 
11*6777b538SAndroid Build Coastguard Worker FileDescriptor::FileDescriptor() = default;
12*6777b538SAndroid Build Coastguard Worker 
FileDescriptor(int ifd,bool iauto_close)13*6777b538SAndroid Build Coastguard Worker FileDescriptor::FileDescriptor(int ifd, bool iauto_close)
14*6777b538SAndroid Build Coastguard Worker     : fd(ifd), auto_close(iauto_close) {}
15*6777b538SAndroid Build Coastguard Worker 
FileDescriptor(File file)16*6777b538SAndroid Build Coastguard Worker FileDescriptor::FileDescriptor(File file)
17*6777b538SAndroid Build Coastguard Worker     : fd(file.TakePlatformFile()), auto_close(true) {}
18*6777b538SAndroid Build Coastguard Worker 
FileDescriptor(ScopedFD fd)19*6777b538SAndroid Build Coastguard Worker FileDescriptor::FileDescriptor(ScopedFD fd)
20*6777b538SAndroid Build Coastguard Worker     : fd(fd.release()), auto_close(true) {}
21*6777b538SAndroid Build Coastguard Worker 
operator ==(const FileDescriptor & other) const22*6777b538SAndroid Build Coastguard Worker bool FileDescriptor::operator==(const FileDescriptor& other) const {
23*6777b538SAndroid Build Coastguard Worker   return fd == other.fd && auto_close == other.auto_close;
24*6777b538SAndroid Build Coastguard Worker }
25*6777b538SAndroid Build Coastguard Worker 
operator !=(const FileDescriptor & other) const26*6777b538SAndroid Build Coastguard Worker bool FileDescriptor::operator!=(const FileDescriptor& other) const {
27*6777b538SAndroid Build Coastguard Worker   return !operator==(other);
28*6777b538SAndroid Build Coastguard Worker }
29*6777b538SAndroid Build Coastguard Worker 
operator <(const FileDescriptor & other) const30*6777b538SAndroid Build Coastguard Worker bool FileDescriptor::operator<(const FileDescriptor& other) const {
31*6777b538SAndroid Build Coastguard Worker   return other.fd < fd;
32*6777b538SAndroid Build Coastguard Worker }
33*6777b538SAndroid Build Coastguard Worker 
34*6777b538SAndroid Build Coastguard Worker }  // namespace base