equal
deleted
inserted
replaced
34 const int MODULE_ID_DATA_CHECK = 902; |
34 const int MODULE_ID_DATA_CHECK = 902; |
35 const int MODULE_ID_NO_REPLY = 903; |
35 const int MODULE_ID_NO_REPLY = 903; |
36 const int MODULE_ID_SLEEP_1S = 1000; |
36 const int MODULE_ID_SLEEP_1S = 1000; |
37 const int MODULE_ID_SLEEP_5S = 5000; |
37 const int MODULE_ID_SLEEP_5S = 5000; |
38 const int MODULE_ID_SLEEP_10S = 10000; |
38 const int MODULE_ID_SLEEP_10S = 10000; |
|
39 const int MODULE_ID_DELAY_REPLY = 11000; |
39 |
40 |
40 #ifdef __SYMBIAN32__ |
41 #ifdef __SYMBIAN32__ |
41 java::captain::ExtensionPluginInterface* getExtensionPlugin() |
42 java::captain::ExtensionPluginInterface* getExtensionPlugin() |
42 { |
43 { |
43 #else |
44 #else |
66 ELOG1(EJavaComms, "wstringToUtf8 failed: %s", e.toString().c_str()); |
67 ELOG1(EJavaComms, "wstringToUtf8 failed: %s", e.toString().c_str()); |
67 } |
68 } |
68 return result; |
69 return result; |
69 } |
70 } |
70 |
71 |
71 CommsExtensionPlugin::CommsExtensionPlugin() : mCore(0), mComms(0) |
72 CommsExtensionPlugin::CommsExtensionPlugin() : mCore(0), mComms(0), mDelayedReplyCount(0) |
72 { |
73 { |
73 JELOG2(EJavaComms); |
74 JELOG2(EJavaComms); |
74 } |
75 } |
75 |
76 |
76 CommsExtensionPlugin::~CommsExtensionPlugin() |
77 CommsExtensionPlugin::~CommsExtensionPlugin() |
91 mComms->registerListener(MODULE_ID_DATA_CHECK, this); |
92 mComms->registerListener(MODULE_ID_DATA_CHECK, this); |
92 mComms->registerListener(MODULE_ID_NO_REPLY, this); |
93 mComms->registerListener(MODULE_ID_NO_REPLY, this); |
93 mComms->registerListener(MODULE_ID_SLEEP_1S, this); |
94 mComms->registerListener(MODULE_ID_SLEEP_1S, this); |
94 mComms->registerListener(MODULE_ID_SLEEP_5S, this); |
95 mComms->registerListener(MODULE_ID_SLEEP_5S, this); |
95 mComms->registerListener(MODULE_ID_SLEEP_10S, this); |
96 mComms->registerListener(MODULE_ID_SLEEP_10S, this); |
|
97 mComms->registerListener(MODULE_ID_DELAY_REPLY, this); |
96 } |
98 } |
97 |
99 |
98 void CommsExtensionPlugin::stopPlugin() |
100 void CommsExtensionPlugin::stopPlugin() |
99 { |
101 { |
100 JELOG2(EJavaComms); |
102 JELOG2(EJavaComms); |
105 mComms->unregisterListener(MODULE_ID_DATA_CHECK, this); |
107 mComms->unregisterListener(MODULE_ID_DATA_CHECK, this); |
106 mComms->unregisterListener(MODULE_ID_NO_REPLY, this); |
108 mComms->unregisterListener(MODULE_ID_NO_REPLY, this); |
107 mComms->unregisterListener(MODULE_ID_SLEEP_1S, this); |
109 mComms->unregisterListener(MODULE_ID_SLEEP_1S, this); |
108 mComms->unregisterListener(MODULE_ID_SLEEP_5S, this); |
110 mComms->unregisterListener(MODULE_ID_SLEEP_5S, this); |
109 mComms->unregisterListener(MODULE_ID_SLEEP_10S, this); |
111 mComms->unregisterListener(MODULE_ID_SLEEP_10S, this); |
|
112 mComms->unregisterListener(MODULE_ID_DELAY_REPLY, this); |
110 |
113 |
111 mCore = 0; |
114 mCore = 0; |
112 mComms = 0; |
115 mComms = 0; |
113 } |
116 } |
114 |
117 |
195 usleep(1000*aMessage.getModuleId()); |
198 usleep(1000*aMessage.getModuleId()); |
196 // fall through |
199 // fall through |
197 #ifdef __SYMBIAN32__ |
200 #ifdef __SYMBIAN32__ |
198 break; |
201 break; |
199 #endif |
202 #endif |
|
203 case MODULE_ID_DELAY_REPLY: |
|
204 { |
|
205 if (mDelayedReplyCount == 0) |
|
206 { |
|
207 mDelayedReply = aMessage; |
|
208 mDelayedReplyCount++; |
|
209 } |
|
210 else |
|
211 { |
|
212 // reply to first message |
|
213 CommsMessage reply; |
|
214 reply.replyTo(mDelayedReply); |
|
215 mComms->send(reply); |
|
216 |
|
217 // reply to message client |
|
218 reply.replyTo(aMessage); |
|
219 mComms->send(reply); |
|
220 mDelayedReplyCount = 0; |
|
221 } |
|
222 } |
|
223 break; |
|
224 |
200 default: |
225 default: |
201 mReply = aMessage; |
226 mReply = aMessage; |
202 mReply.setReceiver(aMessage.getSender()); |
227 mReply.setReceiver(aMessage.getSender()); |
203 mComms->send(mReply); |
228 mComms->send(mReply); |
204 break; |
229 break; |