text: // Copyright (c) 2010 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef CHROME_COMMON_INDEXED_DB_KEY_H_
  #define CHROME_COMMON_INDEXED_DB_KEY_H_
  #pragma once
  
  #include "base/basictypes.h"
  #include "base/string16.h"
  #include "third_party/WebKit/WebKit/chromium/public/WebIDBKey.h"
  
  class IndexedDBKey {
   public:
    IndexedDBKey(); // Defaults to WebKit::WebIDBKey::InvalidType.
    explicit IndexedDBKey(const WebKit::WebIDBKey& key);
    ~IndexedDBKey();
  
    void SetNull();
    void SetInvalid();
    void SetString(const string16& string);
    void SetDate(double date);
    void SetNumber(double number);
    void Set(const WebKit::WebIDBKey& key);
  
    WebKit::WebIDBKey::Type type() const { return type_; }
    const string16& string() const { return string_; }
    double date() const { return date_; }
    double number() const { return number_; }
  
    operator WebKit::WebIDBKey() const;
  
   private:
    WebKit::WebIDBKey::Type type_;
    string16 string_;
    double date_;
    double number_;
  };
  
  #endif  // CHROME_COMMON_INDEXED_DB_KEY_H_
  