//--------------------------------------------------------------- // MsgSendUtil::send // @see header file //-------------------------------------------------------------- int MsgSendUtil::send(ConvergedMessage& msg) { QDEBUG_WRITE("START MsgSendUtil::send"); int retValue = KErrGeneral; bool emailOverSmsSupported = false; long int id = saveToDrafts(msg); if(id != -1) { checkEmailOverSms(msg, emailOverSmsSupported); UniEditorPluginInterface* pluginInterface = mPluginLoader->getUniEditorPlugin(msg.messageType()); if( validateService(pluginInterface, emailOverSmsSupported) ) { pluginInterface->send(id); retValue = KErrNone; } else { //Delete the entry created in drafts as we are switching to settings pluginInterface->deleteDraftsEntry(id); retValue = KErrNotFound; } } QDEBUG_WRITE("END MsgSendUtil::send"); return retValue; }
integer ServiceApp::startCommand(ConstStrA command, const Args & args, SeqFileOutput &serr) { if (command == ConstStrA(startCmd)) { integer x = validateService(args,serr); if (x) return x; createInstanceFile(); x = onMessage(command,args,serr); if (x) return x; x = initService(args,serr); if (x) return x; serr = nil; instance->enterDaemonMode(restartDelaySec); return startService(); } else if (command == ConstStrA(startForeCmd)) { integer x = validateService(args,serr); if (x) return x; createInstanceFile(); x = onMessage(command,args,serr); if (x) return x; x = initService(args,serr); if (x) return x; return startService(); } else if (command == ConstStrA(restartCmd)){ integer x = validateService(args,serr); if (x) return x; try { instance->open(); postMessage(stopCmd,Args(), serr); instance->waitForTerminate(timeout); } catch (ProgInstance::NotRunningException &) { } catch (ProgInstance::TimeoutException &) { instance->terminate(); instance->waitForTerminate(timeout); } createInstanceFile(); x = onMessage(command,args,serr); if (x) return x; x = initService(args,serr); if (x) return x; serr = nil; instance->enterDaemonMode(restartDelaySec); return startService(); } else if (command == ConstStrA(stopCmd)) { try { instance->open(); integer res = postMessage(command,args, serr); if (res == 0) instance->waitForTerminate(timeout); return res; } catch (ProgInstance::TimeoutException &) { instance->terminate(); return 0; } } else if (command == ConstStrA(waitCmd)) { natural timeout = naturalNull; if (!args.empty()) { TextParser<wchar_t> parser; if (parser(L" %u1 ",args[0])) timeout = parser[1]; } instance->open(); instance->waitForTerminate(timeout); } else if (command == ConstStrA(testCmd)) { integer x = validateService(args, serr); return x; } else if (command == ConstStrA(runTestsCmd)) { if (args.empty()) return Singleton<TestCollector>::getInstance().runTests(ConstStrA(), serr); else if (args[0] == ConstStrW(L"list")) { SeqTextOutA out(serr); TextOut<SeqTextOutA> print(out); print("%1\n")<<(Singleton<TestCollector>::getInstance().listTests()); return 0; } else return Singleton<TestCollector>::getInstance().runTests(args[1], serr); } else { instance->open(); return postMessage(command,args, serr); } return 0; }