Update change log and spec for wrt-plugins-tizen_0.4.51
[framework/web/wrt-plugins-tizen.git] / src / Messaging / MessagingService.cpp
index 8bb5ec1..b408fe6 100644 (file)
@@ -26,7 +26,7 @@
 #include <email-types.h>
 #include <email-api.h>
 #include <Logger.h>
-
+#include <unistd.h>
 
 using namespace std;
 
@@ -153,7 +153,7 @@ int MessagingService::createOpId(int type)
                index = type;
        }
                
-       LoggerD("m_opRequests size : " << cnt );
+       LoggerD("m_opRequests cnt : " << cnt );
        LoggerD("index " << index);
        m_opRequests.insert(std::make_pair(index, MessagingServiceOpData(0,type)));
 
@@ -162,17 +162,29 @@ int MessagingService::createOpId(int type)
 
 int MessagingService::getHandleFromOpId(int opIdx)
 {
-    LoggerD("operation index size : " << opIdx);
-
+    LoggerD("opIdx : " << opIdx);
+    LoggerD("m_opRequests.size() : " << m_opRequests.size() );
     int handle = -1;
        
     OpRequestsIterator it = m_opRequests.find(opIdx);
     if ( m_opRequests.end() != it)
     {
-               handle = it->second.handle;
+        int retryCount = 0;
+        if(it->second.checkSetHandle == false)
+        {
+            while (retryCount < 2) {
+                LoggerW("Wait for handle");
+                usleep(200 * 1000);
+                if (it->second.checkSetHandle) {
+                    break;
+                }
+                retryCount++;
+            }
+            handle = it->second.handle;
+        }
     }
 
-    LoggerD("index " << handle);
+    LoggerD("handle " << handle);
     return handle;
 
 }
@@ -237,6 +249,7 @@ void MessagingService::setHandleToOpId(int opIdx, int handle)
        {
                LoggerD(" find Message ");
                it->second.handle = handle;
+               it->second.checkSetHandle = true;
        }
        
 }