1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file.
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "sync/internal_api/public/base/attachment_id_proto.h"
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/guid.h"
8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/logging.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/strings/string_util.h"
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace syncer {
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)sync_pb::AttachmentIdProto CreateAttachmentIdProto() {
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  sync_pb::AttachmentIdProto proto;
156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  std::string guid = base::StringToLowerASCII(base::GenerateGUID());
16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  DCHECK(!guid.empty());
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Requirements are that this id must be a unique RFC4122 UUID, formatted in
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // lower case.
19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  proto.set_unique_id(guid);
20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  return proto;
21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochsync_pb::AttachmentMetadata CreateAttachmentMetadata(
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const google::protobuf::RepeatedPtrField<sync_pb::AttachmentIdProto>& ids) {
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  sync_pb::AttachmentMetadata result;
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  for (int i = 0; i < ids.size(); ++i) {
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    sync_pb::AttachmentMetadataRecord* record = result.add_record();
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    *record->mutable_id() = ids.Get(i);
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    record->set_is_on_server(true);
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return result;
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}  // namespace syncer
35