Sponge
CS144's user-space TCP library
|
Helper class that makes a TCPOverIPv4SpongeSocket behave more like a (kernel) TCPSocket. More...
#include <tcp_sponge_socket.hh>
Public Member Functions | |
CS144TCPSocket () | |
void | connect (const Address &address) |
Public Member Functions inherited from TCPSpongeSocket< AdaptT > | |
TCPSpongeSocket (AdaptT &&datagram_interface) | |
Construct from the interface that the TCPConnection thread will use to read and write datagrams. More... | |
~TCPSpongeSocket () | |
When a connected socket is destructed, it will send a RST. More... | |
void | connect (const TCPConfig &c_tcp, const FdAdapterConfig &c_ad) |
Connect using the specified configurations; blocks until connect succeeds or fails. More... | |
void | listen_and_accept (const TCPConfig &c_tcp, const FdAdapterConfig &c_ad) |
Listen and accept using the specified configurations; blocks until accept succeeds or fails. More... | |
void | wait_until_closed () |
TCPSpongeSocket (const TCPSpongeSocket &)=delete | |
TCPSpongeSocket (TCPSpongeSocket &&)=delete | |
TCPSpongeSocket & | operator= (const TCPSpongeSocket &)=delete |
TCPSpongeSocket & | operator= (TCPSpongeSocket &&)=delete |
void | bind (const Address &address)=delete |
Address | local_address () const =delete |
Address | peer_address () const =delete |
void | set_reuseaddr ()=delete |
Public Member Functions inherited from LocalStreamSocket | |
LocalStreamSocket (FileDescriptor &&fd) | |
Construct from a file descriptor. More... | |
Public Member Functions inherited from Socket | |
void | bind (const Address &address) |
Bind a socket to a specified address with bind(2), usually for listen/accept. More... | |
void | connect (const Address &address) |
Connect a socket to a specified peer address with connect(2). More... | |
Address | local_address () const |
Get local address of socket with getsockname(2). More... | |
Address | peer_address () const |
Get peer address of socket with getpeername(2). More... | |
void | set_reuseaddr () |
Allow local address to be reused sooner via SO_REUSEADDR. More... | |
void | shutdown (const int how) |
Shut down a socket via shutdown(2). More... | |
Public Member Functions inherited from FileDescriptor | |
FileDescriptor (const int fd) | |
Construct from a file descriptor number returned by the kernel. More... | |
~FileDescriptor ()=default | |
Free the std::shared_ptr; the FDWrapper destructor calls close() when the refcount goes to zero. More... | |
void | close () |
Close the underlying file descriptor. More... | |
FileDescriptor | duplicate () const |
Copy a FileDescriptor explicitly, increasing the FDWrapper refcount. More... | |
std::string | read (const size_t limit=std::numeric_limits< size_t >::max()) |
Read up to limit bytes. More... | |
void | read (std::string &str, const size_t limit=std::numeric_limits< size_t >::max()) |
Read up to limit bytes into str (caller can allocate storage) More... | |
void | set_blocking (const bool blocking_state) |
Set blocking(true) or non-blocking(false) More... | |
size_t | write (BufferViewList buffer, const bool write_all=true) |
Write a buffer (or list of buffers), possibly blocking until all is written. More... | |
size_t | write (const char *str, const bool write_all=true) |
Write a string, possibly blocking until all is written. More... | |
size_t | write (const std::string &str, const bool write_all=true) |
Write a string, possibly blocking until all is written. More... | |
int | fd_num () const |
underlying descriptor number More... | |
bool | eof () const |
EOF flag state. More... | |
bool | closed () const |
closed flag state More... | |
unsigned int | read_count () const |
number of reads More... | |
unsigned int | write_count () const |
number of writes More... | |
FileDescriptor (const FileDescriptor &other)=delete | |
copy construction is forbidden More... | |
FileDescriptor & | operator= (const FileDescriptor &other)=delete |
copy assignment is forbidden More... | |
FileDescriptor (FileDescriptor &&other)=default | |
move construction is allowed More... | |
FileDescriptor & | operator= (FileDescriptor &&other)=default |
move assignment is allowed More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Socket | |
Socket (const int domain, const int type) | |
Construct via socket(2). More... | |
Socket (FileDescriptor &&fd, const int domain, const int type) | |
Construct from a file descriptor. More... | |
template<typename option_type > | |
void | setsockopt (const int level, const int option, const option_type &option_value) |
Wrapper around setsockopt(2). More... | |
Helper class that makes a TCPOverIPv4SpongeSocket behave more like a (kernel) TCPSocket.
Definition at line 125 of file tcp_sponge_socket.hh.
CS144TCPSocket::CS144TCPSocket | ( | ) |
Definition at line 288 of file tcp_sponge_socket.cc.
void CS144TCPSocket::connect | ( | const Address & | address | ) |
Definition at line 290 of file tcp_sponge_socket.cc.