WebToDatabaseProcessConnection.h [plain text]
#ifndef WebToDatabaseProcessConnection_h
#define WebToDatabaseProcessConnection_h
#include "Connection.h"
#include "MessageSender.h"
#include <wtf/RefCounted.h>
#if ENABLE(INDEXED_DATABASE)
namespace WebKit {
class WebIDBServerConnection;
class WebProcessIDBDatabaseBackend;
class WebToDatabaseProcessConnection : public RefCounted<WebToDatabaseProcessConnection>, public IPC::Connection::Client, public IPC::MessageSender {
public:
static PassRefPtr<WebToDatabaseProcessConnection> create(IPC::Connection::Identifier connectionIdentifier)
{
return adoptRef(new WebToDatabaseProcessConnection(connectionIdentifier));
}
~WebToDatabaseProcessConnection();
IPC::Connection* connection() const { return m_connection.get(); }
void registerWebIDBServerConnection(WebIDBServerConnection&);
void removeWebIDBServerConnection(WebIDBServerConnection&);
private:
WebToDatabaseProcessConnection(IPC::Connection::Identifier);
virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
virtual void didClose(IPC::Connection*) override;
virtual void didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
virtual IPC::Connection* messageSenderConnection() override { return m_connection.get(); }
virtual uint64_t messageSenderDestinationID() override { return 0; }
RefPtr<IPC::Connection> m_connection;
HashMap<uint64_t, WebIDBServerConnection*> m_webIDBServerConnections;
};
}
#endif // ENABLE(INDEXED_DATABASE)
#endif // WebToDatabaseProcessConnection_h