--- a/omadrm/drmplugins/drmudtmodule/src/DrmUdtConn.cpp Fri Apr 16 15:14:55 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,311 +0,0 @@
-/*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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: ?Description
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "DrmUdtConn.h"
-#include "DrmUdtObserver.h"
-
-#include <CommDbConnPref.h>
-#include <commdb.h>
-#include <cdblen.h>
-#include <es_enum.h>
-
-// #include <ApSelect.h> // for checking APs
-
-#ifdef _DEBUG
-#define LOGGING
-#endif
-
-#define LOGGING
-
-#ifdef LOGGING
-_LIT(KLogDir, "DRM");
-_LIT(KLogName, "UDT.log");
-#include "flogger.h"
-#define LOG(string) \
- RFileLogger::Write(KLogDir, KLogName, \
- EFileLoggingModeAppend, string);
-#define LOGHEX(buffer) \
- RFileLogger::HexDump(KLogDir, KLogName, \
- EFileLoggingModeAppend, _S(""), _S(""), \
- buffer.Ptr(), buffer.Length());
-#else
-#define LOG
-#define LOGHEX
-#endif
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CDrmUdtConn::NewL()
-// ---------------------------------------------------------
-//
-CDrmUdtConn* CDrmUdtConn::NewL()
- {
- LOG( _L("CDrmUdtConn::NewL") );
- CDrmUdtConn* conn = new (ELeave) CDrmUdtConn();
- CleanupStack::PushL( conn );
- conn->ConstructL();
- CleanupStack::Pop( conn );
- return conn;
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::~CDrmUdtConn()
-// ---------------------------------------------------------
-//
-CDrmUdtConn::~CDrmUdtConn()
- {
- LOG( _L("CDrmUdtConn::~CDrmUdtConn") );
- Cancel();
- iConnection.Close();
- iSocketServ.Close();
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::ConnectL()
-// ---------------------------------------------------------
-//
-void CDrmUdtConn::ConnectL( TUint32 aIap,
- MDrmUdtObserver* aObserver,
- TRequestStatus* aStatus )
- {
- LOG( _L("CDrmUdtConn::ConnectL") );
-
- iObserver = aObserver;
-
- if ( iState == EInit )
- {
- // Not connected. Attach to existing connection, or create new one if
- // allowed.
- iStatus = KErrGeneral;
-
- // Make this part atomic by pushing closes on the stack.
- User::LeaveIfError( iSocketServ.Connect() );
- CleanupClosePushL<RSocketServ>( iSocketServ );
- User::LeaveIfError( iConnection.Open( iSocketServ ) );
- CleanupClosePushL<RConnection>( iConnection );
-
- TConnectionInfoBuf connInfo;
- TUint count;
- User::LeaveIfError( iConnection.EnumerateConnections( count ) );
- TUint i;
- if ( count )
- {
- // Select from existing connections. Try to make AP match.
- for ( i = count; i; i-- )
- {
- // Note: GetConnectionInfo expects 1-based index.
- User::LeaveIfError( iConnection.GetConnectionInfo( i, connInfo ) );
- if ( aIap == 0 || connInfo().iIapId == aIap )
- {
- // "Accept any" or AP match. Attach to this one.
- break;
- }
- }
- if ( !i )
- {
- // No AP match, select AP with largest index.
- User::LeaveIfError
- ( iConnection.GetConnectionInfo( count, connInfo ) );
- }
- User::LeaveIfError
- ( iConnection.Attach( connInfo, RConnection::EAttachTypeNormal ) );
- iState = EConnected;
- iStatus = KErrNone;
- }
- else
- {
- // No existing connections, create new one.
-#ifdef __WINS__
- // WINS connection creation does not work if preferences are given.
- // Defaults are to be used always.
- iConnection.Start( iStatus );
-#else
- // Note: the TCommDbConnPref must NOT be stack variable.
- // It must persist until completion of RConnection::Start().
- iConnPref.SetDirection( ECommDbConnectionDirectionOutgoing );
- iConnPref.SetDialogPreference( ECommDbDialogPrefPrompt );
- iConnPref.SetBearerSet( ECommDbBearerCSD | ECommDbBearerWcdma );
- // New connection is always created with user-selected AP;
- // so 0 is used instead of aIap.
- iConnPref.SetIapId( 0 );
- iConnection.Start( iConnPref, iStatus );
-#endif
- if ( iObserver )
- {
- iObserver->ConnectionStartedL();
- }
-
- iState = EConnecting;
- SetActive(); // The only path with a real async request.
- }
- CleanupStack::Pop( 2 ); // closing iConn and iSockServ
- // End of atomic part.
- }
- else
- {
- // Not expecting this to be called in other states.
- }
-
- iParentStatus = aStatus;
- *iParentStatus = KRequestPending;
-
- if ( !IsActive() )
- {
- // Unless we have an outstanding connect request (iConn.Start),
- // we are done.
- User::RequestComplete( iParentStatus, iStatus.Int() );
- iParentStatus = NULL;
- }
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::Close()
-// ---------------------------------------------------------
-//
-void CDrmUdtConn::Close()
- {
- LOG( _L("CDrmUdtConn::Close") );
- Cancel();
- iConnection.Close();
- iSocketServ.Close();
- iState = EInit;
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::IsConnected()
-// ---------------------------------------------------------
-//
-TBool CDrmUdtConn::IsConnected( TUint32& aIap )
- {
- LOG( _L("CDrmUdtConn::IsConnected") );
- TBool connected( EFalse );
- if( iState == EConnected )
- {
- TBuf<KCommsDbSvrMaxColumnNameLength * 2 + 1> iapId;
- _LIT( KFormatIapId, "%S\\%S" );
- TPtrC iap( IAP );
- TPtrC id( COMMDB_ID );
- iapId.Format( KFormatIapId, &iap, &id );
- TInt err = iConnection.GetIntSetting( iapId, aIap );
- connected = err ? EFalse : ETrue;
- }
- return connected;
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::CConnection()
-// ---------------------------------------------------------
-//
-CDrmUdtConn::CDrmUdtConn()
-: CActive( CActive::EPriorityStandard ),
- iState( EInit )
- {
- LOG( _L("CDrmUdtConn::CDrmUdtConn") );
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::ConstructL()
-// ---------------------------------------------------------
-//
-void CDrmUdtConn::ConstructL()
- {
- LOG( _L("CDrmUdtConn::ConstructL") );
- /*
- TUint32 APs( 0 );
- CCommsDatabase* commsdb = CCommsDatabase::NewL( EDatabaseTypeIAP );
- CleanupStack::PushL( commsdb );
- CApSelect* apSel = CApSelect::NewLC (
- *commsdb,
- KEApIspTypeAll,
- EApBearerTypeAll,
- KEApSortUidAscending );
- APs = apSel->Count();
- CleanupStack::PopAndDestroy( 2 );
- if ( !APs )
- {
- // No AP defined
- User::Leave( KErrRoapGeneral );
- }
- */
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::DoCancel()
-// ---------------------------------------------------------
-//
-void CDrmUdtConn::DoCancel()
- {
- LOG( _L("CDrmUdtConn::DoCancel") );
- iConnection.Close();
- iSocketServ.Close();
- User::RequestComplete( iParentStatus, KErrCancel );
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::RunL()
-// ---------------------------------------------------------
-//
-void CDrmUdtConn::RunL()
- {
- LOG( _L("CDrmUdtConn::RunL") );
- User::LeaveIfError( iStatus.Int() ); // Handle errors in RunError().
-
- iState = EConnected;
- User::RequestComplete( iParentStatus, iStatus.Int() );
- iParentStatus = NULL;
- }
-
-// ---------------------------------------------------------
-// CDrmUdtConn::RunError()
-// ---------------------------------------------------------
-//
-TInt CDrmUdtConn::RunError( TInt /*aError*/ )
- {
- LOG( _L("CDrmUdtConn::RunError") );
- iConnection.Close();
- iSocketServ.Close();
- iState = EInit;
- User::RequestComplete( iParentStatus, iStatus.Int() );
- iParentStatus = NULL;
- return KErrNone;
- }
-
-// ---------------------------------------------------------
-// CRoapConnection::Conn()
-// ---------------------------------------------------------
-//
-RSocketServ& CDrmUdtConn::SocketServ()
- {
- LOG( _L("CDrmUdtConn::SocketServ") );
- return iSocketServ;
- }
-
-// ---------------------------------------------------------
-// CRoapConnection::Conn()
-// ---------------------------------------------------------
-//
-RConnection& CDrmUdtConn::Conn()
- {
- LOG( _L("CDrmUdtConn::Conn") );
- return iConnection;
- }
-