[Tizen] Add codes for Dali Windows Backend
[platform/core/uifw/dali-core.git] / dali / devel-api / threading / conditional-wait.h
old mode 100644 (file)
new mode 100755 (executable)
index 2cbd289..79de016
@@ -2,7 +2,7 @@
 #define __DALI_CONDITIONAL_WAIT_H__
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ namespace Dali
 /**
  * Helper class to allow conditional waiting and notifications between multiple threads.
  */
-class DALI_IMPORT_API ConditionalWait
+class DALI_CORE_API ConditionalWait
 {
 public:
 
@@ -35,7 +35,7 @@ public:
    * @brief Allows client code to synchronize updates to its own state with the
    * internal state of a ConditionalWait object.
    */
-  class ScopedLock
+  class DALI_CORE_API ScopedLock
   {
   public:
     /**
@@ -55,15 +55,18 @@ public:
      * Getter for the ConditionalWait locked for this instance's lifetime.
      * @return the ConditionalWait object currently locked.
      */
-    ConditionalWait& GetLockedWait() const { return mWait; }
+    ConditionalWait& GetLockedWait() const;
+
+  public: // Data, public to allow nesting class to access
+
+    struct ScopedLockImpl;
+    ScopedLockImpl* mImpl;
 
   private:
 
     // Not implemented as ScopedLock cannot be copied:
     ScopedLock( const ScopedLock& );
     const ScopedLock& operator=( const ScopedLock& );
-
-    ConditionalWait& mWait;
   };
 
   /**