OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef SYNC_INTERNAL_API_PUBLIC_BASE_ORDINAL_H_ | 5 #ifndef SYNC_INTERNAL_API_PUBLIC_BASE_ORDINAL_H_ |
6 #define SYNC_INTERNAL_API_PUBLIC_BASE_ORDINAL_H_ | 6 #define SYNC_INTERNAL_API_PUBLIC_BASE_ORDINAL_H_ |
7 | 7 |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <cstddef> | 9 #include <cstddef> |
10 #include <string> | 10 #include <string> |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
71 EqualsFn(); | 71 EqualsFn(); |
72 | 72 |
73 bool operator()(const Ordinal<Traits>& lhs, | 73 bool operator()(const Ordinal<Traits>& lhs, |
74 const Ordinal<Traits>& rhs) const; | 74 const Ordinal<Traits>& rhs) const; |
75 }; | 75 }; |
76 | 76 |
77 // Creates an Ordinal from the given string of bytes. The Ordinal | 77 // Creates an Ordinal from the given string of bytes. The Ordinal |
78 // may be valid or invalid. | 78 // may be valid or invalid. |
79 explicit Ordinal(const std::string& bytes); | 79 explicit Ordinal(const std::string& bytes); |
80 | 80 |
81 // Creates an invalid Ordinal. | 81 // Creates a valid initial Ordinal. |
akalin
2012/10/05 22:40:27
revert this
vishwath
2012/10/08 20:17:49
Done.
| |
82 Ordinal(); | 82 Ordinal(); |
83 | 83 |
84 // Creates a valid initial Ordinal. This is called to create the first | 84 // Creates a valid initial Ordinal. This is called to create the first |
85 // element of Ordinal list (i.e. before we have any other values we can | 85 // element of Ordinal list (i.e. before we have any other values we can |
86 // generate from). | 86 // generate from). |
87 static Ordinal CreateInitialOrdinal(); | 87 static Ordinal CreateInitialOrdinal(); |
88 | 88 |
89 // Returns true iff this Ordinal is valid. This takes constant | 89 // Returns true iff this Ordinal is valid. This takes constant |
90 // time. | 90 // time. |
91 bool IsValid() const; | 91 bool IsValid() const; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
227 } | 227 } |
228 | 228 |
229 template <typename Traits> | 229 template <typename Traits> |
230 Ordinal<Traits>::Ordinal(const std::string& bytes) | 230 Ordinal<Traits>::Ordinal(const std::string& bytes) |
231 : bytes_(bytes), | 231 : bytes_(bytes), |
232 is_valid_(IsValidOrdinalBytes(bytes_)) {} | 232 is_valid_(IsValidOrdinalBytes(bytes_)) {} |
233 | 233 |
234 template <typename Traits> | 234 template <typename Traits> |
235 Ordinal<Traits>::Ordinal() : is_valid_(false) {} | 235 Ordinal<Traits>::Ordinal() : is_valid_(false) {} |
236 | 236 |
237 //template <typename Traits> | |
akalin
2012/10/05 22:40:27
remove this
vishwath
2012/10/08 20:17:49
Done.
| |
238 //Ordinal<Traits>::Ordinal() | |
239 // : bytes_(Traits::kMinLength, kZeroDigit), | |
240 // is_valid_(true){ | |
241 // bytes_[0] = kMidDigit; | |
242 //} | |
243 | |
237 template <typename Traits> | 244 template <typename Traits> |
238 Ordinal<Traits> Ordinal<Traits>::CreateInitialOrdinal() { | 245 Ordinal<Traits> Ordinal<Traits>::CreateInitialOrdinal() { |
239 std::string bytes(Traits::kMinLength, kZeroDigit); | 246 std::string bytes(Traits::kMinLength, kZeroDigit); |
240 bytes[0] = kMidDigit; | 247 bytes[0] = kMidDigit; |
241 return Ordinal(bytes); | 248 return Ordinal(bytes); |
242 } | 249 } |
243 | 250 |
244 template <typename Traits> | 251 template <typename Traits> |
245 bool Ordinal<Traits>::IsValid() const { | 252 bool Ordinal<Traits>::IsValid() const { |
246 DCHECK_EQ(IsValidOrdinalBytes(bytes_), is_valid_); | 253 DCHECK_EQ(IsValidOrdinalBytes(bytes_), is_valid_); |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
477 DCHECK_LT(midpoint, end_bytes); | 484 DCHECK_LT(midpoint, end_bytes); |
478 | 485 |
479 Ordinal<Traits> midpoint_ordinal(midpoint); | 486 Ordinal<Traits> midpoint_ordinal(midpoint); |
480 DCHECK(midpoint_ordinal.IsValid()); | 487 DCHECK(midpoint_ordinal.IsValid()); |
481 return midpoint_ordinal; | 488 return midpoint_ordinal; |
482 } | 489 } |
483 | 490 |
484 } // namespace syncer | 491 } // namespace syncer |
485 | 492 |
486 #endif // SYNC_INTERNAL_API_PUBLIC_BASE_ORDINAL_H_ | 493 #endif // SYNC_INTERNAL_API_PUBLIC_BASE_ORDINAL_H_ |
OLD | NEW |