aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/acceptor_status.cpp
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/cpp/messagebus/acceptor_status.cpp
downloadydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/messagebus/acceptor_status.cpp')
-rw-r--r--library/cpp/messagebus/acceptor_status.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/library/cpp/messagebus/acceptor_status.cpp b/library/cpp/messagebus/acceptor_status.cpp
new file mode 100644
index 0000000000..5006ff68ae
--- /dev/null
+++ b/library/cpp/messagebus/acceptor_status.cpp
@@ -0,0 +1,68 @@
+#include "acceptor_status.h"
+
+#include "key_value_printer.h"
+
+#include <util/stream/format.h>
+#include <util/stream/output.h>
+
+using namespace NBus;
+using namespace NBus::NPrivate;
+
+TAcceptorStatus::TAcceptorStatus()
+ : Summary(false)
+ , AcceptorId(0)
+ , Fd(INVALID_SOCKET)
+{
+ ResetIncremental();
+}
+
+void TAcceptorStatus::ResetIncremental() {
+ AcceptSuccessCount = 0;
+ AcceptErrorCount = 0;
+ LastAcceptErrorErrno = 0;
+ LastAcceptErrorInstant = TInstant();
+ LastAcceptSuccessInstant = TInstant();
+}
+
+TAcceptorStatus& TAcceptorStatus::operator+=(const TAcceptorStatus& that) {
+ Y_ASSERT(Summary);
+ Y_ASSERT(AcceptorId == 0);
+
+ AcceptSuccessCount += that.AcceptSuccessCount;
+ LastAcceptSuccessInstant = Max(LastAcceptSuccessInstant, that.LastAcceptSuccessInstant);
+
+ AcceptErrorCount += that.AcceptErrorCount;
+ if (that.LastAcceptErrorInstant > LastAcceptErrorInstant) {
+ LastAcceptErrorInstant = that.LastAcceptErrorInstant;
+ LastAcceptErrorErrno = that.LastAcceptErrorErrno;
+ }
+
+ return *this;
+}
+
+TString TAcceptorStatus::PrintToString() const {
+ TStringStream ss;
+
+ if (!Summary) {
+ ss << "acceptor (" << AcceptorId << "), fd=" << Fd << ", addr=" << ListenAddr << Endl;
+ }
+
+ TKeyValuePrinter p;
+
+ p.AddRow("accept error count", LeftPad(AcceptErrorCount, 4));
+
+ if (AcceptErrorCount > 0) {
+ p.AddRow("last accept error",
+ TString() + LastSystemErrorText(LastAcceptErrorErrno) + " at " + LastAcceptErrorInstant.ToString());
+ }
+
+ p.AddRow("accept success count", LeftPad(AcceptSuccessCount, 4));
+ if (AcceptSuccessCount > 0) {
+ p.AddRow("last accept success",
+ TString() + "at " + LastAcceptSuccessInstant.ToString());
+ }
+
+ ss << p.PrintToString();
+
+ return ss.Str();
+}