text: // 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_
  