email/imum/DomainApi/src/ImumDaSettingsDataImpl.cpp
changeset 0 72b543305e3a
equal deleted inserted replaced
-1:000000000000 0:72b543305e3a
       
     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:  ImumDaSettingsDataImpl.cpp
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 #include <ImumInMailboxServices.h>
       
    20 
       
    21 #include "ImumDaSettingsDataImpl.h"
       
    22 #include "ImumInSettingsData.h"
       
    23 #include "ImumInternalApi.h"
       
    24 #include "ImumDaErrorCodes.h"
       
    25 #include "ImumPanic.h"
       
    26 
       
    27 // CONSTANTS
       
    28 const TInt KImumDaConnSettingsGranularity = 2;
       
    29 
       
    30 // ============================ MEMBER FUNCTIONS ==============================
       
    31 
       
    32 // ----------------------------------------------------------------------------
       
    33 // CImumDaSettingsDataImpl::CImumDaSettingsDataImpl()
       
    34 // ----------------------------------------------------------------------------
       
    35 //
       
    36 CImumDaSettingsDataImpl::CImumDaSettingsDataImpl(
       
    37     CImumInternalApi &aMailboxApi )
       
    38     :
       
    39     iMailboxApi( aMailboxApi ),
       
    40     iData( NULL ),
       
    41     iDaConnectionSettings( NULL )
       
    42     {
       
    43     }
       
    44 
       
    45 // ----------------------------------------------------------------------------
       
    46 // CImumDaSettingsDataImpl::~CImumDaSettingsDataImpl()
       
    47 // ----------------------------------------------------------------------------
       
    48 //
       
    49 CImumDaSettingsDataImpl::~CImumDaSettingsDataImpl()
       
    50     {
       
    51     if (iDaConnectionSettings != NULL)
       
    52         iDaConnectionSettings->ResetAndDestroy();
       
    53     delete iDaConnectionSettings;
       
    54     iDaConnectionSettings = NULL;
       
    55 
       
    56     delete iData;
       
    57     iData = NULL;
       
    58     }
       
    59 
       
    60 // ----------------------------------------------------------------------------
       
    61 // CImumDaSettingsDataImpl::NewL()
       
    62 // ----------------------------------------------------------------------------
       
    63 //
       
    64 CImumDaSettingsDataImpl* CImumDaSettingsDataImpl::NewL(
       
    65     CImumInternalApi &aMailboxApi,
       
    66     const TUid& aProtocol )
       
    67     {
       
    68     CImumDaSettingsDataImpl* self = NewLC( aMailboxApi, aProtocol );
       
    69     CleanupStack::Pop( self );
       
    70 
       
    71     return self;
       
    72     }
       
    73 
       
    74 // ----------------------------------------------------------------------------
       
    75 // CImumDaSettingsDataImpl::NewLC()
       
    76 // ----------------------------------------------------------------------------
       
    77 //
       
    78 CImumDaSettingsDataImpl* CImumDaSettingsDataImpl::NewLC(
       
    79     CImumInternalApi &aMailboxApi,
       
    80     const TUid& aProtocol )
       
    81     {
       
    82     CImumDaSettingsDataImpl* self =
       
    83         new ( ELeave ) CImumDaSettingsDataImpl( aMailboxApi );
       
    84     CleanupStack::PushL( self );
       
    85     self->ConstructL( aProtocol );
       
    86 
       
    87     return self;
       
    88     }
       
    89 
       
    90 // ----------------------------------------------------------------------------
       
    91 // CImumDaSettingsDataImpl::ConstructL()
       
    92 // ----------------------------------------------------------------------------
       
    93 //
       
    94 void CImumDaSettingsDataImpl::ConstructL( const TUid& aProtocol )
       
    95     {
       
    96     iData = iMailboxApi.MailboxServicesL().CreateSettingsDataL( aProtocol );
       
    97 
       
    98     iDaConnectionSettings =
       
    99         new ( ELeave ) CImumDaConnSettings( KImumDaConnSettingsGranularity );
       
   100     }
       
   101 
       
   102 // ======================= INTERFACE IMPLEMENTATION ===========================
       
   103 
       
   104 // ----------------------------------------------------------------------------
       
   105 // From class CImumDaSettingsData
       
   106 // CImumDaSettingsDataImpl::AddSetL()
       
   107 // ----------------------------------------------------------------------------
       
   108 //
       
   109 MImumDaSettingsDataCollection& CImumDaSettingsDataImpl::AddSetL(
       
   110     const TUid& aProtocol )
       
   111     {
       
   112     CImumDaSettingsDataCollectionImpl* daDataCollection;
       
   113 
       
   114     MImumInSettingsDataCollection* inDataCollection =
       
   115         &iData->AddInSetL( aProtocol );
       
   116 
       
   117     daDataCollection = CImumDaSettingsDataCollectionImpl::NewL(
       
   118         *inDataCollection );
       
   119 
       
   120     CleanupStack::PushL( daDataCollection );
       
   121     iDaConnectionSettings->AppendL( daDataCollection );
       
   122     CleanupStack::Pop( daDataCollection );
       
   123 
       
   124     inDataCollection = NULL;
       
   125 
       
   126     return *daDataCollection;
       
   127     }
       
   128 
       
   129 // ----------------------------------------------------------------------------
       
   130 // From class CImumDaSettingsData
       
   131 // CImumDaSettingsDataImpl::DelSetL()
       
   132 // ----------------------------------------------------------------------------
       
   133 //
       
   134 void CImumDaSettingsDataImpl::DelSetL( const TUint aIndex )
       
   135     {
       
   136     iData->DelSetL( aIndex );
       
   137 
       
   138     delete ( *iDaConnectionSettings )[aIndex];
       
   139     iDaConnectionSettings->Delete( aIndex );
       
   140     }
       
   141 
       
   142 // ----------------------------------------------------------------------------
       
   143 // From class CImumDaSettingsData
       
   144 // CImumDaSettingsDataImpl::DelSetL()
       
   145 // ----------------------------------------------------------------------------
       
   146 //
       
   147 void CImumDaSettingsDataImpl::DelSetL(
       
   148     const MImumDaSettingsDataCollection& /* aSettingsDataCollection */ )
       
   149     {
       
   150     // Empty, will be defined later
       
   151     }
       
   152 
       
   153 // ----------------------------------------------------------------------------
       
   154 // From class CImumDaSettingsData
       
   155 // CImumDaSettingsDataImpl::GetSetL()
       
   156 // ----------------------------------------------------------------------------
       
   157 //
       
   158 MImumDaSettingsDataCollection& CImumDaSettingsDataImpl::GetSetL(
       
   159     const TUint aIndex ) const
       
   160     {
       
   161     MImumDaSettingsDataCollection* DaSettings = NULL;
       
   162 
       
   163     if ( aIndex < iDaConnectionSettings->Count() )
       
   164         {
       
   165         DaSettings = iDaConnectionSettings->At( aIndex );
       
   166         }
       
   167     else
       
   168         {
       
   169         SettingsDataExceptionL( TImumDaErrorCode::EConnectionIndexOverflow );
       
   170         }
       
   171 
       
   172     return *DaSettings;
       
   173     }
       
   174 
       
   175 // ----------------------------------------------------------------------------
       
   176 // From class CImumDaSettingsData
       
   177 // CImumDaSettingsDataImpl::Validate()
       
   178 // ----------------------------------------------------------------------------
       
   179 //
       
   180 TInt CImumDaSettingsDataImpl::Validate()
       
   181     {
       
   182     return iData->Validate();
       
   183     }
       
   184 
       
   185 // ----------------------------------------------------------------------------
       
   186 // From class CImumDaSettingsData
       
   187 // CImumDaSettingsDataImpl::SetAttr()
       
   188 // ----------------------------------------------------------------------------
       
   189 //
       
   190 TInt CImumDaSettingsDataImpl::SetAttr(
       
   191     const TUint aAttributeKey,
       
   192     const TInt aValue )
       
   193     {
       
   194     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, EFalse ) )
       
   195         {
       
   196         return iData->SetAttr( aAttributeKey, aValue );
       
   197         }
       
   198     else
       
   199         {
       
   200         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   201         }
       
   202     }
       
   203 
       
   204 // ----------------------------------------------------------------------------
       
   205 // From class CImumDaSettingsData
       
   206 // CImumDaSettingsDataImpl::SetAttr()
       
   207 // ----------------------------------------------------------------------------
       
   208 //
       
   209 TInt CImumDaSettingsDataImpl::SetAttr(
       
   210     const TUint aAttributeKey,
       
   211     const TInt64 aValue )
       
   212     {
       
   213     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, EFalse ) )
       
   214         {
       
   215         return iData->SetAttr( aAttributeKey, aValue );
       
   216         }
       
   217     else
       
   218         {
       
   219         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   220         }
       
   221     }
       
   222 
       
   223 // ----------------------------------------------------------------------------
       
   224 // From class CImumDaSettingsData
       
   225 // CImumDaSettingsDataImpl::SetAttr()
       
   226 // ----------------------------------------------------------------------------
       
   227 //
       
   228 TInt CImumDaSettingsDataImpl::SetAttr(
       
   229     const TUint aAttributeKey,
       
   230     const TMsvId aValue )
       
   231     {
       
   232     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, EFalse ) )
       
   233         {
       
   234         return iData->SetAttr( aAttributeKey, aValue );
       
   235         }
       
   236     else
       
   237         {
       
   238         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   239         }
       
   240     }
       
   241 
       
   242 // ----------------------------------------------------------------------------
       
   243 // From class CImumDaSettingsData
       
   244 // CImumDaSettingsDataImpl::SetAttr()
       
   245 // ----------------------------------------------------------------------------
       
   246 //
       
   247 TInt CImumDaSettingsDataImpl::SetAttr(
       
   248     const TUint aAttributeKey,
       
   249     const TDesC& aText )
       
   250     {
       
   251     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, EFalse ) )
       
   252         {
       
   253         return iData->SetAttr( aAttributeKey, aText );
       
   254         }
       
   255     else
       
   256         {
       
   257         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   258         }
       
   259     }
       
   260 
       
   261 // ----------------------------------------------------------------------------
       
   262 // From class CImumDaSettingsData
       
   263 // CImumDaSettingsDataImpl::SetAttr()
       
   264 // ----------------------------------------------------------------------------
       
   265 //
       
   266 TInt CImumDaSettingsDataImpl::SetAttr(
       
   267     const TUint aAttributeKey,
       
   268     const TDesC8& aText )
       
   269     {
       
   270     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, EFalse ) )
       
   271         {
       
   272         return iData->SetAttr( aAttributeKey, aText );
       
   273         }
       
   274     else
       
   275         {
       
   276         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   277         }
       
   278     }
       
   279 
       
   280 // ----------------------------------------------------------------------------
       
   281 // From class CImumDaSettingsData
       
   282 // CImumDaSettingsDataImpl::GetAttr()
       
   283 // ----------------------------------------------------------------------------
       
   284 //
       
   285 TInt CImumDaSettingsDataImpl::GetAttr(
       
   286     const TUint aAttributeKey,
       
   287     TInt& aValue ) const
       
   288     {
       
   289     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, ETrue ) )
       
   290         {
       
   291         return iData->GetAttr( aAttributeKey, aValue );
       
   292         }
       
   293     else
       
   294         {
       
   295         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   296         }
       
   297     }
       
   298 
       
   299 // ----------------------------------------------------------------------------
       
   300 // From class CImumDaSettingsData
       
   301 // CImumDaSettingsDataImpl::GetAttr()
       
   302 // ----------------------------------------------------------------------------
       
   303 //
       
   304 TInt CImumDaSettingsDataImpl::GetAttr(
       
   305     const TUint aAttributeKey,
       
   306     TInt64& aValue ) const
       
   307     {
       
   308     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, ETrue ) )
       
   309         {
       
   310         return iData->GetAttr( aAttributeKey, aValue );
       
   311         }
       
   312     else
       
   313         {
       
   314         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   315         }
       
   316     }
       
   317 
       
   318 // ----------------------------------------------------------------------------
       
   319 // From class CImumDaSettingsData
       
   320 // CImumDaSettingsDataImpl::GetAttr()
       
   321 // ----------------------------------------------------------------------------
       
   322 //
       
   323 TInt CImumDaSettingsDataImpl::GetAttr(
       
   324     const TUint aAttributeKey,
       
   325     TMsvId& aId ) const
       
   326     {
       
   327     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, ETrue ) )
       
   328         {
       
   329         return iData->GetAttr( aAttributeKey, aId );
       
   330         }
       
   331     else
       
   332         {
       
   333         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   334         }
       
   335     }
       
   336 
       
   337 // ----------------------------------------------------------------------------
       
   338 // From class CImumDaSettingsData
       
   339 // CImumDaSettingsDataImpl::GetAttr()
       
   340 // ----------------------------------------------------------------------------
       
   341 //
       
   342 TInt CImumDaSettingsDataImpl::GetAttr(
       
   343     const TUint aAttributeKey,
       
   344     TDes& aText ) const
       
   345     {
       
   346     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, ETrue ) )
       
   347         {
       
   348         return iData->GetAttr( aAttributeKey, aText );
       
   349         }
       
   350     else
       
   351         {
       
   352         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   353         }
       
   354     }
       
   355 
       
   356 // ----------------------------------------------------------------------------
       
   357 // From class CImumDaSettingsData
       
   358 // CImumDaSettingsDataImpl::GetAttr()
       
   359 // ----------------------------------------------------------------------------
       
   360 //
       
   361 TInt CImumDaSettingsDataImpl::GetAttr(
       
   362     const TUint aAttributeKey,
       
   363     TDes8& aText ) const
       
   364     {
       
   365     if ( CImumDaSettingsDataCollectionImpl::IsLegalKey( aAttributeKey, ETrue ) )
       
   366         {
       
   367         return iData->GetAttr( aAttributeKey, aText );
       
   368         }
       
   369     else
       
   370         {
       
   371         return TImumDaErrorCode::EKeyCannotBeAssigned;
       
   372         }
       
   373     }
       
   374 
       
   375 // ----------------------------------------------------------------------------
       
   376 // From class CImumDaSettingsData
       
   377 // CImumDaSettingsDataImpl::operator!=()
       
   378 // ----------------------------------------------------------------------------
       
   379 //
       
   380 TBool CImumDaSettingsDataImpl::operator!=(
       
   381     const CImumDaSettingsData& aSettingsData ) const
       
   382     {
       
   383     const CImumInSettingsData* inSettingsData =
       
   384         static_cast<const CImumInSettingsData*>( &aSettingsData );
       
   385 
       
   386     return iData->operator!=( *inSettingsData );
       
   387 
       
   388     }
       
   389 
       
   390 // ----------------------------------------------------------------------------
       
   391 // From class CImumDaSettingsData
       
   392 // CImumDaSettingsDataImpl::operator==()
       
   393 // ----------------------------------------------------------------------------
       
   394 //
       
   395 TBool CImumDaSettingsDataImpl::operator==(
       
   396     const CImumDaSettingsData& aSettingsData ) const
       
   397     {
       
   398     const CImumInSettingsData* inSettingsData =
       
   399         static_cast<const CImumInSettingsData*>( &aSettingsData );
       
   400 
       
   401     return iData->operator==( *inSettingsData );
       
   402 
       
   403     }
       
   404 
       
   405 // ----------------------------------------------------------------------------
       
   406 // From class CImumDaSettingsData
       
   407 // CImumDaSettingsDataImpl::operator[]()
       
   408 // ----------------------------------------------------------------------------
       
   409 //
       
   410 MImumDaSettingsDataCollection& CImumDaSettingsDataImpl::operator[](
       
   411     const TUint aIndex ) const
       
   412     {
       
   413     MImumDaSettingsDataCollection* daDataCollection =
       
   414         &iData->operator[]( aIndex );
       
   415 
       
   416     return *daDataCollection;
       
   417     }
       
   418 
       
   419 // ----------------------------------------------------------------------------
       
   420 // From class CImumDaSettingsData
       
   421 // CImumDaSettingsDataImpl::ResetAll()
       
   422 // ----------------------------------------------------------------------------
       
   423 //
       
   424 void CImumDaSettingsDataImpl::ResetAll()
       
   425     {
       
   426     iData->ResetAll();
       
   427     }
       
   428 
       
   429 // ----------------------------------------------------------------------------
       
   430 // From class CImumDaSettingsData
       
   431 // CImumDaSettingsDataImpl::Reset()
       
   432 // ----------------------------------------------------------------------------
       
   433 //
       
   434 void CImumDaSettingsDataImpl::Reset(
       
   435     const TUint aAttributeKey )
       
   436     {
       
   437     iData->Reset( aAttributeKey );
       
   438     }
       
   439 
       
   440 // ----------------------------------------------------------------------------
       
   441 // From class CImumDaSettingsData
       
   442 // CImumDaSettingsDataImpl::Copy()
       
   443 // ----------------------------------------------------------------------------
       
   444 //
       
   445 TInt CImumDaSettingsDataImpl::Copy(
       
   446     const CImumDaSettingsData& aSettingsData )
       
   447     {
       
   448     const CImumInSettingsData* inSettingsData =
       
   449         static_cast<const CImumInSettingsData*>( &aSettingsData );
       
   450 
       
   451     return iData->Copy( *inSettingsData );
       
   452     }
       
   453 
       
   454 // ---------------------------------------------------------------------------
       
   455 // From class CImumDaSettingsData
       
   456 // CImumDaSettingsDataImpl::GetData()
       
   457 // ---------------------------------------------------------------------------
       
   458 //
       
   459 CImumInSettingsData& CImumDaSettingsDataImpl::GetInData()
       
   460     {
       
   461     return *iData;
       
   462     }
       
   463 
       
   464 // ======================= INTERNAL FUNCTIONALITY ============================
       
   465 
       
   466 // ---------------------------------------------------------------------------
       
   467 // CImumDaSettingsDataImpl::SettingsDataExceptionL()
       
   468 // ---------------------------------------------------------------------------
       
   469 //
       
   470 void CImumDaSettingsDataImpl::SettingsDataExceptionL(
       
   471     const TInt aErrorCode ) const
       
   472     {
       
   473     User::Leave( aErrorCode );
       
   474     __ASSERT_DEBUG( EFalse, User::Panic(
       
   475         KImumInSettingsDataImpl, aErrorCode ) );
       
   476     }