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 WebIDBKeyRange_h 27dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WebIDBKeyRange_h 28dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 29dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebCommon.h" 30dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebPrivatePtr.h" 31dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 32dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochnamespace WebCore { class IDBKeyRange; } 33dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 34dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochnamespace WebKit { 35dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass WebIDBKey; 37dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass WebString; 38dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 39dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass WebIDBKeyRange { 40dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochpublic: 41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch ~WebIDBKeyRange() { reset(); } 42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 43dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WebIDBKeyRange(const WebIDBKeyRange& keyRange) { assign(keyRange); } 444576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WebIDBKeyRange(const WebIDBKey& lower, const WebIDBKey& upper, bool lowerOpen, bool upperOpen) { assign(lower, upper, lowerOpen, upperOpen); } 45dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 464576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WEBKIT_API WebIDBKey lower() const; 474576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WEBKIT_API WebIDBKey upper() const; 484576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WEBKIT_API bool lowerOpen() const; 494576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WEBKIT_API bool upperOpen() const; 50dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 51dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WEBKIT_API void assign(const WebIDBKeyRange&); 524576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang WEBKIT_API void assign(const WebIDBKey& lower, const WebIDBKey& upper, bool lowerOpen, bool upperOpen); 53dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WEBKIT_API void reset(); 54dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 55dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if WEBKIT_IMPLEMENTATION 56dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WebIDBKeyRange(const WTF::PassRefPtr<WebCore::IDBKeyRange>&); 57dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WebIDBKeyRange& operator=(const WTF::PassRefPtr<WebCore::IDBKeyRange>&); 58dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch operator WTF::PassRefPtr<WebCore::IDBKeyRange>() const; 59dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif 60dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 61dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochprivate: 62dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch WebPrivatePtr<WebCore::IDBKeyRange> m_private; 63dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch}; 64dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 65dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch} // namespace WebKit 66dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 67dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif // WebIDBKeyRange_h 68