OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 kStringType = 3, | 72 kStringType = 3, |
73 kDateType = 4, | 73 kDateType = 4, |
74 kNumberType = 5, | 74 kNumberType = 5, |
75 kTypeEnumMax, | 75 kTypeEnumMax, |
76 }; | 76 }; |
77 | 77 |
78 Type GetType() const { return type_; } | 78 Type GetType() const { return type_; } |
79 bool IsValid() const; | 79 bool IsValid() const; |
80 | 80 |
81 const KeyArray& Array() const { | 81 const KeyArray& Array() const { |
82 ASSERT(type_ == kArrayType); | 82 DCHECK_EQ(type_, kArrayType); |
83 return array_; | 83 return array_; |
84 } | 84 } |
85 | 85 |
86 PassRefPtr<SharedBuffer> Binary() const { | 86 PassRefPtr<SharedBuffer> Binary() const { |
87 ASSERT(type_ == kBinaryType); | 87 DCHECK_EQ(type_, kBinaryType); |
88 return binary_; | 88 return binary_; |
89 } | 89 } |
90 | 90 |
91 const String& GetString() const { | 91 const String& GetString() const { |
92 ASSERT(type_ == kStringType); | 92 DCHECK_EQ(type_, kStringType); |
93 return string_; | 93 return string_; |
94 } | 94 } |
95 | 95 |
96 double Date() const { | 96 double Date() const { |
97 ASSERT(type_ == kDateType); | 97 DCHECK_EQ(type_, kDateType); |
98 return number_; | 98 return number_; |
99 } | 99 } |
100 | 100 |
101 double Number() const { | 101 double Number() const { |
102 ASSERT(type_ == kNumberType); | 102 DCHECK_EQ(type_, kNumberType); |
103 return number_; | 103 return number_; |
104 } | 104 } |
105 | 105 |
106 int Compare(const IDBKey* other) const; | 106 int Compare(const IDBKey* other) const; |
107 bool IsLessThan(const IDBKey* other) const; | 107 bool IsLessThan(const IDBKey* other) const; |
108 bool IsEqual(const IDBKey* other) const; | 108 bool IsEqual(const IDBKey* other) const; |
109 | 109 |
110 // Returns a new key array with invalid keys and duplicates removed. | 110 // Returns a new key array with invalid keys and duplicates removed. |
111 KeyArray ToMultiEntryArray() const; | 111 KeyArray ToMultiEntryArray() const; |
112 | 112 |
113 private: | 113 private: |
114 IDBKey() : type_(kInvalidType) {} | 114 IDBKey() : type_(kInvalidType) {} |
115 IDBKey(Type type, double number) : type_(type), number_(number) {} | 115 IDBKey(Type type, double number) : type_(type), number_(number) {} |
116 explicit IDBKey(const String& value) : type_(kStringType), string_(value) {} | 116 explicit IDBKey(const String& value) : type_(kStringType), string_(value) {} |
117 explicit IDBKey(PassRefPtr<SharedBuffer> value) | 117 explicit IDBKey(PassRefPtr<SharedBuffer> value) |
118 : type_(kBinaryType), binary_(std::move(value)) {} | 118 : type_(kBinaryType), binary_(std::move(value)) {} |
119 explicit IDBKey(const KeyArray& key_array) | 119 explicit IDBKey(const KeyArray& key_array) |
120 : type_(kArrayType), array_(key_array) {} | 120 : type_(kArrayType), array_(key_array) {} |
121 | 121 |
122 const Type type_; | 122 const Type type_; |
123 const KeyArray array_; | 123 const KeyArray array_; |
124 RefPtr<SharedBuffer> binary_; | 124 RefPtr<SharedBuffer> binary_; |
125 const String string_; | 125 const String string_; |
126 const double number_ = 0; | 126 const double number_ = 0; |
127 }; | 127 }; |
128 | 128 |
129 } // namespace blink | 129 } // namespace blink |
130 | 130 |
131 #endif // IDBKey_h | 131 #endif // IDBKey_h |
OLD | NEW |