Index: sync/api/attachments/attachment_id.cc |
diff --git a/sync/api/attachments/attachment_id.cc b/sync/api/attachments/attachment_id.cc |
index 181f3806bedf9bdf1557f7c238305cd58d11cdc6..6f3e0a24abf2b99dcf634775286ea81168b94a2c 100644 |
--- a/sync/api/attachments/attachment_id.cc |
+++ b/sync/api/attachments/attachment_id.cc |
@@ -6,13 +6,41 @@ |
#include "base/logging.h" |
#include "base/rand_util.h" |
+#include "sync/protocol/sync.pb.h" |
namespace syncer { |
+void AttachmentId::ImmutableAttachmentIdProtoTraits::InitializeWrapper( |
+ Wrapper* wrapper) { |
+ *wrapper = new sync_pb::AttachmentIdProto(); |
+} |
+ |
+void AttachmentId::ImmutableAttachmentIdProtoTraits::DestroyWrapper( |
+ Wrapper* wrapper) { |
+ delete *wrapper; |
+} |
+ |
+const sync_pb::AttachmentIdProto& |
+AttachmentId::ImmutableAttachmentIdProtoTraits::Unwrap(const Wrapper& wrapper) { |
+ return *wrapper; |
+} |
+ |
+sync_pb::AttachmentIdProto* |
+AttachmentId::ImmutableAttachmentIdProtoTraits::UnwrapMutable( |
+ Wrapper* wrapper) { |
+ return *wrapper; |
+} |
+ |
+void AttachmentId::ImmutableAttachmentIdProtoTraits::Swap( |
+ sync_pb::AttachmentIdProto* t1, |
+ sync_pb::AttachmentIdProto* t2) { |
+ t1->Swap(t2); |
+} |
+ |
AttachmentId::~AttachmentId() {} |
bool AttachmentId::operator==(const AttachmentId& other) const { |
- return unique_id_ == other.unique_id_; |
+ return proto_.Get().unique_id() == other.proto_.Get().unique_id(); |
} |
bool AttachmentId::operator!=(const AttachmentId& other) const { |
@@ -20,19 +48,30 @@ bool AttachmentId::operator!=(const AttachmentId& other) const { |
} |
bool AttachmentId::operator<(const AttachmentId& other) const { |
- return unique_id_ < other.unique_id_; |
+ return proto_.Get().unique_id() < other.proto_.Get().unique_id(); |
} |
// Static. |
AttachmentId AttachmentId::Create() { |
// Only requirement here is that this id must be globally unique. |
// TODO(maniscalco): Consider making this base64 encoded. |
- return AttachmentId(base::RandBytesAsString(16)); |
+ sync_pb::AttachmentIdProto proto; |
+ proto.set_unique_id(base::RandBytesAsString(16)); |
+ return AttachmentId(&proto); |
} |
-AttachmentId::AttachmentId(const std::string& unique_id) |
- : unique_id_(unique_id) { |
- DCHECK(!unique_id_.empty()); |
+// Static. |
+AttachmentId AttachmentId::CreateFromProto( |
+ const sync_pb::AttachmentIdProto& proto) { |
+ sync_pb::AttachmentIdProto copy_of_proto(proto); |
+ return AttachmentId(©_of_proto); |
} |
+const sync_pb::AttachmentIdProto& AttachmentId::GetProto() const { |
+ return proto_.Get(); |
+} |
+ |
+AttachmentId::AttachmentId(sync_pb::AttachmentIdProto* proto) |
+ : proto_(proto) {} |
+ |
} // namespace syncer |