smf/smfservermodule/smfclient/smfclient.cpp
changeset 26 83d6a149c755
parent 25 a180113055cb
--- 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 <qdebug.h>
+#include <smfcredmgrclient.h>
 
 #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<SmfProvider>* 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 = "<<newState;
+	}
+
+void SmfClient::error(QProcess::ProcessError error)
+	{
+	qDebug()<<"Inside SmfClient::error(), error = "<<error;
+	}
+
+void SmfClient::finished(int exitCode, QProcess::ExitStatus exitStatus)
+	{
+	qDebug()<<"Inside SmfClient::finished()";
+	qDebug()<<"exitcode = "<<exitCode;
+	qDebug()<<"exitStatus = "<<exitStatus;
+	}
 
 /**
 * This method returns the error message for the mentioned argument error code
@@ -333,7 +419,20 @@
 			str.append("Smf Error: Invalid relation");
 			break;
 			
-		case SmfUnknownError:							//66
+		case SmfInvalidGuid:							//66
+			str.append("Smf Error: Invalid Guid");
+			break;
+		case SmfInvalidContactUrl:						//67
+			str.append("Smf Error: Invalid ContactUrl");		
+			break;
+		case SmfInvalidLocalId:							//68
+			str.append("Smf Error: Invalid LocalId");
+			break;
+		case SmfContactExists:							//69
+			str.append("Smf Error: Contact Already Exists");
+			break;
+			
+		case SmfUnknownError:							//70
 		default:
 			str.append("Smf Error: Unknown Error");
 		}