Remove FastDelegate from Once
authorZbigniew Kostrzewa <z.kostrzewa@samsung.com>
Wed, 30 Oct 2013 07:22:36 +0000 (08:22 +0100)
committerSoo-Hyun Choi <sh9.choi@samsung.com>
Thu, 31 Oct 2013 11:41:55 +0000 (20:41 +0900)
[Issue#]   LINUXWRT-1061
[Problem]  Remove FastDelegate
[Cause]    Licensing issues
[Solution] Remove FastDelegate refernces from DPL::Once class.

[Verification]
1. Build repository with tests
2. Launch (on DUT):
   - `wrt-commons-tests-core --output=text`
   - `wrt-commons-tests-event --output=text`
   The same number of tests should pass after and before applying this change.

Change-Id: I25ca5cbc229137b82d52137cd6296de3bae68c5e

modules/core/include/dpl/once.h
modules/event/include/dpl/event/property.h
tests/core/test_once.cpp

index 610f366..ab3710f 100644 (file)
@@ -22,8 +22,8 @@
 #ifndef DPL_ONCE_H
 #define DPL_ONCE_H
 
+#include <functional>
 #include <dpl/noncopyable.h>
-#include <dpl/fast_delegate.h>
 #include <dpl/atomic.h>
 #include <dpl/mutex.h>
 
@@ -32,7 +32,7 @@ class Once :
     private Noncopyable
 {
   public:
-    typedef FastDelegate<void ()> Delegate;
+    typedef std::function<void ()> Delegate;
 
     void Call(Delegate delegate);
 
index e5cb8a0..11e12dd 100644 (file)
@@ -355,7 +355,7 @@ class PropertyStorageMethod<Type,
     Type Get() const
     {
         Assert(this->m_readValue);
-        m_once.Call(Once::Delegate(this, &ThisType::OnceEnsure));
+        m_once.Call(std::bind(&ThisType::OnceEnsure, this));
         return this->m_value;
     }
 
@@ -365,7 +365,7 @@ class PropertyStorageMethod<Type,
 
         this->m_writeValue(value, m_model);
         this->m_value = value;
-        m_once.Call(Once::Delegate(this, &ThisType::OnceDisable));
+        m_once.Call(std::bind(&ThisType::OnceDisable, this));
     }
 };
 
index 436aea4..5ba7ecb 100644 (file)
@@ -19,6 +19,8 @@
  * @version     1.0
  * @brief       This file is the implementation file of once tests
  */
+#include <functional>
+
 #include <dpl/test/test_runner.h>
 #include <dpl/once.h>
 #include <dpl/waitable_event.h>
@@ -58,7 +60,7 @@ class MyThread :
     virtual int ThreadEntry()
     {
         DPL::WaitForSingleHandle(m_event->GetHandle());
-        m_once->Call(DPL::Once::Delegate(this, &MyThread::Call));
+        m_once->Call(std::bind(&MyThread::Call, this));
         return 0;
     }