--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlansecuritysettings/wifiprotectedsetup/src/wifiprotsession.cpp Wed Sep 01 12:23:57 2010 +0100
@@ -0,0 +1,213 @@
+/*
+* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implementation of RWiFiProtSession
+*
+*/
+
+/*
+* %version: tr1cfwln#10 %
+*/
+
+// INCLUDE FILES
+#include "wifiprotsession.h"
+#include "e32ver.h"
+#include <wifiprotuiddefs.h>
+#include "wifiprotlogger.h"
+
+using namespace WiFiProt;
+
+// --------------------------------------------------------------------------
+// RWiFiProtSession::RWiFiProtSession()
+// --------------------------------------------------------------------------
+//
+RWiFiProtSession::RWiFiProtSession() :
+ RSessionBase(),
+ iNotifier( NULL ),
+ iWiFiProtActiveResp( NULL )
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::RWiFiProtSession" );
+ CLOG_LEAVEFN( "RWiFiProtSession::RWiFiProtSession" );
+ }
+
+
+// --------------------------------------------------------------------------
+// ~RWiFiProtSession
+// --------------------------------------------------------------------------
+//
+RWiFiProtSession::~RWiFiProtSession()
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::~RWiFiProtSession" );
+ Close();
+ CLOG_LEAVEFN( "RWiFiProtSession::~RWiFiProtSession" );
+ }
+
+
+// --------------------------------------------------------------------------
+// Connect
+//
+// Create a session to the extended notifier framework
+// --------------------------------------------------------------------------
+//
+TInt RWiFiProtSession::Connect()
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::Connect" );
+
+ TInt error( KErrNone );
+ if ( !iNotifier )
+ {
+ TRAP( error, iNotifier = new (ELeave) RNotifier() );
+ }
+ if ( !error && iNotifier )
+ {
+ error = iNotifier->Connect();
+ }
+ CLOG_LEAVEFN( "RWiFiProtSession::Connect" );
+ return error;
+ }
+
+// --------------------------------------------------------------------------
+// Close
+// --------------------------------------------------------------------------
+//
+void RWiFiProtSession::Close()
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::Close" );
+
+ RSessionBase::Close();
+
+ if (iWiFiProtActiveResp)
+ {
+ iWiFiProtActiveResp->Cancel();
+ delete iWiFiProtActiveResp;
+ iWiFiProtActiveResp = NULL;
+ }
+ if ( iNotifier )
+ {
+ iNotifier->Close();
+ delete iNotifier;
+ iNotifier = NULL;
+ }
+
+ CLOG_LEAVEFN( "RWiFiProtSession::Close" );
+ }
+
+// --------------------------------------------------------------------------
+// StartWiFiProtL
+// --------------------------------------------------------------------------
+//
+void RWiFiProtSession::StartWiFiProtL( const TWlanSsid& aSSid,
+ TBool aConnectionNeeded,
+ RArray<TUint32>& aUidsReturned,
+ WiFiProt::TWiFiReturn& aReturnValue,
+ TRequestStatus& aStatus )
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::StartWiFiProtL" );
+
+ aConnectionNeeded = EFalse; // this parameter is not supported anymore
+ // to be set from the API, but it is used
+ // internally from StartWiFiProtConnL
+ TRAPD( err, iWiFiProtActiveResp =
+ CWiFiProtActiveResp::NewL( aSSid,
+ aConnectionNeeded,
+ aUidsReturned,
+ aReturnValue ) );
+
+
+ if ( err != KErrNone )
+ {
+ TRequestStatus* pS = &aStatus;
+ User::RequestComplete( pS, err );
+ }
+ else
+ {
+ iWiFiProtActiveResp->Observe( aStatus );
+
+ TPckgBuf<TWiFiOutputParams>* outputParams =
+ iWiFiProtActiveResp->OutputBuffer();
+ TPckgBuf<TWiFiInputParams>* inputParams =
+ iWiFiProtActiveResp->InputBuffer();
+
+ if ( iNotifier )
+ {
+ TRequestStatus& status = iWiFiProtActiveResp->iStatus;
+ iNotifier->StartNotifierAndGetResponse( status,
+ KUidWiFiProtSetup,
+ *inputParams,
+ *outputParams );
+ }
+ }
+
+ CLOG_LEAVEFN( "RWiFiProtSession::StartWiFiProtL" );
+ }
+
+// --------------------------------------------------------------------------
+// StartWiFiProtConnL
+// --------------------------------------------------------------------------
+//
+void RWiFiProtSession::StartWiFiProtConnL( const TWlanSsid& aSSid,
+ TWlanProtectedSetupCredentialAttribute&
+ aNetworkSettings,
+ WiFiProt::TWiFiReturn& aReturnValue,
+ TRequestStatus& aStatus )
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::StartWiFiProtConnL" );
+
+ TRAPD( err, iWiFiProtActiveResp =
+ CWiFiProtActiveResp::NewL( aSSid,
+ aNetworkSettings,
+ aReturnValue ) );
+
+
+ if ( err != KErrNone )
+ {
+ TRequestStatus* pS = &aStatus;
+ User::RequestComplete( pS, err );
+ }
+ else
+ {
+ iWiFiProtActiveResp->Observe( aStatus );
+
+ TPckgBuf<TWiFiConnOutputParams>* connoutputParams =
+ iWiFiProtActiveResp->ConnOutputBuffer();
+ TPckgBuf<TWiFiInputParams>* inputParams =
+ iWiFiProtActiveResp->InputBuffer();
+
+ if ( iNotifier )
+ {
+ TRequestStatus& status = iWiFiProtActiveResp->iStatus;
+ iNotifier->StartNotifierAndGetResponse( status,
+ KUidWiFiProtSetup,
+ *inputParams,
+ *connoutputParams );
+ }
+ }
+
+ CLOG_LEAVEFN( "RWiFiProtSession::StartWiFiProtConnL" );
+ }
+
+// --------------------------------------------------------------------------
+// CancelWiFiProt
+// --------------------------------------------------------------------------
+//
+void RWiFiProtSession::CancelWiFiProt()
+ {
+ CLOG_ENTERFN( "RWiFiProtSession::CancelWiFiProt()" );
+ iNotifier->CancelNotifier( KUidWiFiProtSetup );
+ iWiFiProtActiveResp->Cancel();
+ delete iWiFiProtActiveResp ;
+ iWiFiProtActiveResp = NULL;
+ CLOG_LEAVEFN( "RWiFiProtSession::CancelWiFiProt()" );
+ }
+
+// End of File