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