31 #ifdef SSL_MODE_MOVE_BUFFER_OWNERSHIP 40 class AsyncSocketException;
75 static_cast<uint32_t>(
a) | static_cast<uint32_t>(b));
91 static_cast<uint32_t>(
a) & static_cast<uint32_t>(b));
152 typedef std::unique_ptr<AsyncTransport, Destructor>
UniquePtr;
165 virtual void close() = 0;
178 virtual void closeNow() = 0;
216 virtual void shutdownWrite() = 0;
226 virtual void shutdownWriteNow() = 0;
236 virtual bool good()
const = 0;
243 virtual bool readable()
const = 0;
269 virtual bool connecting()
const = 0;
276 virtual bool error()
const = 0;
286 virtual void attachEventBase(
EventBase* eventBase) = 0;
297 virtual void detachEventBase() = 0;
304 virtual bool isDetachable()
const = 0;
318 virtual void setSendTimeout(
uint32_t milliseconds) = 0;
326 virtual uint32_t getSendTimeout()
const = 0;
336 virtual void getLocalAddress(
SocketAddress* address)
const = 0;
348 getLocalAddress(&addr);
353 getLocalAddress(address);
365 virtual void getPeerAddress(
SocketAddress* address)
const = 0;
377 getPeerAddress(&addr);
428 virtual bool isEorTrackingEnabled()
const = 0;
430 virtual void setEorTracking(
bool track) = 0;
432 virtual size_t getAppBytesWritten()
const = 0;
433 virtual size_t getRawBytesWritten()
const = 0;
434 virtual size_t getAppBytesReceived()
const = 0;
435 virtual size_t getRawBytesReceived()
const = 0;
440 virtual void onEgressBuffered() = 0;
441 virtual void onEgressBufferCleared() = 0;
456 virtual void onReplaySafe() = 0;
474 CHECK(
false) <<
"setReplaySafetyCallback() not supported";
519 virtual void getReadBuffer(
void** bufReturn,
size_t* lenReturn) = 0;
534 virtual void readDataAvailable(
size_t len)
noexcept = 0;
587 std::unique_ptr<IOBuf> ) noexcept {}
595 virtual void readEOF() noexcept = 0;
634 virtual void writeSuccess()
noexcept = 0;
642 virtual void writeErr(
686 virtual void writeChain(
688 std::unique_ptr<IOBuf>&& buf,
701 using UniquePtr = std::unique_ptr<AsyncTransportWrapper, Destructor>;
721 std::unique_ptr<IOBuf>&& buf,
741 auto sock =
dynamic_cast<const T*
>(
current);
753 ->getUnderlyingTransport<T>());
virtual void readBufferAvailable(std::unique_ptr< IOBuf >) noexcept
virtual const AsyncTransportWrapper * getWrappedTransport() const
void write(const T &in, folly::io::Appender &appender)
std::unique_ptr< X509, X509Deleter > X509UniquePtr
virtual std::string getSecurityProtocol() const
virtual const AsyncTransportCertificate * getSelfCertificate() const
WriteFlags operator|(WriteFlags a, WriteFlags b)
virtual bool isBufferMovable() noexcept
WriteFlags operator&(WriteFlags a, WriteFlags b)
constexpr bool kOpenSslModeMoveBufferOwnership
WriteFlags & operator|=(WriteFlags &a, WriteFlags b)
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
requires And< SemiMovable< VN >... > &&SemiMovable< E > auto error(E e)
virtual std::string getApplicationProtocol() const noexcept
bool isSet(WriteFlags a, WriteFlags b)
virtual const AsyncTransportCertificate * getPeerCertificate() const
virtual bool isPending() const
SocketAddress getPeerAddress() const
virtual bool writable() const
WriteFlags operator~(WriteFlags a)
const T * getUnderlyingTransport() const
virtual size_t maxBufferSize() const
SocketAddress getLocalAddress() const
WriteFlags & operator&=(WriteFlags &a, WriteFlags b)
virtual void closeWithReset()
void getAddress(SocketAddress *address) const override
WriteFlags unSet(WriteFlags a, WriteFlags b)
virtual ssl::X509UniquePtr getPeerCert() const
virtual const X509 * getSelfCert() const
virtual void setReplaySafetyCallback(ReplaySafetyCallback *callback)
T * getUnderlyingTransport()
virtual bool isReplaySafe() const
int close(NetworkSocket s)
ThreadPoolListHook * addr
virtual ~BufferCallback()
std::unique_ptr< AsyncTransport, Destructor > UniquePtr