diff -r 5d007b20cfd0 -r cd2778e5acfe qthighway/examples/serviceapp/src/serviceapp.cpp --- a/qthighway/examples/serviceapp/src/serviceapp.cpp Tue Aug 31 16:02:37 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1070 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published by -* the Free Software Foundation, version 2.1 of the License. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with this program. If not, -* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". -* -* Description: -* -*/ - -#include "xqservicelog.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "testservicedata.h" -#include "serviceapp.h" -#include - -ServiceApp::ServiceApp(QWidget *parent, Qt::WFlags f) - : QWidget(parent, f), - mDialService(NULL), - mUriService(NULL), - mFileService(NULL), - mNewDialService(NULL), - mNewFileService(NULL), - mNewUriService(NULL) -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::ServiceApp"); - if (XQServiceUtil::isService()) - { - mDialService = new DialerService(this); - mUriService = new UriService(this); - mFileService = new FileService(this); - mNewDialService = new NewDialerService(this); - mNewUriService = new NewUriService(this); - mNewFileService = new NewFileService(this); - } - /* Adjust the palette */ -#if defined(Q_WS_S60) - QPalette p = qApp->palette(); - QColor color(192,192,192); - QColor bg(201,250,250); - p.setColor(QPalette::Highlight, color.lighter(200)); - p.setColor(QPalette::Text, Qt::black); - p.setColor(QPalette::Base, bg); - p.setColor(QPalette::WindowText, Qt::black); - p.setColor(QPalette::Window, bg); - p.setColor(QPalette::ButtonText, Qt::black); - p.setColor(QPalette::Button, color.lighter(150)); - p.setColor(QPalette::Link, QColor(240,40,40)); - - qApp->setPalette(p); -#endif - - QPushButton *quitButton = new QPushButton(tr("Quit")); - QPushButton *answerButtonDial = new QPushButton(tr("Dial answer")); - QPushButton *answerButtonUri = new QPushButton(tr("Uri answer")); - QPushButton *answerButtonFile = new QPushButton(tr("File answer")); - connect(quitButton, SIGNAL(clicked()), this, SLOT(quit())); - connect(answerButtonDial, SIGNAL(clicked()), this, SLOT(answerDial())); - connect(answerButtonUri, SIGNAL(clicked()), this, SLOT(answerUri())); - connect(answerButtonFile, SIGNAL(clicked()), this, SLOT(answerFile())); - - /* - mEndCallButton = new QPushButton(tr("End Call")); - mEndCallButton->setEnabled(false); - connect(mEndCallButton, SIGNAL(clicked()), this, SLOT(endCall())); - */ - bool isService = XQServiceUtil::isService(); - QString interface = XQServiceUtil::interfaceName(); - QString operation = XQServiceUtil::operationName(); - - QString t = "SERVICEAPP:\n"; - t = t + (isService ? " Service launch\n" : " Normal launch\n"); - t = t + (XQServiceUtil::isEmbedded() ? " Embedded\n" : " Not embedded\n"); - t = t + (" Interface=" + interface + "\n"); - t = t + (" Operation=" + operation + "\n"); - - QLabel *title = new QLabel(t); - - mLabel = new QLabel(""); - mNumber = new QLineEdit(""); - - QVBoxLayout *vl = new QVBoxLayout; - vl->setMargin(0); - vl->setSpacing(0); - - vl->addWidget(quitButton); - vl->addWidget(answerButtonDial); - vl->addWidget(answerButtonUri); - vl->addWidget(answerButtonFile); - vl->addWidget(title); - vl->addWidget(mLabel); - vl->addWidget(mNumber); - - setLayout(vl); - -#if defined(Q_WS_X11) || defined(Q_WS_WIN) - setFixedSize(QSize(360,640)); // nHD -#elif defined(Q_WS_S60) - // showMaximized(); - showFullScreen(); -#endif -// new DialerService(this); -} - - -ServiceApp::~ServiceApp() -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::~ServiceApp"); - delete mDialService; - delete mUriService; - delete mFileService; -} - -void ServiceApp::quit() -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::quit"); - qApp->quit(); -} - -void ServiceApp::answerDial() -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::answerDial"); - if (mDialService && mDialService->asyncAnswer()) - { - mDialService->complete(mNumber->text()); - } - if (mNewDialService && mNewDialService->asyncAnswer()) - { - mNewDialService->complete(mNumber->text()); - } -} - - -void ServiceApp::answerUri() -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::answerUri"); - if (mUriService && mUriService->asyncAnswer()) - { - mUriService->complete(true); - } - if (mNewUriService && mNewUriService->asyncAnswer()) - { - mNewUriService->complete(true); - } -} - -void ServiceApp::answerFile() -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::answerFile"); - if (mFileService && mFileService->asyncAnswer()) - { - mFileService->complete(true); - } - if (mNewFileService && mNewFileService->asyncAnswer()) - { - mNewFileService->complete(true); - } -} - - - -void ServiceApp::endCall() -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::endCall"); - //QVBoxLayout *vl = qobject_cast(layout()) ; - //vl->removeWidget(mEndCallButton); - - //XQServiceUtil::toBackground(true); -} - -void ServiceApp::setLabelNumber(QString label,QString number) -{ - XQSERVICE_DEBUG_PRINT("ServiceApp::setLabelNumber"); - mLabel->setText(label); - mNumber->setText(number); -} - -// ----------DialerService--------------- - -DialerService::DialerService(ServiceApp* parent) -: XQServiceProvider(QLatin1String("com.nokia.services.serviceapp.Dialer"),parent), - mServiceApp(parent) -{ - XQSERVICE_DEBUG_PRINT("DialerService::DialerService"); - publishAll(); -} - -DialerService::~DialerService() -{ - XQSERVICE_DEBUG_PRINT("DialerService::~DialerService"); -} - -void DialerService::complete(QString number) -{ - XQSERVICE_DEBUG_PRINT("DialerService::complete"); - - // Complete all IDs - foreach (quint32 reqId, mAsyncReqIds) - { - XQSERVICE_DEBUG_PRINT("DialerService::complete %d", reqId); - completeRequest(reqId, number.toInt()); - } -} - -int DialerService::dial(const QString& number, bool asyncAnswer) -{ - Q_UNUSED(asyncAnswer); - - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,DialerService::dial", qPrintable(testCase)); - - XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(), info.clientSecureId(), info.clientVendorId()); - QSet caps = info.clientCapabilities(); - QSetIterator i(caps); - while (i.hasNext()) - qDebug() << "Has capability " << i.next(); - XQSERVICE_DEBUG_PRINT("\tRequest info: embed=%d,sync=%d", info.isEmbedded(), info.isSynchronous()); - - bool isAsync = !info.isSynchronous(); - QString label = "Dialer::dial:\n"; - label += QString("number=%1\n").arg(number); - label += QString("async=%1\n").arg(isAsync); - - connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered())); - - mNumber = number ; - mServiceApp->setLabelNumber(label, number); - int ret = 0; - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - else - { - ret = number.toInt(); - } - return ret; -} - -CntServicesContactList DialerService::testContactList(CntServicesContactList list) -{ - XQSERVICE_DEBUG_PRINT("DialerService::testContactList"); - showRecipients(list); - - // Create output - CntServicesContact cnt1; - cnt1.mDisplayName = "Test1-Return"; - cnt1.mPhoneNumber = "060-1111111"; - cnt1.mEmailAddress = "test1.return@nokia.com"; - - CntServicesContact cnt2; - cnt2.mDisplayName = "Test1-Return"; - cnt2.mPhoneNumber = "060-2222222"; - cnt2.mEmailAddress = "test2.return@nokia.com"; - - CntServicesContactList ret; - ret.append(cnt1); - ret.append(cnt2); - - return ret; - -} - -QVariant DialerService::testVariant(QVariant variant) -{ - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,DialerService::testVariant", qPrintable(testCase)); - - XQSERVICE_DEBUG_PRINT("DialerService::testVariant::variant(%d,%d,%s)", - variant.type(), variant.userType(), variant.typeName()); - XQSERVICE_DEBUG_PRINT("DialerService::testVariant::variant value=%s", qPrintable(variant.toString())); - - if (variant.typeName() == QLatin1String("QStringList")) - { - qDebug() << "DialerService::testVariant QStringList"; - QStringList ret = variant.toStringList(); - return qVariantFromValue(ret); - } - else if (variant.typeName() == QLatin1String("XQShabarableFile")) - { - qDebug() << "DialerService::testVariant XQShabarableFile"; - XQSharableFile sf = variant.value(); - - RFile file; - bool ok = sf.getHandle( file ); - if (ok) - { - HBufC8* data = HBufC8::NewL(100); - TPtr8 ptr = data->Des(); - TInt err = file.Read( ptr ); - QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length()); - XQSERVICE_DEBUG_PRINT("DialerService::testVariant ::file content,%d,%s", err, qPrintable(text)); - sf.close(); - delete data; - } - - return QVariant(ok); - - } - else if (variant.typeName() == QLatin1String("XQRequestInfo")) - { - qDebug() << "DialerService::testVariant XQRequestInfo"; - XQRequestInfo info = variant.value(); - QStringList keys = info.infoKeys(); - foreach (QString key, keys) - { - XQSERVICE_DEBUG_PRINT("DialerService::testVariant: info %s=%s", - qPrintable(key), - qPrintable(info.info(key).toString())); - } - - return qVariantFromValue(info); - - } - else if (variant.typeName() == QLatin1String("CntServicesContactList")) - { - qDebug() << "DialerService::testVariant CntServicesContactList"; - // Show input - showRecipients(variant); - - // Create output - CntServicesContact cnt1; - cnt1.mDisplayName = "Test1-Return"; - cnt1.mPhoneNumber = "060-1111111"; - cnt1.mEmailAddress = "test1.return@nokia.com"; - - CntServicesContact cnt2; - cnt2.mDisplayName = "Test1-Return"; - cnt2.mPhoneNumber = "060-2222222"; - cnt2.mEmailAddress = "test2.return@nokia.com"; - - CntServicesContactList list; - list.append(cnt1); - list.append(cnt2); - - // Return contact list back - return qVariantFromValue(list); - } - else - { - return variant.toString(); - } -} - -void DialerService::handleClientDisconnect() -{ - XQSERVICE_DEBUG_PRINT("DialerService::handleClientDisconnect"); - - // Get the info of the cancelled request - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tDisconnected request info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId()); - - // Just quit service application if client ends - mServiceApp->quit(); -} - -void DialerService::handleAnswerDelivered() -{ - XQSERVICE_DEBUG_PRINT("DialerService::handleAnswerDelivered"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId()); - // Done - mAsyncReqIds.remove(info.clientSecureId()); -} - - - -void DialerService::showRecipients(QVariant &value) -{ - CntServicesContactList list; - if(value.canConvert()) - { - qDebug() << "DialerService::showRecipients: canConvert"; - list = qVariantValue(value); - } - else - { - qDebug() << "DialerService::showRecipients: canConvert NOK"; - return; - } - - showRecipients(list); -} - -void DialerService::showRecipients(CntServicesContactList &list) -{ - if (list.count() == 0) - { - qDebug() << "DialerService::showRecipients(2): Count==0"; - } - else - { - for (int i = 0; i < list.count(); ++i) - { - qDebug() << "DialerService::showRecipients(2)[" << i << "]=" << list[i].mDisplayName; - qDebug() << "DialerService::showRecipients(2)[" << i << "]=" << list[i].mPhoneNumber; - qDebug() << "DialerService::showRecipients(2)[" << i << "]=" << list[i].mEmailAddress; - } - } -} - - -// ----------New dialler service--------------- - -NewDialerService::NewDialerService(ServiceApp* parent) -: XQServiceProvider(QLatin1String("serviceapp.Dialer"),parent), -mServiceApp(parent) -{ - XQSERVICE_DEBUG_PRINT("NewDialerService::NewDialerService"); - publishAll(); -} - -NewDialerService::~NewDialerService() -{ - XQSERVICE_DEBUG_PRINT("NewDialerService::~NewDialerService"); -} - -void NewDialerService::complete(QString number) -{ - XQSERVICE_DEBUG_PRINT("NewDialerService::complete"); - - // Complete all IDs - foreach (quint32 reqId, mAsyncReqIds) - { - XQSERVICE_DEBUG_PRINT("NewDialerService::complete %d", reqId); - completeRequest(reqId, number.toInt()); - } -} - -int NewDialerService::dial(const QString& number, bool asyncAnswer) -{ - Q_UNUSED(asyncAnswer); - - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewDialerService::dial", qPrintable(testCase)); - - XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(), info.clientSecureId(), info.clientVendorId()); - QSet caps = info.clientCapabilities(); - QSetIterator i(caps); - while (i.hasNext()) - qDebug() << "Has capability " << i.next(); - XQSERVICE_DEBUG_PRINT("\tRequest info: embed=%d,sync=%d", info.isEmbedded(), info.isSynchronous()); - - bool isAsync = !info.isSynchronous(); - - QString label = "NewDialer::dial:\n"; - label += QString("number=%1\n").arg(number); - label += QString("async=%1\n").arg(isAsync); - - connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered())); - - mNumber = number ; - mServiceApp->setLabelNumber(label, number); - int ret = 0; - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - else - { - ret = number.toInt(); - } - return ret; -} - -CntServicesContactList NewDialerService::testContactList(CntServicesContactList list) -{ - XQSERVICE_DEBUG_PRINT("NewDialerService::testContactList"); - showRecipients(list); - - // Create output - CntServicesContact cnt1; - cnt1.mDisplayName = "Test1-Return"; - cnt1.mPhoneNumber = "060-1111111"; - cnt1.mEmailAddress = "test1.return@nokia.com"; - - CntServicesContact cnt2; - cnt2.mDisplayName = "Test1-Return"; - cnt2.mPhoneNumber = "060-2222222"; - cnt2.mEmailAddress = "test2.return@nokia.com"; - - CntServicesContactList ret; - ret.append(cnt1); - ret.append(cnt2); - - return ret; - -} - -QVariant NewDialerService::testVariant(QVariant variant) -{ - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewDialerService::testVariant", qPrintable(testCase)); - - XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant::variant(%d,%d,%s)", - variant.type(), variant.userType(), variant.typeName()); - XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant::variant value=%s", qPrintable(variant.toString())); - - if (variant.typeName() == QLatin1String("QStringList")) - { - QStringList ret = variant.toStringList(); - return qVariantFromValue(ret); - } - else if (variant.typeName() == QLatin1String("TestServiceDataList")) - { - qDebug() << "DialerService::testVariant TestServiceDataList"; - TestServiceDataList list; - if(variant.canConvert()) - { - qDebug() << "DialerService::TestServiceDataList: canConvert OK"; - list = qVariantValue(variant); - for (int i = 0; i < list.count(); ++i) - { - qDebug() << "DialerService::TestServiceDataList[" << i << "]=" << list[i].mType; - qDebug() << "DialerService::TestServiceDataList[" << i << "]=" << list[i].mData.toString(); - } - } - else - { - qDebug() << "DialerService::TestServiceDataList: canConvert NOK"; - } - - TestServiceDataList resultList; - QVariant v1; - QVariant v2; - QVariant v3; - v1.setValue((int)99); - v2.setValue((bool)false); - v3.setValue(QString("Variant3 return")); - TestServiceData data1(1, v1); - TestServiceData data2(2, v2); - TestServiceData data3(3, v3); - resultList.append(data1); - resultList.append(data2); - resultList.append(data3); - - // Return some data back - return qVariantFromValue(resultList); - } - else if (variant.typeName() == QLatin1String("XQShabarableFile")) - { - XQSharableFile sf = variant.value(); - - RFile file; - bool ok = sf.getHandle( file ); - if (ok) - { - HBufC8* data = HBufC8::NewL(100); - TPtr8 ptr = data->Des(); - TInt err = file.Read( ptr ); - QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length()); - XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant ::file content,%d,%s", err, qPrintable(text)); - sf.close(); - delete data; - } - - return QVariant(ok); - - } - else if (variant.typeName() == QLatin1String("XQRequestInfo")) - { - XQRequestInfo info = variant.value(); - QStringList keys = info.infoKeys(); - foreach (QString key, keys) - { - XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant: info %s=%s", - qPrintable(key), - qPrintable(info.info(key).toString())); - } - - return qVariantFromValue(info); - - } - else if (variant.typeName() == QLatin1String("CntServicesContactList")) - { - // Show input - showRecipients(variant); - - // Create output - CntServicesContact cnt1; - cnt1.mDisplayName = "Test1-Return"; - cnt1.mPhoneNumber = "060-1111111"; - cnt1.mEmailAddress = "test1.return@nokia.com"; - - CntServicesContact cnt2; - cnt2.mDisplayName = "Test1-Return"; - cnt2.mPhoneNumber = "060-2222222"; - cnt2.mEmailAddress = "test2.return@nokia.com"; - - CntServicesContactList list; - list.append(cnt1); - list.append(cnt2); - - // Return contact list back - return qVariantFromValue(list); - } - else if (variant.typeName() == QLatin1String("QByteArray")) - { - QByteArray val = variant.value(); - qDebug() << "DialerService::QByteArray size=" << val.size(); - return qVariantFromValue(val); - } - else - { - return variant.toString(); - } -} - -void NewDialerService::handleClientDisconnect() -{ - XQSERVICE_DEBUG_PRINT("NewDialerService::handleClientDisconnect"); - - // Get the info of the cancelled request - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tDisconnected request info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId()); - - // Just quit service application if client ends - mServiceApp->quit(); -} - -void NewDialerService::handleAnswerDelivered() -{ - XQSERVICE_DEBUG_PRINT("NewDialerService::handleAnswerDelivered"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId()); - // Done - mAsyncReqIds.remove(info.clientSecureId()); -} - - - -void NewDialerService::showRecipients(QVariant &value) -{ - CntServicesContactList list; - if(value.canConvert()) - { - qDebug() << "NewDialerService::showRecipients: canConvert"; - list = qVariantValue(value); - } - else - { - qDebug() << "NewDialerService::showRecipients: canConvert NOK"; - return; - } - - showRecipients(list); -} - -void NewDialerService::showRecipients(CntServicesContactList &list) -{ - if (list.count() == 0) - { - qDebug() << "NewDialerService::showRecipients(2): Count==0"; - } - else - { - for (int i = 0; i < list.count(); ++i) - { - qDebug() << "NewDialerService::showRecipients(2)[" << i << "]=" << list[i].mDisplayName; - qDebug() << "NewDialerService::showRecipients(2)[" << i << "]=" << list[i].mPhoneNumber; - qDebug() << "NewDialerService::showRecipients(2)[" << i << "]=" << list[i].mEmailAddress; - } - } -} - - - -Q_IMPLEMENT_USER_METATYPE(CntServicesContact) -Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(CntServicesContactList) - -Q_IMPLEMENT_USER_METATYPE(TestServiceData) -Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(TestServiceDataList) - -// ----------UriService--------------- - -UriService::UriService(ServiceApp* parent) -: XQServiceProvider(QLatin1String("com.nokia.services.serviceapp.com.nokia.symbian.IUriView"),parent), - mServiceApp(parent) - -{ - XQSERVICE_DEBUG_PRINT("UriService::UriService"); - publishAll(); -} - -UriService::~UriService() -{ - XQSERVICE_DEBUG_PRINT("UriService::~UriService"); -} - -void UriService::complete(bool ok) -{ - Q_UNUSED(ok) - XQSERVICE_DEBUG_PRINT("UriService::complete"); - // Complete all IDs - foreach (quint32 reqId, mAsyncReqIds) - { - XQSERVICE_DEBUG_PRINT("UriService::complete %d", reqId); - completeRequest(reqId, QVariant(mRetValue)); - } -} - -bool UriService::view(const QString& uri) -{ - XQSERVICE_DEBUG_PRINT("UriService::view(1)"); - return view(uri, true); -} - -bool UriService::view(const QString& uri, bool retValue) -{ - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,UriService::view", qPrintable(testCase)); - - QString label = "IUriView::view\n:"; - label += QString ("Uri=%1\n").arg(uri); - label += QString ("retValue=%1\n").arg(retValue); - QString param = QString ("retValue=%1\n").arg(retValue); - - bool isAsync = !info.isSynchronous();; - connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered())); - - mRetValue = retValue; - mServiceApp->setLabelNumber(label,param); - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - - return retValue; -} - -void UriService::handleClientDisconnect() -{ - XQSERVICE_DEBUG_PRINT("UriService::handleClientDisconnect"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId()); - - mAsyncReqIds.remove(info.clientSecureId()); - mServiceApp->quit(); -} - -void UriService::handleAnswerDelivered() -{ - XQSERVICE_DEBUG_PRINT("UriService::handleAnswerDelivered"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId()); - // Done - mAsyncReqIds.remove(info.clientSecureId()); - -} - -// ----------NewUriService--------------- - -NewUriService::NewUriService(ServiceApp* parent) -: XQServiceProvider(QLatin1String("serviceapp.com.nokia.symbian.IUriView"),parent), -mServiceApp(parent) - -{ - XQSERVICE_DEBUG_PRINT("NewUriService::NewUriService"); - publishAll(); -} - -NewUriService::~NewUriService() -{ - XQSERVICE_DEBUG_PRINT("NewUriService::~NewUriService"); -} - -void NewUriService::complete(bool ok) -{ - Q_UNUSED(ok); - XQSERVICE_DEBUG_PRINT("NewUriService::complete"); - // Complete all IDs - foreach (quint32 reqId, mAsyncReqIds) - { - XQSERVICE_DEBUG_PRINT("NewUriService::complete %d", reqId); - completeRequest(reqId, QVariant(mRetValue)); - } -} - -bool NewUriService::view(const QString& uri) -{ - XQSERVICE_DEBUG_PRINT("NewUriService::view(1)"); - return view(uri, true); -} - -bool NewUriService::view(const QString& uri, bool retValue) -{ - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewUriService::view", qPrintable(testCase)); - - QString label = "New IUriView::view\n:"; - label += QString ("Uri=%1\n").arg(uri); - label += QString ("retValue=%1\n").arg(retValue); - QString param = QString ("retValue=%1\n").arg(retValue); - - bool isAsync = !info.isSynchronous();; - connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered())); - - mRetValue = retValue; - mServiceApp->setLabelNumber(label,param); - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - - return retValue; -} - -void NewUriService::handleClientDisconnect() -{ - XQSERVICE_DEBUG_PRINT("NewUriService::handleClientDisconnect"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId()); - - mAsyncReqIds.remove(info.clientSecureId()); - mServiceApp->quit(); -} - -void NewUriService::handleAnswerDelivered() -{ - XQSERVICE_DEBUG_PRINT("NewUriService::handleAnswerDelivered"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId()); - // Done - mAsyncReqIds.remove(info.clientSecureId()); - -} - - -// ----------FileService--------------- - -FileService::FileService(ServiceApp* parent) -: XQServiceProvider(QLatin1String("com.nokia.services.serviceapp.com.nokia.symbian.IFileView"),parent), - mServiceApp(parent) - -{ - XQSERVICE_DEBUG_PRINT("FileService::FileService"); - publishAll(); -} - -FileService::~FileService() -{ - XQSERVICE_DEBUG_PRINT("FileService::~FileService"); -} - -void FileService::complete(bool ok) -{ - XQSERVICE_DEBUG_PRINT("FileService::complete"); - // Complete all - foreach (quint32 reqId, mAsyncReqIds) - { - XQSERVICE_DEBUG_PRINT("FileService::complete %d", reqId); - completeRequest(reqId, QVariant(ok)); - } -} - -bool FileService::view(QString file) -{ - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,FileService::view", qPrintable(testCase)); - - QString label = "IFileView::view\n:"; - QString param = QString ("File=%1\n").arg(file); - - bool isAsync = !info.isSynchronous();; - connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered())); - - mServiceApp->setLabelNumber(label,param); - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - - return true; -} - - -bool FileService::view(XQSharableFile sf) -{ - XQSERVICE_DEBUG_PRINT("FileService::view(XQSharebleFile)"); - QString label = "IFile::view\n:"; - QString param = QString ("File=%1\n").arg(sf.fileName()); - - RFile file; - bool ok = sf.getHandle( file ); - if (ok) - { - HBufC8* data = HBufC8::NewL(100); - TPtr8 ptr = data->Des(); - TInt err = file.Read( ptr ); - QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length()); - XQSERVICE_DEBUG_PRINT("FileService::file read,%d,%s", err, qPrintable(text)); - sf.close(); - delete data; - } - - XQRequestInfo info = requestInfo(); - bool isAsync = !info.isSynchronous();; - - mServiceApp->setLabelNumber(label,param); - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - return true; -} - - -void FileService::handleClientDisconnect() -{ - XQSERVICE_DEBUG_PRINT("FileService::handleClientDisconnect"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId()); - - mAsyncReqIds.remove(info.clientSecureId()); - mServiceApp->quit(); -} - - -void FileService::handleAnswerDelivered() -{ - XQSERVICE_DEBUG_PRINT("FileService::handleAnswerDelivered"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId()); - // Done - mAsyncReqIds.remove(info.clientSecureId()); - -} - - -// ----------NewFileService--------------- - -NewFileService::NewFileService(ServiceApp* parent) -: XQServiceProvider(QLatin1String("serviceapp.com.nokia.symbian.IFileView"),parent), -mServiceApp(parent) - -{ - XQSERVICE_DEBUG_PRINT("NewFileService::NewFileService"); - publishAll(); -} - -NewFileService::~NewFileService() -{ - XQSERVICE_DEBUG_PRINT("NewFileService::~NewFileService"); -} - -void NewFileService::complete(bool ok) -{ - XQSERVICE_DEBUG_PRINT("NewFileService::complete"); - // Complete all - foreach (quint32 reqId, mAsyncReqIds) - { - XQSERVICE_DEBUG_PRINT("NewFileService::complete %d", reqId); - completeRequest(reqId, QVariant(ok)); - } -} - -bool NewFileService::view(QString file) -{ - XQRequestInfo info = requestInfo(); - QString testCase = (info.info(TESTCASE_INFO_KEY)).toString(); - XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewFileService::view", qPrintable(testCase)); - - QString label = "New IFileView::view\n:"; - QString param = QString ("File=%1\n").arg(file); - - bool isAsync = !info.isSynchronous();; - connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered())); - - mServiceApp->setLabelNumber(label,param); - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - - return true; -} - - -bool NewFileService::view(XQSharableFile sf) -{ - XQSERVICE_DEBUG_PRINT("NewFileService::view(XQSharebleFile)"); - QString label = "IFile::view\n:"; - QString param = QString ("File=%1\n").arg(sf.fileName()); - - RFile file; - bool ok = sf.getHandle( file ); - if (ok) - { - HBufC8* data = HBufC8::NewL(100); - TPtr8 ptr = data->Des(); - TInt err = file.Read( ptr ); - QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length()); - XQSERVICE_DEBUG_PRINT("NewFileService::file read,%d,%s", err, qPrintable(text)); - sf.close(); - delete data; - } - - XQRequestInfo info = requestInfo(); - bool isAsync = !info.isSynchronous();; - - mServiceApp->setLabelNumber(label,param); - if (isAsync) - { - mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync()); - connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect())); - } - return true; -} - - -void NewFileService::handleClientDisconnect() -{ - XQSERVICE_DEBUG_PRINT("NewFileService::handleClientDisconnect"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId()); - - mAsyncReqIds.remove(info.clientSecureId()); - mServiceApp->quit(); -} - - -void NewFileService::handleAnswerDelivered() -{ - XQSERVICE_DEBUG_PRINT("NewFileService::handleAnswerDelivered"); - XQRequestInfo info = requestInfo(); - XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId()); - // Done - mAsyncReqIds.remove(info.clientSecureId()); - -} -