Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: chrome/common/string_index.h

Issue 8236002: Create StringOrdinal to allow placement of strings in sorted lists (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Changing StringIndex to a class Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 CHROME_COMMON_STRING_INDEX_H_
6 #define CHROME_COMMON_STRING_INDEX_H_
7 #pragma once
8
9 #include <string>
10
11 #include "base/basictypes.h"
akalin 2011/10/14 10:16:29 what is this for? if this is for size_t, #include
12
13 class StringIndex {
akalin 2011/10/14 10:16:29 add comment explaining what the class is for
14 public:
15 // Create a valid StringIndex if the str matches [A-Z]*[B-Z],
akalin 2011/10/14 10:16:29 str -> string
16 // otherwise create an invalid StringIndex
akalin 2011/10/14 10:16:29 end with period
17 explicit StringIndex(const std::string& str);
18
19 // Create an invalid StringIndex
akalin 2011/10/14 10:16:29 end with period
20 StringIndex();
21
22 // Check to see if this matches [A-Z]*[B-Z]
akalin 2011/10/14 10:16:29 Returns true iff this was initialized with a strin
23 bool IsValid() const;
24
25 bool LessThan(const StringIndex& other) const;
akalin 2011/10/14 10:16:29 probably should include an Equals() mem-fn for con
akalin 2011/10/14 10:16:29 add comment
26
27 // LessThan(other) must hold. Returns a StringIndex x s.t. LessThan(x)
akalin 2011/10/14 10:16:29 clean up this comment (e.g., s.t. -> such that)
28 // holds, and x.LessThan(other) holds.
29 StringIndex CreateBetween(const StringIndex& other) const;
30
31 // Returns a StringIndex x s.t. x.LessThan(*this) holds.
akalin 2011/10/14 10:16:29 clean up
32 StringIndex CreateBefore() const;
33
34 // Returns a StringIndex x s.t. LessThan(x) holds.
akalin 2011/10/14 10:16:29 clean up
35 StringIndex CreateAfter() const;
36
37 std::string ToString() const;
akalin 2011/10/14 10:16:29 add a comment like copy constructor and default as
38
39 private:
40 // Return the digit value at position i, padding with kZeroDigit if required.
41 int GetPositionValue(size_t i) const;
42
43 // Create a StringIndex that is lexigraphically greater than start and
44 // lexigraphically less than end, ideally the StringIndex will be a
45 // middle value between the two StringIndexs.
46 static StringIndex CreateStringIndexBetween(const StringIndex& start,
akalin 2011/10/14 10:16:29 is there are a reason why these functions are expo
47 const StringIndex& end);
48
49 // Compute the midpoint string that is between start and end.
50 static std::string ComputeMidpoint(const StringIndex& start,
51 const StringIndex& end);
52
53 // Check if two strings have the same value.
54 static bool EqualValueIndexs(const std::string& rhs, const std::string& lhs);
55
56 // Add kMidDigitValue to the value at position index because
57 // the previous index values had an odd difference, so their correct
58 // middle value is x and a half, so the half is now inserted.
59 static void AddHalf(size_t position, std::string& value);
60
61 // Remove all trailing zeros from a value as they provide no value.
62 static std::string RemoveTrailingZeros(const std::string& value);
63
64 std::string string_index_;
akalin 2011/10/14 10:16:29 const
65 };
66 #endif // CHROME_COMMON_STRING_INDEX_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698