menucontentsrv/srvsrc/menusrvattr.cpp
changeset 0 79c6a41cd166
equal deleted inserted replaced
-1:000000000000 0:79c6a41cd166
       
     1 /*
       
     2 * Copyright (c) 2009 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:
       
    15 *
       
    16 */
       
    17 
       
    18 // INCLUDE FILES
       
    19 
       
    20 #include <s32strm.h>
       
    21 #include "menusrvattr.h"
       
    22 //#include "menuengobject.h"
       
    23 
       
    24 // ================= LOCAL FUNCTIONS =======================
       
    25 
       
    26 /**
       
    27 * Cleanup support method. Call ResetAndDestroy() on the array.
       
    28 * @param RMenuItemArray* as TAny*
       
    29 */
       
    30 LOCAL_C void ResetAndDestroy( TAny* aArray )
       
    31     {
       
    32     ((RMenuSrvAttrArray*)aArray)->ResetAndDestroy();
       
    33     }
       
    34 
       
    35 // ================= MEMBER FUNCTIONS =======================
       
    36 
       
    37 // ---------------------------------------------------------
       
    38 // CMenuSrvAttr::~CMenuItemAttr
       
    39 // ---------------------------------------------------------
       
    40 //
       
    41 CMenuSrvAttr::~CMenuSrvAttr()
       
    42     {
       
    43     iName.Close();
       
    44     iValue.Close();
       
    45     }
       
    46 
       
    47 // ---------------------------------------------------------
       
    48 // CMenuSrvAttr::NewL
       
    49 // ---------------------------------------------------------
       
    50 //
       
    51 CMenuSrvAttr* CMenuSrvAttr::NewL( const TDesC& aName )
       
    52     {
       
    53     CMenuSrvAttr* attr = NewLC( aName );
       
    54     CleanupStack::Pop( attr );
       
    55     return attr;
       
    56     }
       
    57 
       
    58 // ---------------------------------------------------------
       
    59 // CMenuSrvAttr::NewLC
       
    60 // ---------------------------------------------------------
       
    61 //
       
    62 CMenuSrvAttr* CMenuSrvAttr::NewLC( const TDesC& aName )
       
    63     {
       
    64     CMenuSrvAttr* attr = new (ELeave) CMenuSrvAttr();
       
    65     CleanupStack::PushL( attr );
       
    66     attr->ConstructL( aName );
       
    67     return attr;
       
    68     }
       
    69 
       
    70 // ---------------------------------------------------------
       
    71 // CMenuSrvAttr::ConstructL
       
    72 // ---------------------------------------------------------
       
    73 //
       
    74 void CMenuSrvAttr::ConstructL( const TDesC& aName )
       
    75     {
       
    76     iName.CreateL( aName );
       
    77     }
       
    78 
       
    79 // ---------------------------------------------------------
       
    80 // CMenuSrvAttr::ConstructL
       
    81 // ---------------------------------------------------------
       
    82 //
       
    83 void CMenuSrvAttr::SetValueL( const TDesC& aName )
       
    84     {
       
    85     if( iValue.Length() > 0 )
       
    86         {
       
    87         iValue.Close();
       
    88         }
       
    89     iValue.CreateL( aName );
       
    90     }
       
    91 
       
    92 // ---------------------------------------------------------
       
    93 // RMenuSrvAttrArray::Find
       
    94 // ---------------------------------------------------------
       
    95 //
       
    96 TBool RMenuSrvAttrArray::Find( TInt aId, 
       
    97     const TDesC& aName, TDes& aAttrVal  )
       
    98     {
       
    99     for ( TInt i = 0; i < Count(); i++ )
       
   100         {
       
   101         if( aId == operator[]( i )->Id() &&
       
   102             aName.Compare( operator[]( i )->Name() ) == KErrNone )
       
   103             {
       
   104             aAttrVal = operator[]( i )->Value();
       
   105             return ETrue;
       
   106             }
       
   107         }
       
   108     return EFalse;
       
   109     }
       
   110 
       
   111 // ---------------------------------------------------------
       
   112 // RMenuSrvAttrArray::Find
       
   113 // ---------------------------------------------------------
       
   114 //
       
   115 TBool RMenuSrvAttrArray::Exist( TInt aId, const TDesC& aName )
       
   116     {
       
   117     for ( TInt i = 0; i < Count(); i++ )
       
   118         {
       
   119         if( aId == operator[]( i )->Id() &&
       
   120             aName.Compare( operator[]( i )->Name() ) == KErrNone )
       
   121             {
       
   122             return ETrue;
       
   123             }
       
   124         }
       
   125     return EFalse;
       
   126     }
       
   127 
       
   128 // ---------------------------------------------------------
       
   129 // RMenuSrvAttrArray::RemoveId
       
   130 // ---------------------------------------------------------
       
   131 //
       
   132 void RMenuSrvAttrArray::RemoveId( TInt aId )
       
   133     {
       
   134     for ( TInt i = 0; i < Count(); i++ )
       
   135         {
       
   136         if( aId == operator[]( i )->Id() )
       
   137             {
       
   138             delete operator[]( i );
       
   139             Remove( i );
       
   140             i--;
       
   141             }
       
   142         }
       
   143     }
       
   144 
       
   145 // ---------------------------------------------------------
       
   146 // RMenuSrvAttrArray::RemoveId
       
   147 // ---------------------------------------------------------
       
   148 //
       
   149 void RMenuSrvAttrArray::RemoveAttribute( TInt aId, const TDesC& aAttrName )
       
   150 	{
       
   151 	for ( TInt i = 0; i < Count(); i++ )
       
   152 		{
       
   153 		if( aId == operator[]( i )->Id() && aAttrName == operator[]( i )->Name()) 
       
   154 			{
       
   155 			delete operator[]( i );
       
   156 			Remove( i );
       
   157 			break;
       
   158 			}
       
   159 		}
       
   160 	}
       
   161 
       
   162 // ---------------------------------------------------------
       
   163 // RMenuSrvAttrArray::RemoveId
       
   164 // ---------------------------------------------------------
       
   165 //
       
   166 /*void RMenuSrvAttrArray::RemoveNotExistItems()
       
   167     {
       
   168     TInt id( KErrNone );
       
   169     TInt err( KErrNone );
       
   170     for ( TInt i = 0; i < Count(); i++ )
       
   171        {
       
   172        if( id != operator[]( i )->Id() )
       
   173            {
       
   174            //CMenuEngObject& obj = NULL;
       
   175            //id = operator[]( i )->Id();
       
   176            TRAP( err, CMenuEngObject& obj = iEng->ObjectL(11));
       
   177            if( err == KErrNotFound )
       
   178                {
       
   179                RemoveId( id );
       
   180                i--;
       
   181                }
       
   182            }
       
   183        }
       
   184     }*/
       
   185 
       
   186 // ---------------------------------------------------------
       
   187 // CleanupResetAndDestroyPushL
       
   188 // ---------------------------------------------------------
       
   189 //
       
   190 void CleanupResetAndDestroyPushL( RMenuSrvAttrArray& aArray )
       
   191     {
       
   192     CleanupStack::PushL( TCleanupItem( ResetAndDestroy, &aArray ) );
       
   193     }
       
   194 
       
   195 //  End of File