| Index: chrome/browser/sync/syncable/syncable_id.cc
|
| ===================================================================
|
| --- chrome/browser/sync/syncable/syncable_id.cc (revision 0)
|
| +++ chrome/browser/sync/syncable/syncable_id.cc (revision 0)
|
| @@ -0,0 +1,72 @@
|
| +// Copyright (c) 2009 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.
|
| +
|
| +#include "chrome/browser/sync/syncable/syncable_id.h"
|
| +
|
| +#include <iosfwd>
|
| +
|
| +#include "base/string_util.h"
|
| +#include "chrome/browser/sync/util/query_helpers.h"
|
| +
|
| +using std::ostream;
|
| +using std::string;
|
| +
|
| +namespace syncable {
|
| +const Id kNullId; // Currently == root.
|
| +} // namespace syncable
|
| +
|
| +sqlite3_stmt* BindArg(sqlite3_stmt* statement, const syncable::Id& id,
|
| + int index) {
|
| + return BindArg(statement, id.s_.c_str(), index);
|
| +}
|
| +
|
| +void GetColumn(sqlite3_stmt* statement, int index, syncable::Id* id) {
|
| + GetColumn(statement, index, &id->s_);
|
| +}
|
| +
|
| +ostream& operator << (ostream& out, const syncable::Id& id) {
|
| + out << id.s_;
|
| + return out;
|
| +}
|
| +
|
| +using browser_sync::FastDump;
|
| +FastDump& operator << (FastDump& dump, const syncable::Id& id) {
|
| + dump.out_->sputn(id.s_.data(), id.s_.size());
|
| + return dump;
|
| +}
|
| +
|
| +namespace syncable {
|
| +
|
| +string Id::AsQueryParam() const {
|
| + if ('s' == s_[0])
|
| + return s_.c_str() + 1;
|
| + return "";
|
| +}
|
| +
|
| +string Id::GetServerId() const {
|
| + // Currently root is the string "0". We need to decide on a true value.
|
| + // "" would be convenient here, as the IsRoot call would not be needed.
|
| + if (IsRoot())
|
| + return "0";
|
| + return s_.substr(1);
|
| +}
|
| +
|
| +Id Id::CreateFromServerId(const string& server_id) {
|
| + Id id;
|
| + if (server_id == "0")
|
| + id.s_ = "r";
|
| + else
|
| + id.s_ = string("s") + server_id;
|
| + return id;
|
| +}
|
| +
|
| +Id Id::CreateFromClientString(const string& local_id) {
|
| + Id id;
|
| + if (local_id == "0")
|
| + id.s_ = "r";
|
| + else
|
| + id.s_ = string("c") + local_id;
|
| + return id;
|
| +}
|
| +} // namespace syncable
|
|
|
| Property changes on: chrome\browser\sync\syncable\syncable_id.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|