diff options
Diffstat (limited to 'chrome/browser/extensions/api/log_private/log_parser.h')
-rw-r--r-- | chrome/browser/extensions/api/log_private/log_parser.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/log_private/log_parser.h b/chrome/browser/extensions/api/log_private/log_parser.h new file mode 100644 index 0000000..c73e54f --- /dev/null +++ b/chrome/browser/extensions/api/log_private/log_parser.h @@ -0,0 +1,49 @@ +// Copyright 2013 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_EXTENSIONS_API_LOG_PRIVATE_LOG_PARSER_H_ +#define CHROME_BROWSER_EXTENSIONS_API_LOG_PRIVATE_LOG_PARSER_H_ + +#include <string> +#include <vector> + +#include "base/memory/linked_ptr.h" +#include "chrome/browser/extensions/api/log_private/filter_handler.h" +#include "chrome/common/extensions/api/log_private.h" + +namespace extensions { + +// This is a abstract class of parsers for different logs. +// All the specific parsers inherit from this class. +class LogParser { + public: + enum Error { + SUCCESS = 0, + PARSE_ERROR = -1, + SERIALIZE_ERROR = -2, + TOKENIZE_ERROR = -3 + }; + + virtual ~LogParser(); + // Parses log text into multiple LogEntry objects. + void Parse( + const std::string& input, + std::vector<linked_ptr<api::log_private::LogEntry> >* output, + FilterHandler* filter_handler) const; + + protected: + explicit LogParser(); + // Parses a single line of log text into one LogEntry object. + virtual Error ParseEntry( + const std::string& input, + std::vector<linked_ptr<api::log_private::LogEntry> >* output, + FilterHandler* filter_handler) const = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(LogParser); +}; + +} // namespace extensions + +#endif // CHROME_BROWSER_EXTENSIONS_API_LOG_PRIVATE_LOG_PARSER_H_ |