javacommons/comms/tsrc/javaapi/src/commsextensionplugin.cpp
changeset 87 1627c337e51e
parent 21 2a9601315dfc
--- a/javacommons/comms/tsrc/javaapi/src/commsextensionplugin.cpp	Fri Oct 15 12:29:39 2010 +0300
+++ b/javacommons/comms/tsrc/javaapi/src/commsextensionplugin.cpp	Fri Oct 29 11:49:32 2010 +0300
@@ -36,6 +36,7 @@
 const int MODULE_ID_SLEEP_1S    = 1000;
 const int MODULE_ID_SLEEP_5S    = 5000;
 const int MODULE_ID_SLEEP_10S   = 10000;
+const int MODULE_ID_DELAY_REPLY = 11000;
 
 #ifdef __SYMBIAN32__
 java::captain::ExtensionPluginInterface* getExtensionPlugin()
@@ -68,7 +69,7 @@
     return result;
 }
 
-CommsExtensionPlugin::CommsExtensionPlugin() : mCore(0), mComms(0)
+CommsExtensionPlugin::CommsExtensionPlugin() : mCore(0), mComms(0), mDelayedReplyCount(0)
 {
     JELOG2(EJavaComms);
 }
@@ -93,6 +94,7 @@
     mComms->registerListener(MODULE_ID_SLEEP_1S, this);
     mComms->registerListener(MODULE_ID_SLEEP_5S, this);
     mComms->registerListener(MODULE_ID_SLEEP_10S, this);
+    mComms->registerListener(MODULE_ID_DELAY_REPLY, this);
 }
 
 void CommsExtensionPlugin::stopPlugin()
@@ -107,6 +109,7 @@
     mComms->unregisterListener(MODULE_ID_SLEEP_1S, this);
     mComms->unregisterListener(MODULE_ID_SLEEP_5S, this);
     mComms->unregisterListener(MODULE_ID_SLEEP_10S, this);
+    mComms->unregisterListener(MODULE_ID_DELAY_REPLY, this);
 
     mCore = 0;
     mComms = 0;
@@ -197,6 +200,28 @@
 #ifdef __SYMBIAN32__
         break;
 #endif
+    case MODULE_ID_DELAY_REPLY:
+    {
+        if (mDelayedReplyCount == 0)
+        {
+            mDelayedReply = aMessage;
+            mDelayedReplyCount++;
+        }
+        else
+        {
+            // reply to first message
+            CommsMessage reply;
+            reply.replyTo(mDelayedReply);
+            mComms->send(reply);
+
+            // reply to message client
+            reply.replyTo(aMessage);
+            mComms->send(reply);
+            mDelayedReplyCount = 0;
+        }
+    }
+    break;
+
     default:
         mReply = aMessage;
         mReply.setReceiver(aMessage.getSender());