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 { |
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 |