#include <folly/io/async/AsyncSocketBase.h>
#include <folly/io/async/DelayedDestruction.h>
#include <folly/io/async/EventBase.h>
-#include <folly/ssl/OpenSSLPtrTypes.h>
#include <folly/portability/OpenSSL.h>
#include <folly/portability/SysUio.h>
+#include <folly/ssl/OpenSSLPtrTypes.h>
constexpr bool kOpenSslModeMoveBufferOwnership =
#ifdef SSL_MODE_MOVE_BUFFER_OWNERSHIP
* this indicates that only the write side of socket should be shutdown
*/
WRITE_SHUTDOWN = 0x04,
+ /*
+ * use msg zerocopy if allowed
+ */
+ WRITE_MSG_ZEROCOPY = 0x08,
};
/*
return addr;
}
- virtual void getAddress(SocketAddress* address) const {
+ void getAddress(SocketAddress* address) const override {
getLocalAddress(address);
}
}
protected:
- virtual ~AsyncTransport() = default;
+ ~AsyncTransport() override = default;
};
class AsyncReader {
// to keep compatibility.
using ReadCallback = AsyncReader::ReadCallback;
using WriteCallback = AsyncWriter::WriteCallback;
- virtual void setReadCB(ReadCallback* callback) override = 0;
- virtual ReadCallback* getReadCallback() const override = 0;
- virtual void write(WriteCallback* callback, const void* buf, size_t bytes,
- WriteFlags flags = WriteFlags::NONE) override = 0;
- virtual void writev(WriteCallback* callback, const iovec* vec, size_t count,
- WriteFlags flags = WriteFlags::NONE) override = 0;
- virtual void writeChain(WriteCallback* callback,
- std::unique_ptr<IOBuf>&& buf,
- WriteFlags flags = WriteFlags::NONE) override = 0;
+ void setReadCB(ReadCallback* callback) override = 0;
+ ReadCallback* getReadCallback() const override = 0;
+ void write(
+ WriteCallback* callback,
+ const void* buf,
+ size_t bytes,
+ WriteFlags flags = WriteFlags::NONE) override = 0;
+ void writev(
+ WriteCallback* callback,
+ const iovec* vec,
+ size_t count,
+ WriteFlags flags = WriteFlags::NONE) override = 0;
+ void writeChain(
+ WriteCallback* callback,
+ std::unique_ptr<IOBuf>&& buf,
+ WriteFlags flags = WriteFlags::NONE) override = 0;
/**
* The transport wrapper may wrap another transport. This returns the
* transport that is wrapped. It returns nullptr if there is no wrapped
virtual std::string getSecurityProtocol() const { return ""; }
};
-} // folly
+} // namespace folly