| // Copyright (c) 2010 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 CHROME_BROWSER_PARSERS_METADATA_PARSER_FACTORY_H_ |
| #define CHROME_BROWSER_PARSERS_METADATA_PARSER_FACTORY_H_ |
| #pragma once |
| |
| #include "chrome/browser/parsers/metadata_parser.h" |
| |
| class FilePath; |
| |
| // Used to check to see if a parser can parse a particular file, and allows |
| // for creation of a parser on a particular file. |
| class MetadataParserFactory { |
| public: |
| MetadataParserFactory() {} |
| virtual ~MetadataParserFactory() {} |
| |
| // Used to check to see if the parser can parse the given file. This |
| // should not do any additional reading of the file. |
| virtual bool CanParse(const FilePath& path, |
| char* bytes, |
| int bytes_size) = 0; |
| |
| // Creates the parser on the given file. Creating the parser does not |
| // do any parsing on the file. Parse has to be called on the parser. |
| virtual MetadataParser* CreateParser(const FilePath& path) = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_PARSERS_METADATA_PARSER_FACTORY_H_ |