From 2029ff368e49fae489b8ec8fc12f7d126b182dfb Mon Sep 17 00:00:00 2001 From: Jose Date: Tue, 1 Dec 2015 17:36:19 +0100 Subject: C++11 mapping initial commit --- cpp/test/IceUtil/timer/Client.cpp | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) (limited to 'cpp/test/IceUtil/timer/Client.cpp') diff --git a/cpp/test/IceUtil/timer/Client.cpp b/cpp/test/IceUtil/timer/Client.cpp index a893352cb66..a527869e731 100644 --- a/cpp/test/IceUtil/timer/Client.cpp +++ b/cpp/test/IceUtil/timer/Client.cpp @@ -15,6 +15,22 @@ using namespace IceUtil; using namespace std; +template +struct TargetLess +{ + bool operator()(const T& lhs, const T& rhs) const + { + if(lhs && rhs) + { + return *lhs < *rhs; + } + else + { + return !lhs && rhs; + } + } +}; + class TestTask : public IceUtil::TimerTask, IceUtil::Monitor { public: @@ -96,7 +112,7 @@ private: IceUtil::Time _scheduledTime; int _count; }; -typedef IceUtil::Handle TestTaskPtr; +ICE_DEFINE_PTR(TestTaskPtr, TestTask); class DestroyTask : public IceUtil::TimerTask, IceUtil::Monitor @@ -134,7 +150,7 @@ private: IceUtil::TimerPtr _timer; bool _run; }; -typedef IceUtil::Handle DestroyTaskPtr; +ICE_DEFINE_PTR(DestroyTaskPtr, DestroyTask); int main(int, char**) { @@ -143,7 +159,7 @@ int main(int, char**) IceUtil::TimerPtr timer = new IceUtil::Timer(); { - TestTaskPtr task = new TestTask(); + TestTaskPtr task = ICE_MAKE_SHARED(TestTask); timer->schedule(task, IceUtil::Time()); task->waitForRun(); task->clear(); @@ -165,7 +181,7 @@ int main(int, char**) } { - TestTaskPtr task = new TestTask(); + TestTaskPtr task = ICE_MAKE_SHARED(TestTask); test(!timer->cancel(task)); timer->schedule(task, IceUtil::Time::seconds(1)); test(!task->hasRun() && timer->cancel(task) && !task->hasRun()); @@ -179,7 +195,7 @@ int main(int, char**) IceUtil::Time start = IceUtil::Time::now(IceUtil::Time::Monotonic) + IceUtil::Time::milliSeconds(500); for(int i = 0; i < 20; ++i) { - tasks.push_back(new TestTask(IceUtil::Time::milliSeconds(500 + i * 50))); + tasks.push_back(ICE_MAKE_SHARED(TestTask, IceUtil::Time::milliSeconds(500 + i * 50))); } random_shuffle(tasks.begin(), tasks.end()); @@ -196,7 +212,11 @@ int main(int, char**) test(IceUtil::Time::now(IceUtil::Time::Monotonic) > start); +#ifdef ICE_CPP11_MAPPING + sort(tasks.begin(), tasks.end(), TargetLess>()); +#else sort(tasks.begin(), tasks.end()); +#endif for(p = tasks.begin(); p + 1 != tasks.end(); ++p) { if((*p)->getRunTime() > (*(p + 1))->getRunTime()) @@ -207,7 +227,7 @@ int main(int, char**) } { - TestTaskPtr task = new TestTask(); + TestTaskPtr task = ICE_MAKE_SHARED(TestTask); timer->scheduleRepeated(task, IceUtil::Time::milliSeconds(20)); IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(500)); test(task->hasRun()); @@ -227,7 +247,7 @@ int main(int, char**) { { IceUtil::TimerPtr timer = new IceUtil::Timer(); - DestroyTaskPtr destroyTask = new DestroyTask(timer); + DestroyTaskPtr destroyTask = ICE_MAKE_SHARED(DestroyTask, timer); timer->schedule(destroyTask, IceUtil::Time()); destroyTask->waitForRun(); try @@ -241,7 +261,7 @@ int main(int, char**) } { IceUtil::TimerPtr timer = new IceUtil::Timer(); - TestTaskPtr testTask = new TestTask(); + TestTaskPtr testTask = ICE_MAKE_SHARED(TestTask); timer->schedule(testTask, IceUtil::Time()); timer->destroy(); try -- cgit v1.2.3