本文整理汇总了C++中AutoRequired::CreateContext方法的典型用法代码示例。如果您正苦于以下问题:C++ AutoRequired::CreateContext方法的具体用法?C++ AutoRequired::CreateContext怎么用?C++ AutoRequired::CreateContext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AutoRequired
的用法示例。
在下文中一共展示了AutoRequired::CreateContext方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pusher
TEST_F(ContextCreatorTest, ClearAndTeardown) {
// Create a context and verify it gets evicted from the context creator:
std::weak_ptr<CoreContext> ctxtWeak;
{
AutoCreateContext mainContext;
CurrentContextPusher pusher(mainContext);
AutoRequired<Creator> creator;
std::shared_ptr<CoreContext> ctxt;
// Make a sub-context
ctxt = creator->CreateContext(0).first;
// Obtain a weak pointer, in order to ensure proper teardown:
ctxtWeak = ctxt;
//Call clear on the creator.
creator->Clear(true);
//Make another one!
ctxt = creator->CreateContext(1).first;
//Let the creator go out of scope
}
// Context must be destroyed as a precondition of the subsequent assertion
ASSERT_TRUE(ctxtWeak.expired()) << "Expected the context to be destroyed";
// Verify that our creator is now empty:
// ASSERT_EQ(0UL, creator->GetSize()) << "Context creator is non-empty after all created contexts were destroyed";
}
示例2:
TEST_F(ContextCreatorTest, VoidKeyType) {
AutoRequired<VoidCreator> vc;
{
std::shared_ptr<CoreContext> ctxt = vc->CreateContext();
ASSERT_EQ(1UL, vc->GetSize()) << "Requested that a context be created, but the void creator did not have any members";
ASSERT_EQ(1UL, vc->GetSize()) << "A created context was apparently destroyed after firing bolts";
ASSERT_EQ(0UL, vc->m_totalDestroyed) << "The void creator received a NotifyContextDestroyed call unexpectedly early";
vc->Clear(true);
//Make another one to check about collisions
std::shared_ptr<CoreContext> ctxt2 = vc->CreateContext();
ASSERT_EQ(1UL, vc->GetSize()) << "Second void context creation failed!";
}
ASSERT_EQ(0UL, vc->GetSize()) << "A void context creator was not correctly updated when its dependent context went out of scope";
ASSERT_EQ(2UL, vc->m_totalDestroyed) << "The void creator did not receive the expected number of NotifyContextDestroyed calls";
}