IDBCallbacksProxy.cpp [plain text]
#include "config.h"
#include "IDBCallbacksProxy.h"
#if ENABLE(INDEXED_DATABASE)
#include "IDBDatabaseBackendProxy.h"
#include "IDBDatabaseError.h"
#include "WebIDBCallbacks.h"
#include "WebIDBCursorImpl.h"
#include "WebIDBDatabaseImpl.h"
#include "WebIDBDatabaseError.h"
#include "WebIDBKey.h"
#include "WebIDBTransactionImpl.h"
#include "platform/WebSerializedScriptValue.h"
using namespace WebCore;
namespace WebKit {
PassRefPtr<IDBCallbacksProxy> IDBCallbacksProxy::create(PassOwnPtr<WebIDBCallbacks> callbacks)
{
return adoptRef(new IDBCallbacksProxy(callbacks));
}
IDBCallbacksProxy::IDBCallbacksProxy(PassOwnPtr<WebIDBCallbacks> callbacks)
: m_callbacks(callbacks)
{
}
IDBCallbacksProxy::~IDBCallbacksProxy()
{
}
void IDBCallbacksProxy::onError(PassRefPtr<IDBDatabaseError> idbDatabaseError)
{
m_callbacks->onError(WebIDBDatabaseError(idbDatabaseError));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBCursorBackendInterface> idbCursorBackend)
{
m_callbacks->onSuccess(new WebIDBCursorImpl(idbCursorBackend));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend)
{
m_callbacks->onSuccess(new WebIDBDatabaseImpl(backend));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBKey> idbKey)
{
m_callbacks->onSuccess(WebIDBKey(idbKey));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBTransactionBackendInterface> backend)
{
m_callbacks->onSuccess(new WebIDBTransactionImpl(backend));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<DOMStringList> domStringList)
{
m_callbacks->onSuccess(WebDOMStringList(domStringList));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<SerializedScriptValue> serializedScriptValue)
{
m_callbacks->onSuccess(WebSerializedScriptValue(serializedScriptValue));
}
void IDBCallbacksProxy::onSuccessWithContinuation()
{
m_callbacks->onSuccessWithContinuation();
}
void IDBCallbacksProxy::onSuccessWithPrefetch(const Vector<RefPtr<IDBKey> >& keys, const Vector<RefPtr<IDBKey> >& primaryKeys, const Vector<RefPtr<SerializedScriptValue> >& values)
{
const size_t n = keys.size();
WebVector<WebIDBKey> webKeys(n);
WebVector<WebIDBKey> webPrimaryKeys(n);
WebVector<WebSerializedScriptValue> webValues(n);
for (size_t i = 0; i < n; ++i) {
webKeys[i] = WebIDBKey(keys[i]);
webPrimaryKeys[i] = WebIDBKey(primaryKeys[i]);
webValues[i] = WebSerializedScriptValue(values[i]);
}
m_callbacks->onSuccessWithPrefetch(webKeys, webPrimaryKeys, webValues);
}
void IDBCallbacksProxy::onBlocked()
{
m_callbacks->onBlocked();
}
}
#endif // ENABLE(INDEXED_DATABASE)