proxygen
SocketFileDescriptorMap.h
Go to the documentation of this file.
1 /*
2  * Copyright 2014-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
20 
21 #ifndef _WIN32
22 // This can't go via the portability header, because
23 // the portability header depends on us.
24 #include <unistd.h>
25 #endif
26 
27 namespace folly {
28 namespace netops {
29 namespace detail {
31 #if _WIN32
32  static int close(int fd) noexcept;
33  static int close(SOCKET sock) noexcept;
34 
35  static SOCKET fdToSocket(int fd) noexcept;
36  static int socketToFd(SOCKET sock) noexcept;
37 #else
38  static int close(int fd) noexcept {
39  return ::close(fd);
40  }
41 
42  static int fdToSocket(int fd) noexcept {
43  return fd;
44  }
45  static int socketToFd(int sock) noexcept {
46  return sock;
47  }
48 #endif
49 };
50 } // namespace detail
51 } // namespace netops
52 } // namespace folly
—— Concurrent Priority Queue Implementation ——
Definition: AtomicBitSet.h:29
requires E e noexcept(noexcept(s.error(std::move(e))))
int close(NetworkSocket s)
Definition: NetOps.cpp:90