logsui/logsengine/src/logsmessage.cpp
changeset 21 2f0af9ba7665
parent 18 acd4e87b24b4
equal deleted inserted replaced
18:acd4e87b24b4 21:2f0af9ba7665
    17 
    17 
    18 //USER
    18 //USER
    19 #include "logsmessage.h"
    19 #include "logsmessage.h"
    20 #include "logslogger.h"
    20 #include "logslogger.h"
    21 #include "logseventdata.h"
    21 #include "logseventdata.h"
    22 #include <xqservicerequest.h>
       
    23 #include <xqaiwdecl.h>
    22 #include <xqaiwdecl.h>
       
    23 #include <xqappmgr.h>
    24 
    24 
    25 //SYSTEM
    25 //SYSTEM
    26 
    26 
    27 // -----------------------------------------------------------------------------
    27 // -----------------------------------------------------------------------------
    28 //
    28 //
    29 // -----------------------------------------------------------------------------
    29 // -----------------------------------------------------------------------------
    30 //
    30 //
    31 LogsMessage::LogsMessage(LogsEvent& event)
    31 LogsMessage::LogsMessage(LogsEvent& event)
    32     :QObject(), mIsAllowed( false ), mContactId( 0 ), mService( 0 )
    32     :QObject(), mIsAllowed(false), mContactId(0), mAiwRequest(0)
    33 {
    33 {
    34     if ( event.logsEventData() && !event.logsEventData()->isCsCompatible() ){
    34     if ( event.logsEventData() && !event.logsEventData()->isCsCompatible() ){
    35         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
    35         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
    36         mIsAllowed = false;
    36         mIsAllowed = false;
    37     } else {
    37     } else {
    47 //
    47 //
    48 // -----------------------------------------------------------------------------
    48 // -----------------------------------------------------------------------------
    49 //
    49 //
    50 LogsMessage::LogsMessage(unsigned int contactId, const QString& number,
    50 LogsMessage::LogsMessage(unsigned int contactId, const QString& number,
    51 	 const QString& displayName)
    51 	 const QString& displayName)
    52     :QObject(), mIsAllowed( false ), mContactId( 0 ), mService( 0 )
    52     :QObject(), mIsAllowed(false), mContactId(0), mAiwRequest(0)
    53 {
    53 {
    54     if ( number.length() == 0 ){
    54     if ( number.length() == 0 ){
    55         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
    55         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
    56         mIsAllowed = false;
    56         mIsAllowed = false;
    57     } else {
    57     } else {
    67 // -----------------------------------------------------------------------------
    67 // -----------------------------------------------------------------------------
    68 //
    68 //
    69 LogsMessage::~LogsMessage()
    69 LogsMessage::~LogsMessage()
    70 {
    70 {
    71     LOGS_QDEBUG( "logs [ENG] <-> LogsMessage::~LogsMessage()" )
    71     LOGS_QDEBUG( "logs [ENG] <-> LogsMessage::~LogsMessage()" )
    72     delete mService;
    72     delete mAiwRequest;
    73 }
    73 }
    74     
    74     
    75 // ----------------------------------------------------------------------------
    75 // ----------------------------------------------------------------------------
    76 // 
    76 // 
    77 // ----------------------------------------------------------------------------
    77 // ----------------------------------------------------------------------------
    86 // ----------------------------------------------------------------------------
    86 // ----------------------------------------------------------------------------
    87 //
    87 //
    88 bool LogsMessage::sendMessage()
    88 bool LogsMessage::sendMessage()
    89 {
    89 {
    90     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessage()" )
    90     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessage()" )
    91     
    91     cancelServiceRequest();
    92     delete mService;
    92     bool sending(false);
    93     mService = 0;
    93     XQApplicationManager appMng;
    94     QString serviceName("messaging.");     
    94     //TODO: change request to be embedded once messaging team has implemented
    95     serviceName.append(XQI_MESSAGE_SEND);
    95     //handling of clientDisconnected() signal
    96     mService = new XQServiceRequest(serviceName, XQOP_MESSAGE_SEND_WITH_ID, false);
    96     mAiwRequest = appMng.create(XQI_MESSAGE_SEND, XQOP_MESSAGE_SEND_WITH_ID, false); // embedded 
    97     bool sending = doSendMessageToNumber(*mService, mNumber, mDisplayName, mContactId);
    97     if (mAiwRequest) {
    98     connect(mService, SIGNAL(requestCompleted(QVariant)), this, SLOT(requestCompleted(QVariant)));
    98         connect(mAiwRequest, SIGNAL(requestOk(const QVariant&)), 
    99     connect(mService, SIGNAL(requestError(int)), this, SLOT(requestError(int)));
    99                 this, SLOT(handleRequestCompleted(const QVariant&)));
       
   100         connect(mAiwRequest, SIGNAL(requestError(int,const QString&)), 
       
   101                 this, SLOT(handleError(int,const QString&)));
       
   102 
       
   103         QList<QVariant> arguments;
       
   104         arguments.append(QVariant(mNumber));
       
   105         arguments.append(QVariant(mContactId));
       
   106         arguments.append(QVariant(mDisplayName));
       
   107         mAiwRequest->setArguments(arguments);
       
   108         mAiwRequest->setSynchronous(false);
       
   109         sending = mAiwRequest->send();
       
   110     }
   100     return sending;
   111     return sending;
       
   112 }
       
   113 
       
   114 
       
   115 // ----------------------------------------------------------------------------
       
   116 //
       
   117 // ----------------------------------------------------------------------------
       
   118 //
       
   119 void LogsMessage::cancelServiceRequest()
       
   120 {
       
   121     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::cancelServiceRequest()" )
       
   122     delete mAiwRequest;
       
   123     mAiwRequest = 0;
       
   124     LOGS_QDEBUG( "logs [ENG] <- LogsMessage::cancelServiceRequest()" )
   101 }
   125 }
   102 
   126 
   103 // ----------------------------------------------------------------------------
   127 // ----------------------------------------------------------------------------
   104 //
   128 //
   105 // ----------------------------------------------------------------------------
   129 // ----------------------------------------------------------------------------
   106 //
   130 //
   107 bool LogsMessage::sendMessageToNumber(
   131 LogsMessage* LogsMessage::sendMessageToNumber(
   108         const QString& number, const QString& displayName, unsigned int contactId)
   132         const QString& number, const QString& displayName, unsigned int contactId)
   109 {
   133 {
   110     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessageToNumber()" )
   134     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessageToNumber()" )
   111     QString serviceName("messaging.");     
   135     LogsMessage* message = new LogsMessage(contactId, number, displayName);
   112     serviceName.append(XQI_MESSAGE_SEND);
   136     message->sendMessage();
   113     XQServiceRequest req(serviceName, XQOP_MESSAGE_SEND_WITH_ID, false);
   137     return message;
   114     return doSendMessageToNumber(req, number, displayName, contactId);
       
   115 }
   138 }
   116 
   139 
   117 // ----------------------------------------------------------------------------
   140 // ----------------------------------------------------------------------------
   118 //
   141 //
   119 // ----------------------------------------------------------------------------
   142 // ----------------------------------------------------------------------------
   120 //
   143 //
   121 void LogsMessage::requestCompleted(const QVariant& /*value*/)
   144 void LogsMessage::handleRequestCompleted(const QVariant& result)
   122 {
   145 {
   123     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::requestCompleted()" )
   146     LOGS_QDEBUG( "logs [ENG] <-> LogsMessage::handleRequestCompleted()" )
       
   147     Q_UNUSED(result)
       
   148     cancelServiceRequest();
   124 }
   149 }
   125 
   150 
   126 // ----------------------------------------------------------------------------
   151 // ----------------------------------------------------------------------------
   127 //
   152 //
   128 // ----------------------------------------------------------------------------
   153 // ----------------------------------------------------------------------------
   129 //
   154 //
   130 void LogsMessage::requestError(int /*err*/)
   155 void LogsMessage::handleError(int errorCode, const QString& errorMessage)
   131 {
   156 {
   132     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::requestError()" )
   157     LOGS_QDEBUG_4( "logs [ENG] <-> LogsMessage::handleError(): ", errorCode,
   133 }
   158             " ,msg: ", errorMessage)
   134 
   159     Q_UNUSED(errorCode)
   135 // ----------------------------------------------------------------------------
   160     Q_UNUSED(errorMessage)
   136 //
   161     cancelServiceRequest();
   137 // ----------------------------------------------------------------------------
       
   138 //
       
   139 bool LogsMessage::doSendMessageToNumber(
       
   140         XQServiceRequest& request, const QString& number, 
       
   141         const QString& displayName, unsigned int contactId)
       
   142 {
       
   143     LOGS_QDEBUG_4( "logs [ENG] -> LogsMessage::doSendMessageToNumber(), (num, name, id)", 
       
   144             number, displayName, contactId )
       
   145 
       
   146     QList<QVariant> arguments;
       
   147     arguments.append(QVariant(number));
       
   148     arguments.append(QVariant(contactId));
       
   149     arguments.append(QVariant(displayName));
       
   150     request.setArguments(arguments);
       
   151     XQRequestInfo info;
       
   152     info.setForeground(true);
       
   153     request.setInfo(info);
       
   154     QVariant retValue;
       
   155     bool ret = request.send(retValue);
       
   156     LOGS_QDEBUG_2( "logs [ENG] <- LogsMessage::doSendMessageToNumber()", ret )
       
   157     
       
   158     return ret;
       
   159 }
   162 }
   160 
   163 
   161 // End of file
   164 // End of file
   162 
   165