| Index: components/dom_distiller/core/dom_distiller_service.h
|
| diff --git a/components/dom_distiller/core/dom_distiller_service.h b/components/dom_distiller/core/dom_distiller_service.h
|
| index 630b184e5eb5e2fda8e5054fbfb5b649c4ad335b..8f4ea70f7bed5f4a69d685deb205e92a9977e02e 100644
|
| --- a/components/dom_distiller/core/dom_distiller_service.h
|
| +++ b/components/dom_distiller/core/dom_distiller_service.h
|
| @@ -30,42 +30,73 @@ class TaskTracker;
|
| class ViewerHandle;
|
| class ViewRequestDelegate;
|
|
|
| -// Provide a view of the article list and ways of interacting with it.
|
| -class DomDistillerService {
|
| +// Service for interacting with the Dom Distiller.
|
| +// Construction, destruction, and usage of this service must happen on the same
|
| +// thread. Callbacks will be called on that same thread.
|
| +class DomDistillerServiceInterface {
|
| public:
|
| typedef base::Callback<void(bool)> ArticleAvailableCallback;
|
| + virtual ~DomDistillerServiceInterface() {}
|
|
|
| - DomDistillerService(scoped_ptr<DomDistillerStoreInterface> store,
|
| - scoped_ptr<DistillerFactory> distiller_factory);
|
| - ~DomDistillerService();
|
| -
|
| - syncer::SyncableService* GetSyncableService() const;
|
| + virtual syncer::SyncableService* GetSyncableService() const = 0;
|
|
|
| // Distill the article at |url| and add the resulting entry to the DOM
|
| - // distiller list. |article_cb| is invoked with true if article is
|
| - // available offline.
|
| - const std::string AddToList(const GURL& url,
|
| - const ArticleAvailableCallback& article_cb);
|
| + // distiller list. |article_cb| is always invoked, and the bool argument to it
|
| + // represents whether the article is available offline.
|
| + virtual const std::string AddToList(
|
| + const GURL& url,
|
| + const ArticleAvailableCallback& article_cb) = 0;
|
|
|
| // Gets the full list of entries.
|
| - std::vector<ArticleEntry> GetEntries() const;
|
| + virtual std::vector<ArticleEntry> GetEntries() const = 0;
|
|
|
| // Removes the specified entry from the dom distiller store.
|
| - scoped_ptr<ArticleEntry> RemoveEntry(const std::string& entry_id);
|
| + virtual scoped_ptr<ArticleEntry> RemoveEntry(const std::string& entry_id) = 0;
|
|
|
| // Request to view an article by entry id. Returns a null pointer if no entry
|
| // with |entry_id| exists. The ViewerHandle should be destroyed before the
|
| // ViewRequestDelegate. The request will be cancelled when the handle is
|
| - // destroyed (or when this service is destroyed).
|
| - scoped_ptr<ViewerHandle> ViewEntry(ViewRequestDelegate* delegate,
|
| - const std::string& entry_id);
|
| + // destroyed (or when this service is destroyed), which also ensures that
|
| + // the |delegate| is not called after that.
|
| + virtual scoped_ptr<ViewerHandle> ViewEntry(ViewRequestDelegate* delegate,
|
| + const std::string& entry_id) = 0;
|
|
|
| // Request to view an article by url.
|
| - scoped_ptr<ViewerHandle> ViewUrl(ViewRequestDelegate* delegate,
|
| - const GURL& url);
|
| + virtual scoped_ptr<ViewerHandle> ViewUrl(ViewRequestDelegate* delegate,
|
| + const GURL& url) = 0;
|
|
|
| - void AddObserver(DomDistillerObserver* observer);
|
| - void RemoveObserver(DomDistillerObserver* observer);
|
| + virtual void AddObserver(DomDistillerObserver* observer) = 0;
|
| + virtual void RemoveObserver(DomDistillerObserver* observer) = 0;
|
| +
|
| + protected:
|
| + DomDistillerServiceInterface() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DomDistillerServiceInterface);
|
| +};
|
| +
|
| +// Provide a view of the article list and ways of interacting with it.
|
| +class DomDistillerService : public DomDistillerServiceInterface {
|
| + public:
|
| + DomDistillerService(scoped_ptr<DomDistillerStoreInterface> store,
|
| + scoped_ptr<DistillerFactory> distiller_factory);
|
| + virtual ~DomDistillerService();
|
| +
|
| + // DomDistillerServiceInterface implementation.
|
| + virtual syncer::SyncableService* GetSyncableService() const OVERRIDE;
|
| + virtual const std::string AddToList(
|
| + const GURL& url,
|
| + const ArticleAvailableCallback& article_cb) OVERRIDE;
|
| + virtual std::vector<ArticleEntry> GetEntries() const OVERRIDE;
|
| + virtual scoped_ptr<ArticleEntry> RemoveEntry(const std::string& entry_id)
|
| + OVERRIDE;
|
| + virtual scoped_ptr<ViewerHandle> ViewEntry(ViewRequestDelegate* delegate,
|
| + const std::string& entry_id)
|
| + OVERRIDE;
|
| + virtual scoped_ptr<ViewerHandle> ViewUrl(ViewRequestDelegate* delegate,
|
| + const GURL& url) OVERRIDE;
|
| + virtual void AddObserver(DomDistillerObserver* observer) OVERRIDE;
|
| + virtual void RemoveObserver(DomDistillerObserver* observer) OVERRIDE;
|
|
|
| private:
|
| void CancelTask(TaskTracker* task);
|
|
|