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.
5 #include "sync/syncable/syncable_id.h"
9 #include "base/logging.h"
10 #include "base/values.h"
18 ostream
& operator<<(ostream
& out
, const Id
& id
) {
23 base::StringValue
* Id::ToValue() const {
24 return new base::StringValue(s_
);
27 string
Id::GetServerId() const {
28 // Currently root is the string "0". We need to decide on a true value.
29 // "" would be convenient here, as the IsRoot call would not be needed.
36 Id
Id::CreateFromServerId(const string
& server_id
) {
38 if (!server_id
.empty()) {
42 id
.s_
= string("s") + server_id
;
47 Id
Id::CreateFromClientString(const string
& local_id
) {
49 if (!local_id
.empty()) {
53 id
.s_
= string("c") + local_id
;
64 Id
Id::GetLexicographicSuccessor() const {
65 // The successor of a string is given by appending the least
66 // character in the alphabet.
73 Id
Id::GetLeastIdForLexicographicComparison() {
79 } // namespace syncable