1635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project/* 26c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Copyright (C) 2010 Google Inc. All rights reserved. 35f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * 4635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Redistribution and use in source and binary forms, with or without 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modification, are permitted provided that the following conditions are 6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * met: 75f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * 8635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions of source code must retain the above copyright 9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * notice, this list of conditions and the following disclaimer. 10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions in binary form must reproduce the above 11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * copyright notice, this list of conditions and the following disclaimer 12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * in the documentation and/or other materials provided with the 13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * distribution. 145f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * 15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */ 27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 285f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#include "config.h" 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 306c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if ENABLE(INDEXED_DATABASE) 315f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "V8IDBAny.h" 335f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "SerializedScriptValue.h" 35dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "V8IDBCursor.h" 3681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "V8IDBCursorWithValue.h" 37dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "V8IDBDatabase.h" 38db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "V8IDBFactory.h" 39db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "V8IDBIndex.h" 40e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "V8IDBKey.h" 41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "V8IDBObjectStore.h" 42a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "V8IDBTransaction.h" 435f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 445f1ab04193ad0130ca8204aadaceae083aca9881Feng Qiannamespace WebCore { 455f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 466c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenv8::Handle<v8::Value> toV8(IDBAny* impl) 475f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{ 486c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!impl) 496c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return v8::Null(); 505f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen switch (impl->type()) { 526c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen case IDBAny::UndefinedType: 536c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return v8::Undefined(); 545af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke case IDBAny::NullType: 555af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke return v8::Null(); 56dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case IDBAny::IDBCursorType: 57dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return toV8(impl->idbCursor()); 5881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch case IDBAny::IDBCursorWithValueType: 5981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return toV8(impl->idbCursorWithValue()); 60dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case IDBAny::IDBDatabaseType: 61dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return toV8(impl->idbDatabase()); 62a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch case IDBAny::IDBFactoryType: 63a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return toV8(impl->idbFactory()); 64db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block case IDBAny::IDBIndexType: 65db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return toV8(impl->idbIndex()); 66e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke case IDBAny::IDBKeyType: 67e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return toV8(impl->idbKey()); 68dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case IDBAny::IDBObjectStoreType: 69dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return toV8(impl->idbObjectStore()); 70a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch case IDBAny::IDBTransactionType: 71a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return toV8(impl->idbTransaction()); 726c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen case IDBAny::SerializedScriptValueType: 736c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return impl->serializedScriptValue()->deserialize(); 746c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen } 75643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 766c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ASSERT_NOT_REACHED(); 776c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return v8::Undefined(); 78643ca7872b450ea4efacab6188849e5aac2ba161Steve Block} 79643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 805f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian} // namespace WebCore 812bde8e466a4451c7319e3a072d118917957d6554Steve Block 822bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif // ENABLE(INDEXED_DATABASE) 83