aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/grpc/server/event_callback.h
diff options
context:
space:
mode:
authorDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:50:16 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:50:16 +0300
commit17e20fa084178ddcb16255f974dbde74fb93608b (patch)
tree39605336c0b4d33928df69a256102c515fdf6ff5 /library/cpp/grpc/server/event_callback.h
parent97df5ca7413550bf233fc6c7210e292fca0a51af (diff)
downloadydb-17e20fa084178ddcb16255f974dbde74fb93608b.tar.gz
Restoring authorship annotation for Daniil Cherednik <dcherednik@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/grpc/server/event_callback.h')
-rw-r--r--library/cpp/grpc/server/event_callback.h144
1 files changed, 72 insertions, 72 deletions
diff --git a/library/cpp/grpc/server/event_callback.h b/library/cpp/grpc/server/event_callback.h
index d0b700b3c9..c0e16ee504 100644
--- a/library/cpp/grpc/server/event_callback.h
+++ b/library/cpp/grpc/server/event_callback.h
@@ -1,80 +1,80 @@
-#pragma once
-
-#include "grpc_server.h"
-
+#pragma once
+
+#include "grpc_server.h"
+
namespace NGrpc {
-
-enum class EQueueEventStatus {
- OK,
- ERROR
-};
-
-template<class TCallback>
+
+enum class EQueueEventStatus {
+ OK,
+ ERROR
+};
+
+template<class TCallback>
class TQueueEventCallback: public IQueueEvent {
-public:
- TQueueEventCallback(const TCallback& callback)
- : Callback(callback)
- {}
-
- TQueueEventCallback(TCallback&& callback)
- : Callback(std::move(callback))
- {}
-
- bool Execute(bool ok) override {
- Callback(ok ? EQueueEventStatus::OK : EQueueEventStatus::ERROR);
- return false;
- }
-
- void DestroyRequest() override {
- delete this;
- }
-
-private:
- TCallback Callback;
-};
-
+public:
+ TQueueEventCallback(const TCallback& callback)
+ : Callback(callback)
+ {}
+
+ TQueueEventCallback(TCallback&& callback)
+ : Callback(std::move(callback))
+ {}
+
+ bool Execute(bool ok) override {
+ Callback(ok ? EQueueEventStatus::OK : EQueueEventStatus::ERROR);
+ return false;
+ }
+
+ void DestroyRequest() override {
+ delete this;
+ }
+
+private:
+ TCallback Callback;
+};
+
// Implementation of IQueueEvent that reduces allocations
-template<class TSelf>
+template<class TSelf>
class TQueueFixedEvent: private IQueueEvent {
- using TCallback = void (TSelf::*)(EQueueEventStatus);
-
-public:
- TQueueFixedEvent(TSelf* self, TCallback callback)
- : Self(self)
- , Callback(callback)
- { }
-
+ using TCallback = void (TSelf::*)(EQueueEventStatus);
+
+public:
+ TQueueFixedEvent(TSelf* self, TCallback callback)
+ : Self(self)
+ , Callback(callback)
+ { }
+
IQueueEvent* Prepare() {
- Self->Ref();
- return this;
- }
-
-private:
- bool Execute(bool ok) override {
- ((*Self).*Callback)(ok ? EQueueEventStatus::OK : EQueueEventStatus::ERROR);
- return false;
- }
-
- void DestroyRequest() override {
- Self->UnRef();
- }
-
-private:
- TSelf* const Self;
- TCallback const Callback;
-};
-
-template<class TCallback>
+ Self->Ref();
+ return this;
+ }
+
+private:
+ bool Execute(bool ok) override {
+ ((*Self).*Callback)(ok ? EQueueEventStatus::OK : EQueueEventStatus::ERROR);
+ return false;
+ }
+
+ void DestroyRequest() override {
+ Self->UnRef();
+ }
+
+private:
+ TSelf* const Self;
+ TCallback const Callback;
+};
+
+template<class TCallback>
inline IQueueEvent* MakeQueueEventCallback(TCallback&& callback) {
- return new TQueueEventCallback<TCallback>(std::forward<TCallback>(callback));
-}
-
-template<class T>
+ return new TQueueEventCallback<TCallback>(std::forward<TCallback>(callback));
+}
+
+template<class T>
inline IQueueEvent* MakeQueueEventCallback(T* self, void (T::*method)(EQueueEventStatus)) {
- using TPtr = TIntrusivePtr<T>;
- return MakeQueueEventCallback([self = TPtr(self), method] (EQueueEventStatus status) {
- ((*self).*method)(status);
- });
-}
-
+ using TPtr = TIntrusivePtr<T>;
+ return MakeQueueEventCallback([self = TPtr(self), method] (EQueueEventStatus status) {
+ ((*self).*method)(status);
+ });
+}
+
} // namespace NGrpc