smf/smfservermodule/smfclient/smfclient.cpp
changeset 26 83d6a149c755
parent 25 a180113055cb
equal deleted inserted replaced
25:a180113055cb 26:83d6a149c755
    18  * class is mandatory before using any other interface.
    18  * class is mandatory before using any other interface.
    19  *
    19  *
    20  */
    20  */
    21 
    21 
    22 #include <qdebug.h>
    22 #include <qdebug.h>
       
    23 #include <smfcredmgrclient.h>
    23 
    24 
    24 #include "smfclient.h"
    25 #include "smfclient.h"
    25 #include "smfclient_p.h"
    26 #include "smfclient_p.h"
    26 
    27 
    27 SmfClient::SmfClient()
    28 SmfClient::SmfClient()
    28 	{
    29 	{
    29 	//Create instance of the private wrapper
    30 	//Create instance of the private wrapper
    30 	m_private = new SmfClientPrivate(this);
    31 	m_private = new SmfClientPrivate(this);
    31 	m_providerList = NULL;
    32 	m_providerList = NULL;
       
    33 	m_authAppProcess = NULL;
    32 	}
    34 	}
    33 
    35 
    34 SmfClient::~SmfClient()
    36 SmfClient::~SmfClient()
    35 	{
    37 	{
    36 	if(m_private)
    38 	if(m_private)
    37 		{
    39 		{
    38 		delete m_private;
    40 		delete m_private;
    39 		m_private = NULL;
    41 		m_private = NULL;
    40 		}
    42 		}
       
    43 	
       
    44 	if(m_authAppProcess)
       
    45 		delete m_authAppProcess;
    41 	}
    46 	}
    42 
    47 
    43 QList<SmfProvider>* SmfClient::GetServices(const QString& serviceName)
    48 QList<SmfProvider>* SmfClient::GetServices(const QString& serviceName)
    44 	{
    49 	{
    45 	qDebug()<<"Inside SmfClient::GetServices()";
    50 	qDebug()<<"Inside SmfClient::GetServices()";
    46 	
    51 	
    47 	if(m_providerList)
    52 	//if serviceName is not empty
       
    53 	if(serviceName.size())
    48 		{
    54 		{
    49 		delete m_providerList;
    55 		if(m_providerList)
    50 		m_providerList = NULL;
    56 			{
       
    57 			delete m_providerList;
       
    58 			m_providerList = NULL;
       
    59 			}
       
    60 		//Getting the data synchronously
       
    61 		m_providerList = m_private->GetServices(serviceName);
       
    62 		qDebug()<<"After m_private->GetServices";
       
    63 		
       
    64 		return m_providerList;
    51 		}
    65 		}
    52 	//Getting the data synchronously
    66 	else
    53 	m_providerList = m_private->GetServices(serviceName);
    67 		return NULL;
    54 	qDebug()<<"After m_private->GetServices";
    68 	}
    55 	
    69 
    56 	return m_providerList;
    70 SMFProviderAuthorizationStatus SmfClient::checkAuthorization(const SmfProvider& provider)
    57 	}
    71 	{
    58 
    72 	SMFProviderAuthorizationStatus status = SMFProviderAuthStatusUnknown;
       
    73 	if(!provider.authenticationAppId().isEmpty())
       
    74 		{
       
    75 		SmfCredMgrClient csmClient;
       
    76 		QString authAppId = provider.authenticationAppId();
       
    77 		if(csmClient.CheckServiceAuthorization(authAppId))
       
    78 			status = SMFProviderAuthStatusAuthorised;
       
    79 		else
       
    80 			status = SMFProviderAuthStatusUnauthorised;
       
    81 		}
       
    82 	return status;
       
    83 	}
       
    84 
       
    85 SmfError SmfClient::loginToService(SmfProvider* provider)
       
    86 	{
       
    87 	if(!m_authAppProcess)
       
    88 		m_authAppProcess = new QProcess();
       
    89 	
       
    90 	connect(m_authAppProcess, SIGNAL(started()), this, SLOT(started()));
       
    91 	connect(m_authAppProcess, SIGNAL(stateChanged(QProcess::ProcessState)),
       
    92 					 this, SLOT(stateChanged(QProcess::ProcessState)));
       
    93 	connect(m_authAppProcess, SIGNAL(error ( QProcess::ProcessError)),
       
    94 					 this, SLOT(error ( QProcess::ProcessError)));
       
    95 	
       
    96 	connect(m_authAppProcess, SIGNAL(finished(int, QProcess::ExitStatus)),
       
    97 					 this, SLOT(finished(int, QProcess::ExitStatus)));
       
    98 
       
    99 	m_authAppProcess->start(provider->authenticationAppName());
       
   100 	m_authAppProcess->waitForFinished(-1);
       
   101 	return SmfNoError;
       
   102 	}
       
   103 
       
   104 
       
   105 SmfError SmfClient::logoutOfService(SmfProvider* provider)
       
   106 	{
       
   107 	if(!m_authAppProcess)
       
   108 		m_authAppProcess = new QProcess();
       
   109 	
       
   110 	connect(m_authAppProcess, SIGNAL(started()), this, SLOT(started()));
       
   111 	connect(m_authAppProcess, SIGNAL(stateChanged(QProcess::ProcessState)),
       
   112 					 this, SLOT(stateChanged(QProcess::ProcessState)));
       
   113 	connect(m_authAppProcess, SIGNAL(error ( QProcess::ProcessError)),
       
   114 					 this, SLOT(error ( QProcess::ProcessError)));
       
   115 	
       
   116 	connect(m_authAppProcess, SIGNAL(finished(int, QProcess::ExitStatus)),
       
   117 					 this, SLOT(finished(int, QProcess::ExitStatus)));
       
   118 	
       
   119 	m_authAppProcess->start(provider->authenticationAppName());
       
   120 	m_authAppProcess->waitForFinished(-1);
       
   121 	return SmfNoError;
       
   122 	}
       
   123 
       
   124 void SmfClient::started()
       
   125 	{
       
   126 	qDebug()<<"Inside SmfClient::started()";
       
   127 	}
       
   128 
       
   129 void SmfClient::stateChanged(QProcess::ProcessState newState)
       
   130 	{
       
   131 	qDebug()<<"Inside SmfClient::stateChanged(), state = "<<newState;
       
   132 	}
       
   133 
       
   134 void SmfClient::error(QProcess::ProcessError error)
       
   135 	{
       
   136 	qDebug()<<"Inside SmfClient::error(), error = "<<error;
       
   137 	}
       
   138 
       
   139 void SmfClient::finished(int exitCode, QProcess::ExitStatus exitStatus)
       
   140 	{
       
   141 	qDebug()<<"Inside SmfClient::finished()";
       
   142 	qDebug()<<"exitcode = "<<exitCode;
       
   143 	qDebug()<<"exitStatus = "<<exitStatus;
       
   144 	}
    59 
   145 
    60 /**
   146 /**
    61 * This method returns the error message for the mentioned argument error code
   147 * This method returns the error message for the mentioned argument error code
    62 * @param aErrorCode The SmfError code for which the error string is required
   148 * @param aErrorCode The SmfError code for which the error string is required
    63 * @returns a QString object containing the required error message
   149 * @returns a QString object containing the required error message
   331 			
   417 			
   332 		case SmfErrInvalidRelation:                     //65
   418 		case SmfErrInvalidRelation:                     //65
   333 			str.append("Smf Error: Invalid relation");
   419 			str.append("Smf Error: Invalid relation");
   334 			break;
   420 			break;
   335 			
   421 			
   336 		case SmfUnknownError:							//66
   422 		case SmfInvalidGuid:							//66
       
   423 			str.append("Smf Error: Invalid Guid");
       
   424 			break;
       
   425 		case SmfInvalidContactUrl:						//67
       
   426 			str.append("Smf Error: Invalid ContactUrl");		
       
   427 			break;
       
   428 		case SmfInvalidLocalId:							//68
       
   429 			str.append("Smf Error: Invalid LocalId");
       
   430 			break;
       
   431 		case SmfContactExists:							//69
       
   432 			str.append("Smf Error: Contact Already Exists");
       
   433 			break;
       
   434 			
       
   435 		case SmfUnknownError:							//70
   337 		default:
   436 		default:
   338 			str.append("Smf Error: Unknown Error");
   437 			str.append("Smf Error: Unknown Error");
   339 		}
   438 		}
   340 		
   439 		
   341 	return str;
   440 	return str;