logsui/logsengine/src/logsmessage.cpp
changeset 21 2f0af9ba7665
parent 18 acd4e87b24b4
--- a/logsui/logsengine/src/logsmessage.cpp	Fri Sep 17 16:47:32 2010 +0300
+++ b/logsui/logsengine/src/logsmessage.cpp	Fri Oct 15 14:47:48 2010 +0300
@@ -19,8 +19,8 @@
 #include "logsmessage.h"
 #include "logslogger.h"
 #include "logseventdata.h"
-#include <xqservicerequest.h>
 #include <xqaiwdecl.h>
+#include <xqappmgr.h>
 
 //SYSTEM
 
@@ -29,7 +29,7 @@
 // -----------------------------------------------------------------------------
 //
 LogsMessage::LogsMessage(LogsEvent& event)
-    :QObject(), mIsAllowed( false ), mContactId( 0 ), mService( 0 )
+    :QObject(), mIsAllowed(false), mContactId(0), mAiwRequest(0)
 {
     if ( event.logsEventData() && !event.logsEventData()->isCsCompatible() ){
         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
@@ -49,7 +49,7 @@
 //
 LogsMessage::LogsMessage(unsigned int contactId, const QString& number,
 	 const QString& displayName)
-    :QObject(), mIsAllowed( false ), mContactId( 0 ), mService( 0 )
+    :QObject(), mIsAllowed(false), mContactId(0), mAiwRequest(0)
 {
     if ( number.length() == 0 ){
         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
@@ -69,7 +69,7 @@
 LogsMessage::~LogsMessage()
 {
     LOGS_QDEBUG( "logs [ENG] <-> LogsMessage::~LogsMessage()" )
-    delete mService;
+    delete mAiwRequest;
 }
     
 // ----------------------------------------------------------------------------
@@ -88,74 +88,77 @@
 bool LogsMessage::sendMessage()
 {
     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessage()" )
-    
-    delete mService;
-    mService = 0;
-    QString serviceName("messaging.");     
-    serviceName.append(XQI_MESSAGE_SEND);
-    mService = new XQServiceRequest(serviceName, XQOP_MESSAGE_SEND_WITH_ID, false);
-    bool sending = doSendMessageToNumber(*mService, mNumber, mDisplayName, mContactId);
-    connect(mService, SIGNAL(requestCompleted(QVariant)), this, SLOT(requestCompleted(QVariant)));
-    connect(mService, SIGNAL(requestError(int)), this, SLOT(requestError(int)));
+    cancelServiceRequest();
+    bool sending(false);
+    XQApplicationManager appMng;
+    //TODO: change request to be embedded once messaging team has implemented
+    //handling of clientDisconnected() signal
+    mAiwRequest = appMng.create(XQI_MESSAGE_SEND, XQOP_MESSAGE_SEND_WITH_ID, false); // embedded 
+    if (mAiwRequest) {
+        connect(mAiwRequest, SIGNAL(requestOk(const QVariant&)), 
+                this, SLOT(handleRequestCompleted(const QVariant&)));
+        connect(mAiwRequest, SIGNAL(requestError(int,const QString&)), 
+                this, SLOT(handleError(int,const QString&)));
+
+        QList<QVariant> arguments;
+        arguments.append(QVariant(mNumber));
+        arguments.append(QVariant(mContactId));
+        arguments.append(QVariant(mDisplayName));
+        mAiwRequest->setArguments(arguments);
+        mAiwRequest->setSynchronous(false);
+        sending = mAiwRequest->send();
+    }
     return sending;
 }
 
+
 // ----------------------------------------------------------------------------
 //
 // ----------------------------------------------------------------------------
 //
-bool LogsMessage::sendMessageToNumber(
-        const QString& number, const QString& displayName, unsigned int contactId)
+void LogsMessage::cancelServiceRequest()
 {
-    LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessageToNumber()" )
-    QString serviceName("messaging.");     
-    serviceName.append(XQI_MESSAGE_SEND);
-    XQServiceRequest req(serviceName, XQOP_MESSAGE_SEND_WITH_ID, false);
-    return doSendMessageToNumber(req, number, displayName, contactId);
+    LOGS_QDEBUG( "logs [ENG] -> LogsMessage::cancelServiceRequest()" )
+    delete mAiwRequest;
+    mAiwRequest = 0;
+    LOGS_QDEBUG( "logs [ENG] <- LogsMessage::cancelServiceRequest()" )
 }
 
 // ----------------------------------------------------------------------------
 //
 // ----------------------------------------------------------------------------
 //
-void LogsMessage::requestCompleted(const QVariant& /*value*/)
+LogsMessage* LogsMessage::sendMessageToNumber(
+        const QString& number, const QString& displayName, unsigned int contactId)
 {
-    LOGS_QDEBUG( "logs [ENG] -> LogsMessage::requestCompleted()" )
-}
-
-// ----------------------------------------------------------------------------
-//
-// ----------------------------------------------------------------------------
-//
-void LogsMessage::requestError(int /*err*/)
-{
-    LOGS_QDEBUG( "logs [ENG] -> LogsMessage::requestError()" )
+    LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessageToNumber()" )
+    LogsMessage* message = new LogsMessage(contactId, number, displayName);
+    message->sendMessage();
+    return message;
 }
 
 // ----------------------------------------------------------------------------
 //
 // ----------------------------------------------------------------------------
 //
-bool LogsMessage::doSendMessageToNumber(
-        XQServiceRequest& request, const QString& number, 
-        const QString& displayName, unsigned int contactId)
+void LogsMessage::handleRequestCompleted(const QVariant& result)
 {
-    LOGS_QDEBUG_4( "logs [ENG] -> LogsMessage::doSendMessageToNumber(), (num, name, id)", 
-            number, displayName, contactId )
+    LOGS_QDEBUG( "logs [ENG] <-> LogsMessage::handleRequestCompleted()" )
+    Q_UNUSED(result)
+    cancelServiceRequest();
+}
 
-    QList<QVariant> arguments;
-    arguments.append(QVariant(number));
-    arguments.append(QVariant(contactId));
-    arguments.append(QVariant(displayName));
-    request.setArguments(arguments);
-    XQRequestInfo info;
-    info.setForeground(true);
-    request.setInfo(info);
-    QVariant retValue;
-    bool ret = request.send(retValue);
-    LOGS_QDEBUG_2( "logs [ENG] <- LogsMessage::doSendMessageToNumber()", ret )
-    
-    return ret;
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+//
+void LogsMessage::handleError(int errorCode, const QString& errorMessage)
+{
+    LOGS_QDEBUG_4( "logs [ENG] <-> LogsMessage::handleError(): ", errorCode,
+            " ,msg: ", errorMessage)
+    Q_UNUSED(errorCode)
+    Q_UNUSED(errorMessage)
+    cancelServiceRequest();
 }
 
 // End of file