Bug 1109592 - Add |NfcListenSocket|. r=allstars.chh

The class |NfcListenSocket| is a socket that listens for connections
from nfcd.
This commit is contained in:
Thomas Zimmermann 2015-03-11 03:34:00 -04:00
parent b71aaf67e2
commit 60bb14fba6
2 changed files with 47 additions and 0 deletions

View File

@ -153,6 +153,38 @@ NfcConnector::GetSocketAddr(const sockaddr_any& aAddr,
MOZ_CRASH("This should never be called!");
}
//
// NfcListenSocket
//
NfcListenSocket::NfcListenSocket(NfcSocketListener* aListener)
: mListener(aListener)
{ }
void
NfcListenSocket::OnConnectSuccess()
{
if (mListener) {
mListener->OnConnectSuccess(NfcSocketListener::LISTEN_SOCKET);
}
}
void
NfcListenSocket::OnConnectError()
{
if (mListener) {
mListener->OnConnectError(NfcSocketListener::LISTEN_SOCKET);
}
}
void
NfcListenSocket::OnDisconnect()
{
if (mListener) {
mListener->OnDisconnect(NfcSocketListener::LISTEN_SOCKET);
}
}
//
// NfcConsumer
//

View File

@ -9,6 +9,7 @@
#ifndef mozilla_ipc_Nfc_h
#define mozilla_ipc_Nfc_h 1
#include <mozilla/ipc/ListenSocket.h>
#include <mozilla/ipc/StreamSocket.h>
#include <mozilla/ipc/UnixSocketConnector.h>
@ -19,6 +20,7 @@ class NfcSocketListener
{
public:
enum SocketType {
LISTEN_SOCKET,
STREAM_SOCKET
};
@ -29,6 +31,19 @@ public:
virtual void OnDisconnect(enum SocketType aSocketType) = 0;
};
class NfcListenSocket MOZ_FINAL : public mozilla::ipc::ListenSocket
{
public:
NfcListenSocket(NfcSocketListener* aListener);
void OnConnectSuccess() MOZ_OVERRIDE;
void OnConnectError() MOZ_OVERRIDE;
void OnDisconnect() MOZ_OVERRIDE;
private:
NfcSocketListener* mListener;
};
class NfcConnector MOZ_FINAL : public mozilla::ipc::UnixSocketConnector
{
public: