diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-03-29 15:49:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-29 15:49:54 +0100 |
commit | 7ef26aab4837ec6ab76370a17b7fa236591cbc5d (patch) | |
tree | 9b92a9e23d7a0a42f3da34b560b42a45cf1596cd /logd/src/logd/legacy_forwarder.h | |
parent | 9e592933ccfdf4833e6ff2413e05074e033b68ca (diff) | |
parent | b794e044098a4ba88335bc7e0686603ed50a41f0 (diff) |
Merge pull request #8961 from vespa-engine/geirst/logd-prepare-for-rpc-forwarder-integration
Prepare ConfigSubscriber to support instantiation of either legacy or…
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; } |