diff -r a180113055cb -r 83d6a149c755 smf/smfservermodule/smfclient/smfclient.cpp --- a/smf/smfservermodule/smfclient/smfclient.cpp Thu Sep 23 17:43:31 2010 +0530 +++ b/smf/smfservermodule/smfclient/smfclient.cpp Mon Oct 11 21:59:54 2010 +0530 @@ -20,6 +20,7 @@ */ #include +#include #include "smfclient.h" #include "smfclient_p.h" @@ -29,6 +30,7 @@ //Create instance of the private wrapper m_private = new SmfClientPrivate(this); m_providerList = NULL; + m_authAppProcess = NULL; } SmfClient::~SmfClient() @@ -38,24 +40,108 @@ delete m_private; m_private = NULL; } + + if(m_authAppProcess) + delete m_authAppProcess; } QList* SmfClient::GetServices(const QString& serviceName) { qDebug()<<"Inside SmfClient::GetServices()"; - if(m_providerList) + //if serviceName is not empty + if(serviceName.size()) { - delete m_providerList; - m_providerList = NULL; + if(m_providerList) + { + delete m_providerList; + m_providerList = NULL; + } + //Getting the data synchronously + m_providerList = m_private->GetServices(serviceName); + qDebug()<<"After m_private->GetServices"; + + return m_providerList; } - //Getting the data synchronously - m_providerList = m_private->GetServices(serviceName); - qDebug()<<"After m_private->GetServices"; - - return m_providerList; + else + return NULL; + } + +SMFProviderAuthorizationStatus SmfClient::checkAuthorization(const SmfProvider& provider) + { + SMFProviderAuthorizationStatus status = SMFProviderAuthStatusUnknown; + if(!provider.authenticationAppId().isEmpty()) + { + SmfCredMgrClient csmClient; + QString authAppId = provider.authenticationAppId(); + if(csmClient.CheckServiceAuthorization(authAppId)) + status = SMFProviderAuthStatusAuthorised; + else + status = SMFProviderAuthStatusUnauthorised; + } + return status; } +SmfError SmfClient::loginToService(SmfProvider* provider) + { + if(!m_authAppProcess) + m_authAppProcess = new QProcess(); + + connect(m_authAppProcess, SIGNAL(started()), this, SLOT(started())); + connect(m_authAppProcess, SIGNAL(stateChanged(QProcess::ProcessState)), + this, SLOT(stateChanged(QProcess::ProcessState))); + connect(m_authAppProcess, SIGNAL(error ( QProcess::ProcessError)), + this, SLOT(error ( QProcess::ProcessError))); + + connect(m_authAppProcess, SIGNAL(finished(int, QProcess::ExitStatus)), + this, SLOT(finished(int, QProcess::ExitStatus))); + + m_authAppProcess->start(provider->authenticationAppName()); + m_authAppProcess->waitForFinished(-1); + return SmfNoError; + } + + +SmfError SmfClient::logoutOfService(SmfProvider* provider) + { + if(!m_authAppProcess) + m_authAppProcess = new QProcess(); + + connect(m_authAppProcess, SIGNAL(started()), this, SLOT(started())); + connect(m_authAppProcess, SIGNAL(stateChanged(QProcess::ProcessState)), + this, SLOT(stateChanged(QProcess::ProcessState))); + connect(m_authAppProcess, SIGNAL(error ( QProcess::ProcessError)), + this, SLOT(error ( QProcess::ProcessError))); + + connect(m_authAppProcess, SIGNAL(finished(int, QProcess::ExitStatus)), + this, SLOT(finished(int, QProcess::ExitStatus))); + + m_authAppProcess->start(provider->authenticationAppName()); + m_authAppProcess->waitForFinished(-1); + return SmfNoError; + } + +void SmfClient::started() + { + qDebug()<<"Inside SmfClient::started()"; + } + +void SmfClient::stateChanged(QProcess::ProcessState newState) + { + qDebug()<<"Inside SmfClient::stateChanged(), state = "<