1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef COMPONENTS_TRANSLATE_CONTENT_RENDERER_DATA_FILE_RENDERER_CLD_DATA_PROVIDER_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define COMPONENTS_TRANSLATE_CONTENT_RENDERER_DATA_FILE_RENDERER_CLD_DATA_PROVIDER_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/files/file.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/translate/content/renderer/renderer_cld_data_provider.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ipc/ipc_platform_file.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace translate { 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DataFileRendererCldDataProvider : public RendererCldDataProvider { 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch explicit DataFileRendererCldDataProvider(content::RenderViewObserver*); 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~DataFileRendererCldDataProvider(); 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // RendererCldDataProvider implementations: 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool OnMessageReceived(const IPC::Message&) OVERRIDE; 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SendCldDataRequest() OVERRIDE; 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SetCldAvailableCallback(base::Callback<void(void)>) OVERRIDE; 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool IsCldDataAvailable() OVERRIDE; 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void OnCldDataAvailable(const IPC::PlatformFileForTransit ipc_file_handle, 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const uint64 data_offset, 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const uint64 data_length); 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void LoadCldData(base::File file, 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const uint64 data_offset, 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const uint64 data_length); 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::RenderViewObserver* render_view_observer_; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::Callback<void(void)> cld_available_callback_; 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(DataFileRendererCldDataProvider); 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace translate 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // COMPONENTS_TRANSLATE_CONTENT_RENDERER_DATA_FILE_RENDERER_CLD_DATA_PROVIDER_H_ 41