diff options
Diffstat (limited to 'chrome/browser/extensions/api/log_private/syslog_parser.h')
-rw-r--r-- | chrome/browser/extensions/api/log_private/syslog_parser.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/log_private/syslog_parser.h b/chrome/browser/extensions/api/log_private/syslog_parser.h new file mode 100644 index 0000000..b746334 --- /dev/null +++ b/chrome/browser/extensions/api/log_private/syslog_parser.h @@ -0,0 +1,46 @@ +// 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_SYSLOG_PARSER_H_ +#define CHROME_BROWSER_EXTENSIONS_API_LOG_PRIVATE_SYSLOG_PARSER_H_ + +#include <string> +#include <vector> + +#include "base/memory/linked_ptr.h" +#include "chrome/browser/extensions/api/log_private/log_parser.h" +#include "chrome/common/extensions/api/log_private.h" + +namespace extensions { + +// A parser that parses syslog into LogEntry objects. +class SyslogParser : public LogParser { + public: + SyslogParser(); + virtual ~SyslogParser(); + + protected: + // Parses one line log text into a LogEntry object. + virtual Error ParseEntry( + const std::string& input, + std::vector<linked_ptr<api::log_private::LogEntry> >* output, + FilterHandler* filter_handler) const + OVERRIDE; + + private: + // Parses time token and get time in milliseconds. + Error ParseTime(const std::string& input, double* output) const; + // Parses process token and get process name and ID. + Error ParseProcess(const std::string& input, + api::log_private::LogEntry* entry) const; + // Parses level token and get log level. + void ParseLevel(const std::string& input, + api::log_private::LogEntry* entry) const; + + DISALLOW_COPY_AND_ASSIGN(SyslogParser); +}; + +} // namespace extensions + +#endif // CHROME_BROWSER_EXTENSIONS_API_LOG_PRIVATE_SYSLOG_PARSER_H_ |