1/* 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include "config.h" 27#include "IDBCursorBackendProxy.h" 28 29#if ENABLE(INDEXED_DATABASE) 30 31#include "IDBAny.h" 32#include "IDBCallbacks.h" 33#include "IDBKey.h" 34#include "SerializedScriptValue.h" 35#include "WebIDBCallbacksImpl.h" 36#include "WebIDBKey.h" 37#include "WebSerializedScriptValue.h" 38 39using namespace WebCore; 40 41namespace WebKit { 42 43PassRefPtr<IDBCursorBackendInterface> IDBCursorBackendProxy::create(PassOwnPtr<WebIDBCursor> idbCursor) 44{ 45 return adoptRef(new IDBCursorBackendProxy(idbCursor)); 46} 47 48IDBCursorBackendProxy::IDBCursorBackendProxy(PassOwnPtr<WebIDBCursor> idbCursor) 49 : m_idbCursor(idbCursor) 50{ 51} 52 53IDBCursorBackendProxy::~IDBCursorBackendProxy() 54{ 55} 56 57unsigned short IDBCursorBackendProxy::direction() const 58{ 59 return m_idbCursor->direction(); 60} 61 62PassRefPtr<IDBKey> IDBCursorBackendProxy::key() const 63{ 64 return m_idbCursor->key(); 65} 66 67PassRefPtr<IDBKey> IDBCursorBackendProxy::primaryKey() const 68{ 69 return m_idbCursor->primaryKey(); 70} 71 72PassRefPtr<SerializedScriptValue> IDBCursorBackendProxy::value() const 73{ 74 return m_idbCursor->value(); 75} 76 77void IDBCursorBackendProxy::update(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBCallbacks> callbacks, ExceptionCode& ec) 78{ 79 m_idbCursor->update(value, new WebIDBCallbacksImpl(callbacks), ec); 80} 81 82void IDBCursorBackendProxy::continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks, ExceptionCode& ec) 83{ 84 m_idbCursor->continueFunction(key, new WebIDBCallbacksImpl(callbacks), ec); 85} 86 87void IDBCursorBackendProxy::deleteFunction(PassRefPtr<IDBCallbacks> callbacks, ExceptionCode& ec) 88{ 89 m_idbCursor->deleteFunction(new WebIDBCallbacksImpl(callbacks), ec); 90} 91 92} // namespace WebKit 93 94#endif // ENABLE(INDEXED_DATABASE) 95