diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-03-21 14:24:11 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-03-21 14:24:11 +0000 |
commit | 5b94546d42899040caf285948b6e1c305d4fb2ed (patch) | |
tree | 634da86f1f15db9a9f23b1b361d12695323db29b /logd | |
parent | 22af1049211b69490223aeec835d2aa6f052d564 (diff) |
Create interface for a Forwarder as seen from the log file Watcher.
Diffstat (limited to 'logd')
-rw-r--r-- | logd/src/logd/forwarder.h | 19 | ||||
-rw-r--r-- | logd/src/logd/legacy_forwarder.h | 12 | ||||
-rw-r--r-- | logd/src/logd/watcher.cpp | 5 | ||||
-rw-r--r-- | logd/src/logd/watcher.h | 6 |
4 files changed, 31 insertions, 11 deletions
diff --git a/logd/src/logd/forwarder.h b/logd/src/logd/forwarder.h new file mode 100644 index 00000000000..a0a1c5f1ea5 --- /dev/null +++ b/logd/src/logd/forwarder.h @@ -0,0 +1,19 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +namespace logdemon { + +/** + * Interface used to forward log lines to something. + */ +class Forwarder { +public: + virtual ~Forwarder() {} + virtual void sendMode() = 0; + virtual void forwardLine(const char *line, const char *eol) = 0; + virtual int badLines() const = 0; + virtual void resetBadLines() = 0; +}; + +} diff --git a/logd/src/logd/legacy_forwarder.h b/logd/src/logd/legacy_forwarder.h index 7852219d9f0..da8dbcc82ab 100644 --- a/logd/src/logd/legacy_forwarder.h +++ b/logd/src/logd/legacy_forwarder.h @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once +#include "forwarder.h" #include <vespa/log/log.h> #include <map> #include <unordered_set> @@ -25,8 +26,7 @@ public: /** * Class used to forward log lines to the logserver via a one-way text protocol. */ -class LegacyForwarder -{ +class LegacyForwarder : public Forwarder { private: int _logserverfd; Metrics &_metrics; @@ -45,13 +45,13 @@ public: LegacyForwarder(Metrics &metrics); ~LegacyForwarder(); void forwardText(const char *text, int len); - void forwardLine(const char *line, const char *eol); + void forwardLine(const char *line, const char *eol) override; void setForwardMap(const ForwardMap & forwardMap) { _forwardMap = forwardMap; } void setLogserverFD(int fd) { _logserverfd = fd; } int getLogserverFD() { return _logserverfd; } - void sendMode(); - int badLines() const { return _badLines; } - void resetBadLines() { _badLines = 0; } + void sendMode() override; + int badLines() const override { return _badLines; } + void resetBadLines() override { _badLines = 0; } }; } diff --git a/logd/src/logd/watcher.cpp b/logd/src/logd/watcher.cpp index 765e338fa72..a047c110f32 100644 --- a/logd/src/logd/watcher.cpp +++ b/logd/src/logd/watcher.cpp @@ -2,8 +2,9 @@ #include "config_subscriber.h" #include "exceptions.h" -#include "legacy_forwarder.h" +#include "forwarder.h" #include "watcher.h" +#include <vespa/log/log.h> #include <vespa/vespalib/util/sig_catch.h> #include <fcntl.h> #include <glob.h> @@ -59,7 +60,7 @@ constexpr size_t G_BUFSIZE = 1024*1024; } // namespace logdemon::<unnamed> -Watcher::Watcher(ConfigSubscriber &cfs, LegacyForwarder &fw) +Watcher::Watcher(ConfigSubscriber &cfs, Forwarder &fw) : _buffer(G_BUFSIZE), _confsubscriber(cfs), _forwarder(fw), diff --git a/logd/src/logd/watcher.h b/logd/src/logd/watcher.h index cd4d9947fd8..2629da040f7 100644 --- a/logd/src/logd/watcher.h +++ b/logd/src/logd/watcher.h @@ -5,7 +5,7 @@ namespace logdemon { -class LegacyForwarder; +class Forwarder; class ConfigSubscriber; /** @@ -16,14 +16,14 @@ class Watcher private: std::vector<char> _buffer; ConfigSubscriber & _confsubscriber; - LegacyForwarder & _forwarder; + Forwarder & _forwarder; int _wfd; char * getBuf() { return &_buffer[0]; } long getBufSize() const { return _buffer.size(); } public: Watcher(const Watcher& other) = delete; Watcher& operator=(const Watcher& other) = delete; - Watcher(ConfigSubscriber &cfs, LegacyForwarder &fw); + Watcher(ConfigSubscriber &cfs, Forwarder &fw); ~Watcher(); void watchfile(); |