24 using namespace folly;
45 int set_ = 0, unset_ = 0;
77 getContext().setContextData(key, std::make_unique<TestData>(
data));
81 return getContext().hasContextData(key);
85 auto*
ptr =
dynamic_cast<TestData*
>(getContext().getContextData(key));
91 getContext().clearContextData(key);
113 auto data =
dynamic_cast<TestData*
>(
119 auto th = std::thread([&]() { base.
loopForever(); });
124 auto data =
a->data_;
165 "test", std::make_unique<TestData>(20)));
172 "test2", std::make_unique<TestData>(20)));
185 ctx1->setContextData(
"test", std::make_unique<TestData>(10));
186 auto testData1 =
dynamic_cast<TestData*
>(ctx1->getContextData(
"test"));
194 ctx2->setContextData(
testtoken, std::make_unique<TestData>(20));
195 auto testData2 =
dynamic_cast<TestData*
>(ctx2->getContextData(
testtoken));
220 ~DeadlockTestData()
override {
222 val_, std::make_unique<TestData>(1));
225 bool hasCallback()
override {
233 "test", std::make_unique<DeadlockTestData>(
"test2"));
240 static bool global =
false;
244 void onSet()
override {
249 void onUnset()
override {
254 bool hasCallback()
override {
261 "test", std::make_unique<GlobalTestData>());
265 "test", std::make_unique<GlobalTestData>());
271 setData(123,
"immutable");
285 EXPECT_EQ(0, getData(
"immutable").unset_);
294 "test", std::make_unique<TestData>(789));
310 "test", std::make_unique<TestData>(789));
bool hasCallback() override
static std::shared_ptr< RequestContext > setContext(std::shared_ptr< RequestContext > ctx)
void setContextData(const RequestToken &val, std::unique_ptr< RequestData > data)
#define EXPECT_EQ(val1, val2)
—— Concurrent Priority Queue Implementation ——
static std::shared_ptr< RequestContext > saveContext()
bool hasData(std::string key="test")
constexpr auto data(C &c) -> decltype(c.data())
bool runInEventBaseThread(void(*fn)(T *), T *arg)
void clearContextData(const RequestToken &val)
void SimpleTest(std::shared_ptr< folly::Executor > const &parent)
RequestToken testtoken("test")
TEST_F(AsyncSSLSocketWriteTest, write_coalescing1)
#define EXPECT_TRUE(condition)
RequestContext & getContext()
#define EXPECT_NE(val1, val2)
void clearData(std::string key="test")
#define ASSERT_FALSE(condition)
#define EXPECT_FALSE(condition)
RequestData * getContextData(const RequestToken &val)
#define ASSERT_TRUE(condition)
static RequestContext * get()
const TestData & getData(std::string key="test")
void setData(int data=0, std::string key="test")