18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2010 Google Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 255af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 26dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#ifndef WebIDBCursor_h 27dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WebIDBCursor_h 28dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 29dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebCommon.h" 30a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "WebExceptionCode.h" 31dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebIDBCallbacks.h" 32dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebIDBKey.h" 33dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebSerializedScriptValue.h" 34dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebString.h" 35dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochnamespace WebKit { 37dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 38e14391e94c850b8bd03680c23b38978db68687a8John Reck// See comment in WebIDBFactory for a high level overview these classes. 39dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass WebIDBCursor { 40dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochpublic: 41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual ~WebIDBCursor() { } 42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 43dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual unsigned short direction() const 44dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch { 45dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WEBKIT_ASSERT_NOT_REACHED(); 46dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return 0; 47dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 48dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual WebIDBKey key() const 49dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch { 50dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WEBKIT_ASSERT_NOT_REACHED(); 5168513a70bcd92384395513322f1b801e7bf9c729Steve Block return WebIDBKey::createInvalid(); 52dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 5381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebIDBKey primaryKey() const 5481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch { 5581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch WEBKIT_ASSERT_NOT_REACHED(); 5681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return WebIDBKey::createInvalid(); 5781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 5881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // FIXME: Remove the following 2 methods and uncomment third after roll. 5981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebSerializedScriptValue value() const 6081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch { 6181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch WebSerializedScriptValue serializedScriptValue; 6281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch WebIDBKey key; 6381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch value(serializedScriptValue, key); 6481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return serializedScriptValue; 6581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 6681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual void value(WebSerializedScriptValue& serializedScriptValue, WebIDBKey& key) const 6781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch { 6881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch serializedScriptValue = value(); 6981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 7081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // virtual WebSerializedScriptValue value() const 7181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // { 7281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // WEBKIT_ASSERT_NOT_REACHED(); 7381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // return WebSerializedScriptValue(); 7481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // } 75dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 76a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch virtual void update(const WebSerializedScriptValue&, WebIDBCallbacks*, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } 77a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch virtual void continueFunction(const WebIDBKey&, WebIDBCallbacks*, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } 78f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch // FIXME: Remove after WK roll. 79f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual void remove(WebIDBCallbacks* callbacks, WebExceptionCode& ec) { deleteFunction(callbacks, ec); } 80f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual void deleteFunction(WebIDBCallbacks* callbacks, WebExceptionCode& ec) { remove(callbacks, ec); } 814576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 824576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangprotected: 834576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WebIDBCursor() { } 84dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch}; 85dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 86dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch} // namespace WebKit 87dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 88dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif // WebIDBCursor_h 89