connectionutilities/ConnectionDialogs/DisconnectDlg/src/ConnectionCArray.cpp
changeset 0 5a93021fdf25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectionutilities/ConnectionDialogs/DisconnectDlg/src/ConnectionCArray.cpp	Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 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: 
+*      Declares the CConnectionCArray
+*
+*/
+
+
+// INCLUDE FILES
+#include "ConnectionCArray.h"
+#include "ConnectionInfo.h"
+#include "ConnectionDialogsLogger.h"
+#include "connectioninfosortkey.h"
+
+// CONSTANTS
+LOCAL_D const TUint KConnArrayGranularity = KConnMonMaxClientUids; 
+                                                // from rconnmon.h
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CConnectionCArray::NewL
+// ---------------------------------------------------------
+//
+CConnectionCArray* CConnectionCArray::NewL()
+    {
+    CLOG_ENTERFN("CConnectionCArray::NewL");    
+    CConnectionCArray* self = new( ELeave ) CConnectionCArray();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self ); // self
+    CLOG_LEAVEFN("CConnectionCArray::NewL");    
+
+    return self;
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionCArray::CConnectionCArray
+// ---------------------------------------------------------
+//
+CConnectionCArray::CConnectionCArray()
+    {
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionCArray::ConstructL
+// ---------------------------------------------------------
+//
+void CConnectionCArray::ConstructL()
+    {
+    CLOG_ENTERFN("CConnectionCArray::ConstructL");    
+    
+    iConnArray = new( ELeave )CArrayPtrFlat<CConnectionInfo>( 
+                                                    KConnArrayGranularity );
+    CLOG_LEAVEFN("CConnectionCArray::ConstructL");    
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionCArray::~CConnectionCArray
+// ---------------------------------------------------------
+//
+CConnectionCArray::~CConnectionCArray()
+    {
+    CLOG_ENTERFN("CConnectionCArray::~CConnectionCArray");    
+    
+    if ( iConnArray )
+        {
+        iConnArray->ResetAndDestroy();
+        }
+    delete iConnArray;
+
+    CLOG_LEAVEFN("CConnectionCArray::~CConnectionCArray");    
+    }
+
+// ---------------------------------------------------------
+// CConnectionCArray::Count
+// ---------------------------------------------------------
+//
+TInt CConnectionCArray::Count() const
+    {
+    return iConnArray->Count();
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionCArray::AppendL
+// ---------------------------------------------------------
+//
+void CConnectionCArray::AppendL( const CConnectionInfo* aInfo )
+    {
+    iConnArray->AppendL( CONST_CAST( CConnectionInfo* , aInfo ) );
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionCArray::ResetAndDestroy
+// ---------------------------------------------------------
+//
+void CConnectionCArray::ResetAndDestroy()
+    {
+    iConnArray->ResetAndDestroy();
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionCArray::At
+// ---------------------------------------------------------
+//
+CConnectionInfo* CConnectionCArray::At( TInt aIndex ) const
+    {
+    return iConnArray->At( aIndex );
+    }
+    
+    
+// ---------------------------------------------------------
+// CConnectionCArray::GetArrayIndex
+// ---------------------------------------------------------
+//
+TInt CConnectionCArray::GetArrayIndex( TUint aConnectionId ) const
+    {
+    CLOG_WRITEF( _L( "GetArrayIndex: %d" ), aConnectionId );
+    TBool found( EFalse );
+    TInt index( 0 );
+    TInt count = iConnArray->Count();
+    TUint connectionId( 0 );
+
+    while( ( index <  count ) && !found  )
+        {
+        connectionId = ( *iConnArray )[index]->GetConnId();
+        if( connectionId == aConnectionId )
+            {
+            found = ETrue;
+            }
+        else
+            {
+            ++index;            
+            }
+        }
+
+    CLOG_WRITEF( _L("Found: %d"), found );
+
+    return ( found ? index : KErrNotFound );
+    }
+
+// ---------------------------------------------------------
+// CConnectionCArray::SortL
+// ---------------------------------------------------------
+//
+void CConnectionCArray::Sort() const
+    {
+    TConnectionInfoSortKey key;
+    key.SetPtr( iConnArray );
+    iConnArray->Sort( key );
+    }
+    
+
+// End of File