indexed_db_key_range.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_COMMON_INDEXED_DB_INDEXED_DB_KEY_RANGE_H_
6#define CONTENT_COMMON_INDEXED_DB_INDEXED_DB_KEY_RANGE_H_
7
8#include "base/basictypes.h"
9#include "content/common/content_export.h"
10#include "content/common/indexed_db/indexed_db_key.h"
11#include "third_party/WebKit/Source/Platform/chromium/public/WebIDBKeyRange.h"
12
13namespace content {
14
15class CONTENT_EXPORT IndexedDBKeyRange {
16 public:
17  IndexedDBKeyRange();
18  explicit IndexedDBKeyRange(const WebKit::WebIDBKeyRange& key_range);
19  explicit IndexedDBKeyRange(const IndexedDBKey& onlyKey);
20  IndexedDBKeyRange(const IndexedDBKey& lower,
21                    const IndexedDBKey& upper,
22                    bool lower_open,
23                    bool upper_open);
24  ~IndexedDBKeyRange();
25
26  const IndexedDBKey& lower() const { return lower_; }
27  const IndexedDBKey& upper() const { return upper_; }
28  bool lowerOpen() const { return lower_open_; }
29  bool upperOpen() const { return upper_open_; }
30
31  bool IsOnlyKey() const;
32
33  operator WebKit::WebIDBKeyRange() const;
34
35 private:
36  IndexedDBKey lower_;
37  IndexedDBKey upper_;
38  bool lower_open_;
39  bool upper_open_;
40};
41
42}  // namespace content
43
44#endif  // CONTENT_COMMON_INDEXED_DB_INDEXED_DB_KEY_RANGE_H_
45