{
Dali::Timer mTimer;
TizenPlatformAbstraction* mOwner;
- CallbackBase* mCallback;
+ std::unique_ptr< CallbackBase > mCallback;
const uint32_t mIdNumber;
static uint32_t sNextTimerId;
TimerCallback(TizenPlatformAbstraction* owner, CallbackBase* callback, uint32_t ms)
: mTimer(Dali::Timer::New(ms)),
mOwner(owner),
- mCallback(callback),
- mIdNumber(sNextTimerId++)
+ mCallback( std::unique_ptr< CallbackBase >( callback ) ),
+ mIdNumber(++sNextTimerId)
{
mTimer.TickSignal().Connect( this, &TimerCallback::Tick );
mTimer.Start();
}
+ ~TimerCallback()
+ {
+ }
bool Tick()
{
TimerCallback* timerCallbackPtr = new TimerCallback(this, callback, milliseconds);
// Stick it in the list
- mTimerPairsWaiting.push_back(timerCallbackPtr);
+ mTimerPairsWaiting.push_back( std::unique_ptr< TimerCallback >( timerCallbackPtr ) );
return timerCallbackPtr->mIdNumber;
}
{
auto iter = std::remove_if(
mTimerPairsWaiting.begin(), mTimerPairsWaiting.end(),
- [&timerId]( TimerCallback* timerCallbackPtr )
+ [&timerId]( std::unique_ptr< TimerCallback >& timerCallbackPtr )
{
if( timerCallbackPtr->mIdNumber == timerId )
{
{
CallbackBase::Execute( *timerPtr.mCallback );
- std::vector<TimerCallback*>::iterator timerIter = std::find( mTimerPairsWaiting.begin(), mTimerPairsWaiting.end(), &timerPtr );
+ std::vector< std::unique_ptr< TimerCallback > >::iterator timerIter = std::find_if( mTimerPairsWaiting.begin(), mTimerPairsWaiting.end(),
+ [&]( std::unique_ptr< TimerCallback >& p )
+ { return p.get() == &timerPtr;} );
if( timerIter == std::end(mTimerPairsWaiting) )
{
// EXTERNAL INCLUDES
#include <cstdint>
#include <string>
+#include <memory>
#include <dali/integration-api/platform-abstraction.h>
namespace Dali
std::string mDataStoragePath;
- std::vector<TimerCallback*> mTimerPairsWaiting;
- std::vector<TimerCallback*> mTimerPairsSpent;
+ std::vector< std::unique_ptr< TimerCallback > > mTimerPairsWaiting;
+ std::vector< std::unique_ptr< TimerCallback > > mTimerPairsSpent;
};
/**