proxygen
wangle::AsyncServerSocketFactory Class Reference

#include <ServerSocketFactory.h>

Inheritance diagram for wangle::AsyncServerSocketFactory:
wangle::ServerSocketFactory

Classes

class  ThreadSafeDestructor
 

Public Member Functions

std::shared_ptr< folly::AsyncSocketBasenewSocket (folly::SocketAddress address, int, bool reuse, const ServerSocketConfig &config) override
 
void removeAcceptCB (std::shared_ptr< folly::AsyncSocketBase > s, Acceptor *callback, folly::EventBase *base) override
 
void addAcceptCB (std::shared_ptr< folly::AsyncSocketBase > s, Acceptor *callback, folly::EventBase *base) override
 
- Public Member Functions inherited from wangle::ServerSocketFactory
virtual ~ServerSocketFactory ()=default
 

Detailed Description

Definition at line 45 of file ServerSocketFactory.h.

Member Function Documentation

void wangle::AsyncServerSocketFactory::addAcceptCB ( std::shared_ptr< folly::AsyncSocketBase s,
Acceptor callback,
folly::EventBase base 
)
inlineoverridevirtual

Implements wangle::ServerSocketFactory.

Definition at line 76 of file ServerSocketFactory.h.

References s, and folly::netops::socket().

77  {
78  auto socket = std::dynamic_pointer_cast<folly::AsyncServerSocket>(s);
79  CHECK(socket);
80  socket->addAcceptCallback(callback, base);
81  }
NetworkSocket socket(int af, int type, int protocol)
Definition: NetOps.cpp:412
static set< string > s
std::shared_ptr<folly::AsyncSocketBase> wangle::AsyncServerSocketFactory::newSocket ( folly::SocketAddress  address,
int  ,
bool  reuse,
const ServerSocketConfig config 
)
inlineoverridevirtual

Implements wangle::ServerSocketFactory.

Definition at line 47 of file ServerSocketFactory.h.

References wangle::ServerSocketConfig::acceptBacklog, wangle::ServerSocketConfig::enableTCPFastOpen, wangle::ServerSocketConfig::fastOpenQueueSize, folly::EventBaseManager::get(), folly::EventBaseManager::getEventBase(), wangle::ServerSocketConfig::maxNumPendingConnectionsPerWorker, and folly::netops::socket().

49  {
50 
52  std::shared_ptr<folly::AsyncServerSocket> socket(
53  new folly::AsyncServerSocket(evb),
54  ThreadSafeDestructor());
55  socket->setMaxNumMessagesInQueue(
56  config.maxNumPendingConnectionsPerWorker);
57  socket->setReusePortEnabled(reuse);
58  if (config.enableTCPFastOpen) {
59  socket->setTFOEnabled(true, config.fastOpenQueueSize);
60  }
61  socket->bind(address);
62 
63  socket->listen(config.acceptBacklog);
64  socket->startAccepting();
65 
66  return socket;
67  }
EventBase * getEventBase() const
static EventBaseManager * get()
AHArrayT::Config config
NetworkSocket socket(int af, int type, int protocol)
Definition: NetOps.cpp:412
void wangle::AsyncServerSocketFactory::removeAcceptCB ( std::shared_ptr< folly::AsyncSocketBase s,
Acceptor callback,
folly::EventBase base 
)
inlineoverridevirtual

Implements wangle::ServerSocketFactory.

Definition at line 69 of file ServerSocketFactory.h.

References s, and folly::netops::socket().

70  {
71  auto socket = std::dynamic_pointer_cast<folly::AsyncServerSocket>(s);
72  CHECK(socket);
73  socket->removeAcceptCallback(callback, base);
74  }
NetworkSocket socket(int af, int type, int protocol)
Definition: NetOps.cpp:412
static set< string > s

The documentation for this class was generated from the following file: