Chromium Code Reviews| Index: components/dom_distiller/core/article_attachments_data.h |
| diff --git a/components/dom_distiller/core/article_attachments_data.h b/components/dom_distiller/core/article_attachments_data.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c25df29bf9a66d725388172dc5d36a50f4e3fd66 |
| --- /dev/null |
| +++ b/components/dom_distiller/core/article_attachments_data.h |
| @@ -0,0 +1,53 @@ |
| +// Copyright 2014 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. |
| + |
| +#ifndef COMPONENTS_DOM_DISTILLER_CORE_ARTICLE_ATTACHMENTS_DATA_H_ |
| +#define COMPONENTS_DOM_DISTILLER_CORE_ARTICLE_ATTACHMENTS_DATA_H_ |
| + |
| +#include <string> |
| + |
| +#include "base/memory/scoped_ptr.h" |
| +#include "components/dom_distiller/core/proto/distilled_article.pb.h" |
| +#include "sync/api/attachments/attachment.h" |
| +#include "sync/protocol/article_specifics.pb.h" |
| + |
| +namespace dom_distiller { |
| + |
| +// When stored, article attachments are split into two pieces, the actual data |
|
maniscalco
2014/11/17 19:12:48
Helpful comment!
|
| +// is stored by a set of ids in some attachment storage. The mapping of what |
| +// each id corresponds to is stored in the ArticleEntry's |
| +// sync_pb::ArticleAttachments. This class handles splitting into those two |
| +// pieces (::CreateSyncAttachments) and reconstructing the data from the two |
| +// pieces (::GetFromAttachmentMap and ::GetAttachmentIds). Outside of this |
| +// class, the structure of sync_pb::ArticleAttachments (the id mapping) should |
| +// be rather opaque. |
| +class ArticleAttachmentsData { |
| + public: |
| + static scoped_ptr<ArticleAttachmentsData> GetFromAttachmentMap( |
| + const sync_pb::ArticleAttachments& attachments_key, |
| + const syncer::AttachmentMap& attachment_map); |
| + |
| + // Creates sync attachments and the sync_pb::ArticleAttachments id map. |
| + void CreateSyncAttachments( |
| + syncer::AttachmentList* attachment_list, |
| + sync_pb::ArticleAttachments* attachments_key) const; |
| + |
| + const DistilledArticleProto& distilled_article() const { |
| + return distilled_article_; |
| + } |
| + void set_distilled_article(const DistilledArticleProto& article) { |
| + distilled_article_ = article; |
| + } |
| + |
| + std::string ToString() const; |
| + private: |
| + DistilledArticleProto distilled_article_; |
| +}; |
| + |
| +syncer::AttachmentIdList GetAttachmentIds( |
| + const sync_pb::ArticleAttachments& attachments); |
| + |
| +} // namespace dom_distiller |
| + |
| +#endif // COMPONENTS_DOM_DISTILLER_CORE_ARTICLE_ATTACHMENTS_DATA_H_ |