1 // Copyright 2014 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/api/attachments/attachment.h"
7 #include "base/logging.h"
8 #include "sync/internal_api/public/attachments/attachment_util.h"
12 Attachment::~Attachment() {}
15 Attachment
Attachment::Create(
16 const scoped_refptr
<base::RefCountedMemory
>& data
) {
17 uint32_t crc32c
= ComputeCrc32c(data
);
18 return CreateFromParts(AttachmentId::Create(data
->size(), crc32c
), data
);
22 Attachment
Attachment::CreateFromParts(
23 const AttachmentId
& id
,
24 const scoped_refptr
<base::RefCountedMemory
>& data
) {
25 return Attachment(id
, data
);
28 const AttachmentId
& Attachment::GetId() const { return id_
; }
30 const scoped_refptr
<base::RefCountedMemory
>& Attachment::GetData() const {
34 uint32_t Attachment::GetCrc32c() const {
35 return id_
.GetCrc32c();
38 Attachment::Attachment(const AttachmentId
& id
,
39 const scoped_refptr
<base::RefCountedMemory
>& data
)
40 : id_(id
), data_(data
) {
41 DCHECK_EQ(id
.GetSize(), data
->size());