ncdengine/provider/server/src/ncdchildentitymap.cpp
changeset 0 ba25891c3a9e
equal deleted inserted replaced
-1:000000000000 0:ba25891c3a9e
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Implements CNcdChildEntityMap class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <e32cmn.h>
       
    20 #include <s32strm.h>
       
    21 #include <s32mem.h>
       
    22 
       
    23 #include "ncdchildentitymap.h"
       
    24 #include "ncdchildentity.h"
       
    25 #include "ncdnodeidentifier.h"
       
    26 
       
    27 #include "catalogsdebug.h"
       
    28 
       
    29 
       
    30 CNcdChildEntityMap* CNcdChildEntityMap::NewL(
       
    31     const CNcdNodeIdentifier& aNodeIdentifier,
       
    32     const RPointerArray<CNcdChildEntity>& aChildArray,
       
    33     TInt aChildCount )
       
    34     {
       
    35     CNcdChildEntityMap* self = 
       
    36         CNcdChildEntityMap::NewLC( aNodeIdentifier, aChildArray, aChildCount );
       
    37     CleanupStack::Pop( self );
       
    38     return self;
       
    39     }
       
    40     
       
    41 CNcdChildEntityMap* CNcdChildEntityMap::NewLC(
       
    42     const CNcdNodeIdentifier& aNodeIdentifier,
       
    43     const RPointerArray<CNcdChildEntity>& aChildArray,
       
    44     TInt aChildCount )
       
    45     {
       
    46     CNcdChildEntityMap* self = 
       
    47         new( ELeave ) CNcdChildEntityMap( aChildCount );
       
    48     CleanupStack::PushL( self );
       
    49     self->ConstructL( aNodeIdentifier, aChildArray );
       
    50     return self;
       
    51     }
       
    52 
       
    53 const CNcdNodeIdentifier& CNcdChildEntityMap::ParentIdentifier() const
       
    54     {
       
    55     return *iParentIdentifier;
       
    56     }
       
    57     
       
    58 const RPointerArray<CNcdChildEntity>& CNcdChildEntityMap::ChildArray() const
       
    59     {
       
    60     return iChildArray;
       
    61     }
       
    62     
       
    63 TInt CNcdChildEntityMap::ChildCount() const
       
    64     {
       
    65     return iChildCount;
       
    66     }
       
    67 
       
    68 CNcdChildEntityMap::CNcdChildEntityMap( TInt aChildCount )
       
    69     : iChildCount( aChildCount )
       
    70     {
       
    71     }
       
    72     
       
    73 void CNcdChildEntityMap::ConstructL( const CNcdNodeIdentifier& aIdentifier,
       
    74     const RPointerArray<CNcdChildEntity>& aChildArray )
       
    75     {
       
    76     DLTRACEIN((""));
       
    77     iParentIdentifier = CNcdNodeIdentifier::NewL( aIdentifier );
       
    78     for( TInt i = 0 ; i < aChildArray.Count() ; i++ )
       
    79         {
       
    80         CNcdChildEntity* child = CNcdChildEntity::NewLC( *aChildArray[i] );
       
    81         DLTRACE((_L("Adding child entity, identifier: %S, index: %d"),
       
    82              &child->Identifier().NodeId(), child->Index() ));
       
    83         iChildArray.AppendL( child );
       
    84         CleanupStack::Pop( child );
       
    85         }
       
    86     }
       
    87 
       
    88 CNcdChildEntityMap::~CNcdChildEntityMap()
       
    89     {
       
    90     delete iParentIdentifier;
       
    91     iChildArray.ResetAndDestroy();
       
    92     }