diff options
Diffstat (limited to 'logd/src/logd/legacy_forwarder.h')
-rw-r--r-- | logd/src/logd/legacy_forwarder.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/logd/src/logd/legacy_forwarder.h b/logd/src/logd/legacy_forwarder.h index db3bf84fd4f..bbd7ed840ae 100644 --- a/logd/src/logd/legacy_forwarder.h +++ b/logd/src/logd/legacy_forwarder.h @@ -2,6 +2,8 @@ #pragma once #include "forwarder.h" +#include <vespa/vespalib/stllike/string.h> +#include <memory> namespace logdemon { @@ -12,8 +14,8 @@ struct Metrics; */ class LegacyForwarder : public Forwarder { private: - int _logserverfd; Metrics &_metrics; + int _logserver_fd; ForwardMap _forwardMap; int _badLines; const char *copystr(const char *b, const char *e) { @@ -23,16 +25,23 @@ private: ret[len] = '\0'; return ret; } + void connect_to_logserver(const vespalib::string& logserver_host, int logserver_port); + void connect_to_dev_null(); bool parseLine(std::string_view line); -public: + void forwardText(const char *text, int len); LegacyForwarder(Metrics &metrics); + +public: + using UP = std::unique_ptr<LegacyForwarder>; + static LegacyForwarder::UP to_logserver(Metrics& metrics, const vespalib::string& logserver_host, int logserver_port); + static LegacyForwarder::UP to_dev_null(Metrics& metrics); + static LegacyForwarder::UP to_open_file(Metrics& metrics, int file_desc); ~LegacyForwarder(); - void forwardText(const char *text, int len); + void setForwardMap(const ForwardMap& forwardMap) { _forwardMap = forwardMap; } + + // Implements Forwarder void forwardLine(std::string_view line) override; void flush() override {} - void setForwardMap(const ForwardMap & forwardMap) { _forwardMap = forwardMap; } - void setLogserverFD(int fd) { _logserverfd = fd; } - int getLogserverFD() { return _logserverfd; } void sendMode() override; int badLines() const override { return _badLines; } void resetBadLines() override { _badLines = 0; } |