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. 4 5#ifndef COMPONENTS_TRANSLATE_CONTENT_COMMON_CLD_DATA_SOURCE_H_ 6#define COMPONENTS_TRANSLATE_CONTENT_COMMON_CLD_DATA_SOURCE_H_ 7 8#include <string> 9 10namespace translate { 11 12// Provides high-level functionality related to a CLD Data Source. 13class CldDataSource { 14 15 public: 16 17 // Returns the symbolic name of the data source. In the Chromium 18 // open-source tree, the following data sources exist: 19 // static uses the static_[browser|renderer]_cld_data_provider 20 // implementations. 21 // standalone uses the data_file_[browser|renderer]_cld_data_provider 22 // implementations. 23 // component also uses the data_file_[browser|renderer]_cld_data_provider 24 // implementations. 25 // 26 // Other implementations based upon Chromium may provide CLD differently and 27 // may have other names. This method is primarily provided for those 28 // non-Chromium implementations; Chromium implementations should use the 29 // boolean methods in this class instead: 30 // ShouldRegisterForComponentUpdates() 31 // ShouldUseStandaloneDataFile() 32 static std::string GetName(); 33 34 // Returns true if the data source needs to receive updates from the 35 // Component Updater. 36 // This is only true if the data source name is "component", but makes caller 37 // logic more generic. 38 static bool ShouldRegisterForComponentUpdates(); 39 40 // Returns true if the data source needs to have the path to the CLD 41 // data file configured immediately because it is bundled with Chromium. 42 // This is only true if the data source name is "standalone", but makes 43 // caller logic more generic. 44 static bool ShouldUseStandaloneDataFile(); 45}; 46 47} // namespace translate 48#endif // COMPONENTS_TRANSLATE_CONTENT_COMMON_CLD_DATA_SOURCE_H_ 49