IDBKey.cpp revision 5ddde30071f639962dd557c453f2ad01f8f0fd00
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve 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 9ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * 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 12ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * 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 */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 27ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include "IDBKey.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 29ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#if ENABLE(INDEXED_DATABASE) 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 31e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "SerializedScriptValue.h" 32e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 35ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockIDBKey::IDBKey() 36ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block : m_type(NullType) 37ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 38ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 39231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 40ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockIDBKey::IDBKey(int32_t number) 41ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block : m_type(NumberType) 42ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block , m_number(number) 43ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 44ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 46ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockIDBKey::IDBKey(const String& string) 47ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block : m_type(StringType) 48ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block , m_string(string) 49ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 50ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 52ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockIDBKey::~IDBKey() 53ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 565ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsenbool IDBKey::isEqual(IDBKey* other) 575ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen{ 585ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen if (!other || other->m_type != m_type) 595ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return false; 605ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 615ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen switch (m_type) { 625ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen case StringType: 635ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return other->m_string == m_string; 645ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen // FIXME: Implement dates. 655ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen case NumberType: 665ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return other->m_number == m_number; 675ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen case NullType: 685ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return true; 695ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen } 705ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 715ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen ASSERT_NOT_REACHED(); 725ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return false; 735ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen} 745ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 76ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 77ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#endif 78