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

Unified Diff: chrome/browser/sync/syncable/syncable_id.cc

Issue 194065: Initial commit of sync engine code to browser/sync.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Fixes to gtest include path, reverted syncapi. Created 11 years, 3 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698