Bug 1161020: Added clean interface to |UnixSocketConnector|, r=kmachulis
The current interface of |UnixSocketConnector| doesn't follow any design and is not easily understandable. This patch adds a new interface to the class. The new interface provides a method for each of the following operations: * converting an address to a human-readable string, * creating a listening socket, * creating a stream socket, and * accepting a stream socket from a listening socket. All arguments are stored in the connector class, so that connect and listen methods of the socket classes don't require protocol-specific arguments. All socket parameters are set within the connector class, so each connector class can now select parameters individually.
This commit is contained in:
@@ -9,8 +9,45 @@
|
||||
namespace mozilla {
|
||||
namespace ipc {
|
||||
|
||||
UnixSocketConnector::UnixSocketConnector()
|
||||
{ }
|
||||
|
||||
UnixSocketConnector::~UnixSocketConnector()
|
||||
{ }
|
||||
|
||||
nsresult
|
||||
UnixSocketConnector::ConvertAddressToString(const struct sockaddr& aAddress,
|
||||
socklen_t aAddressLength,
|
||||
nsACString& aAddressString)
|
||||
{
|
||||
MOZ_CRASH("|UnixSocketConnector| does not convert addresses to strings.");
|
||||
return NS_ERROR_ABORT;
|
||||
}
|
||||
|
||||
nsresult
|
||||
UnixSocketConnector::CreateListenSocket(struct sockaddr* aAddress,
|
||||
socklen_t* aAddressLength,
|
||||
int& aListenFd)
|
||||
{
|
||||
MOZ_CRASH("|UnixSocketConnector| does not support listening sockets.");
|
||||
}
|
||||
|
||||
nsresult
|
||||
UnixSocketConnector::AcceptStreamSocket(int aListenFd,
|
||||
struct sockaddr* aAddress,
|
||||
socklen_t* aAddressLen,
|
||||
int& aStreamFd)
|
||||
{
|
||||
MOZ_CRASH("|UnixSocketConnector| does not support accepting stream sockets.");
|
||||
}
|
||||
|
||||
nsresult
|
||||
UnixSocketConnector::CreateStreamSocket(struct sockaddr* aAddress,
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd)
|
||||
{
|
||||
MOZ_CRASH("|UnixSocketConnector| does not support creating stream sockets.");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user