/*
- * Copyright 2017 Facebook, Inc.
+ * Copyright 2014-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#pragma once
#include <atomic>
virtual void onEventBaseDestruction(EventBase& evb) = 0;
virtual ~EventBaseLocalBaseBase() = default;
};
-}
+} // namespace detail
template <typename T>
class EventBaseLocal;
std::unique_ptr<RequestEventBase>(new RequestEventBase(eb)));
}
+ bool hasCallback() override {
+ return false;
+ }
+
private:
explicit RequestEventBase(EventBase* eb) : eb_(eb) {}
EventBase* eb_;
virtual void runLoopCallback() noexcept = 0;
void cancelLoopCallback() {
+ context_.reset();
unlink();
}
Func function_;
};
+ /**
+ * Create a new EventBase object.
+ *
+ * Same as EventBase(true), which constructs an EventBase that measures time.
+ */
+ EventBase() : EventBase(true) {}
+
/**
* Create a new EventBase object.
*
* that relies on time-measurement, including:
* observer, max latency and avg loop time.
*/
- explicit EventBase(bool enableTimeMeasurement = true);
+ explicit EventBase(bool enableTimeMeasurement);
/**
* Create a new EventBase object that will use the specified libevent