X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fcommon%2Ftrigger-event.cpp;h=1c4977d50762624a8c9f130ea7d060e15c95f4c3;hb=bcfff8de93fcf1704dbdc01a33137afb6014f092;hp=3de929d486937720a6c5e575e2cedc26a993d3c3;hpb=6c48d965d1eca249b71488ab4193bf6dcdd74bcd;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/common/trigger-event.cpp b/adaptors/common/trigger-event.cpp index 3de929d..1c4977d 100644 --- a/adaptors/common/trigger-event.cpp +++ b/adaptors/common/trigger-event.cpp @@ -20,7 +20,7 @@ // EXTERNAL INCLUDES #include -#include +#include #include @@ -37,10 +37,10 @@ namespace Internal namespace Adaptor { -TriggerEvent::TriggerEvent( boost::function functor, TriggerEventInterface::Options options ) -: mFileDescriptorMonitor(NULL), - mFunctor(functor), - mFileDescriptor(-1), +TriggerEvent::TriggerEvent( CallbackBase* callback, TriggerEventInterface::Options options ) +: mFileDescriptorMonitor( NULL ), + mCallback( callback ), + mFileDescriptor( -1 ), mOptions( options ) { // Create accompanying file descriptor. @@ -48,7 +48,7 @@ TriggerEvent::TriggerEvent( boost::function functor, TriggerEventInterfa if (mFileDescriptor >= 0) { // Now Monitor the created event file descriptor - mFileDescriptorMonitor = new FileDescriptorMonitor(mFileDescriptor, boost::bind(&TriggerEvent::Triggered, this)); + mFileDescriptorMonitor = new FileDescriptorMonitor( mFileDescriptor, MakeCallback( this, &TriggerEvent::Triggered ), FileDescriptorMonitor::FD_READABLE ); } else { @@ -58,11 +58,8 @@ TriggerEvent::TriggerEvent( boost::function functor, TriggerEventInterfa TriggerEvent::~TriggerEvent() { - if (mFileDescriptorMonitor) - { - delete mFileDescriptorMonitor; - mFileDescriptorMonitor = NULL; - } + delete mFileDescriptorMonitor; + delete mCallback; if (mFileDescriptor >= 0) { @@ -93,8 +90,14 @@ void TriggerEvent::Trigger() } } -void TriggerEvent::Triggered() +void TriggerEvent::Triggered( FileDescriptorMonitor::EventType eventBitMask ) { + if( !( eventBitMask & FileDescriptorMonitor::FD_READABLE ) ) + { + DALI_ASSERT_ALWAYS( 0 && "Trigger event file descriptor error"); + return; + } + // Reading from the file descriptor resets the event counter, we can ignore the count. uint64_t receivedData; size_t size; @@ -104,8 +107,8 @@ void TriggerEvent::Triggered() DALI_LOG_WARNING("Unable to read to UpdateEvent File descriptor\n"); } - // Call the connected boost function. - mFunctor(); + // Call the connected callback + CallbackBase::Execute( *mCallback ); //check if we should delete ourselves after the trigger if( mOptions == TriggerEventInterface::DELETE_AFTER_TRIGGER )