email/imum/Utils/Inc/ImumInSettingsDataImpl.h
branchRCL_3
changeset 60 7fdbb852d323
parent 0 72b543305e3a
equal deleted inserted replaced
57:ebe688cedc25 60:7fdbb852d323
       
     1 /*
       
     2 * Copyright (c) 2002 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:  ImumInSettingsDataImpl.h
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CIMUMINSETTINGSDATAIMPL_H
       
    20 #define CIMUMINSETTINGSDATAIMPL_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <e32base.h>
       
    24 #include <ImumInSettingsData.h>
       
    25 #include "ImumInSettingsDataCollectionImpl.h"
       
    26 #include "ImumInSettingsKeys.h"
       
    27 #include "ImumDaSettingsKeys.h"
       
    28 
       
    29 // CONSTANTS
       
    30 const TInt KImumInConnSettingsGranularity = 2;
       
    31 
       
    32 /** */
       
    33 typedef CArrayPtrFlat<CImumInSettingsDataCollectionImpl> CImumInConnSettings;
       
    34 
       
    35 class CImumMboxDefaultData;
       
    36 class CImumInSettingsDataArray;
       
    37 class CImumInternalApiImpl;
       
    38 class CImumInSettingsDataValidator;
       
    39 class CImumMboxDefaultDataCtrl;
       
    40 
       
    41 /**
       
    42 *
       
    43 *  @lib
       
    44 *  @since S60 3.2
       
    45 */
       
    46 class CImumInSettingsDataImpl : public CImumInSettingsData
       
    47     {
       
    48     public:  // Constructors and destructor
       
    49 
       
    50         /**
       
    51          * Creates object from CImumInSettingsDataImpl and leaves it to cleanup stack
       
    52          *
       
    53          * @since S60 3.2
       
    54          * @return, Constructed object
       
    55          */
       
    56         static CImumInSettingsDataImpl* NewLC(
       
    57             CImumInternalApiImpl& aMailboxApi,
       
    58             const TUid& aProtocol,
       
    59             const CImumMboxDefaultData* aDefaultData = NULL );
       
    60 
       
    61         /**
       
    62          * Create object from CImumInSettingsDataImpl
       
    63          *
       
    64          * @since S60 3.2
       
    65          * @return, Constructed object
       
    66          */
       
    67         static CImumInSettingsDataImpl* NewL(
       
    68             CImumInternalApiImpl& aMailboxApi,
       
    69             const TUid& aProtocol,
       
    70             const CImumMboxDefaultData* aDefaultData = NULL );
       
    71 
       
    72         /**
       
    73          * Destructor
       
    74          *
       
    75          * @since S60 3.2
       
    76          */
       
    77         virtual ~CImumInSettingsDataImpl();
       
    78 
       
    79     public: // New functions
       
    80 
       
    81         /**
       
    82          * Returns the number of connection settings objects.
       
    83          *
       
    84          * @since S60 v3.2
       
    85          * @return Current number of settings data objects.
       
    86          */
       
    87         TInt ConnectionSettingsCount();
       
    88 
       
    89     public: // Functions from base classes
       
    90 
       
    91         /**
       
    92          * Adds new connection settings data object.
       
    93          *
       
    94          * @since S60 3.2
       
    95          * @param
       
    96          * @return
       
    97          */
       
    98         virtual MImumDaSettingsDataCollection& AddSetL(
       
    99             const TUid& aProtocol );
       
   100 
       
   101         /**
       
   102          * Adds new connection settings data object.
       
   103          *
       
   104          * @since S60 3.2
       
   105          * @param
       
   106          * @return
       
   107          */
       
   108         virtual MImumInSettingsDataCollection& AddInSetL(
       
   109             const TUid& aProtocol );
       
   110 
       
   111         /**
       
   112          *
       
   113          * @since S60 3.2
       
   114          * @param
       
   115          * @return
       
   116          */
       
   117         void DelSetL( const TUint aIndex );
       
   118 
       
   119         /**
       
   120          *
       
   121          * @since S60 v3.2
       
   122          * @param
       
   123          * @return
       
   124          */
       
   125         void DelSetL(
       
   126             const MImumDaSettingsDataCollection& aSettingsDataCollection );
       
   127 
       
   128         /**
       
   129          *
       
   130          * @since S60 3.2
       
   131          * @param
       
   132          * @return
       
   133          */
       
   134         MImumDaSettingsDataCollection& GetSetL( const TUint aIndex ) const;
       
   135 
       
   136         /**
       
   137          *
       
   138          * @since S60 3.2
       
   139          * @param
       
   140          * @return
       
   141          */
       
   142         MImumInSettingsDataCollection& GetInSetL( const TUint aIndex ) const;
       
   143 
       
   144         /**
       
   145          *
       
   146          * @since S60 3.2
       
   147          * @param
       
   148          * @return
       
   149          */
       
   150         virtual TInt Validate();
       
   151 
       
   152         /**
       
   153          *
       
   154          * @since S60 3.2
       
   155          * @param
       
   156          * @return
       
   157          */
       
   158         TInt SetAttr( const TUint aAttributeKey, const TInt aValue );
       
   159 
       
   160         /**
       
   161          *
       
   162          * @since S60 3.2
       
   163          * @param
       
   164          * @return
       
   165          */
       
   166         TInt SetAttr( const TUint aAttributeKey, const TInt64 aValue );
       
   167 
       
   168         /**
       
   169          *
       
   170          * @since S60 3.2
       
   171          * @param
       
   172          * @return
       
   173          */
       
   174         TInt SetAttr( const TUint aAttributeKey, const TMsvId aId );
       
   175 
       
   176         /**
       
   177          *
       
   178          * @since S60 3.2
       
   179          * @param
       
   180          * @return
       
   181          */
       
   182         TInt SetAttr( const TUint aAttributeKey, const TDesC& aText );
       
   183 
       
   184         /**
       
   185          *
       
   186          * @since S60 3.2
       
   187          * @param
       
   188          * @return
       
   189          */
       
   190         TInt SetAttr( const TUint aAttributeKey, const TDesC8& aText );
       
   191 
       
   192         /**
       
   193          *
       
   194          * @since S60 3.2
       
   195          * @param
       
   196          * @return
       
   197          */
       
   198         TInt GetAttr( const TUint aAttributeKey, TInt& aValue ) const;
       
   199 
       
   200         /**
       
   201          *
       
   202          * @since S60 3.2
       
   203          * @param
       
   204          * @return
       
   205          */
       
   206         TInt GetAttr( const TUint aAttributeKey, TInt64& aValue ) const;
       
   207 
       
   208         /**
       
   209          *
       
   210          * @since S60 3.2
       
   211          * @param
       
   212          * @return
       
   213          */
       
   214         TInt GetAttr( const TUint aAttributeKey, TMsvId& aId ) const;
       
   215 
       
   216         /**
       
   217          *
       
   218          * @since S60 3.2
       
   219          * @param
       
   220          * @return
       
   221          */
       
   222         TInt GetAttr( const TUint aAttributeKey, TDes& aText ) const;
       
   223 
       
   224         /**
       
   225          *
       
   226          * @since S60 3.2
       
   227          * @param
       
   228          * @return
       
   229          */
       
   230         TInt GetAttr( const TUint aAttributeKey, TDes8& aText ) const;
       
   231 
       
   232         /**
       
   233          *
       
   234          * @since S60 3.2
       
   235          * @param
       
   236          * @return
       
   237          */
       
   238         TBool operator!=( const CImumDaSettingsData& aSettingsData ) const;
       
   239 
       
   240         /**
       
   241          *
       
   242          * @since S60 v3.2
       
   243          * @param
       
   244          * @return
       
   245          */
       
   246         TBool operator!=( const CImumInSettingsData& aSettingsData ) const;
       
   247 
       
   248         /**
       
   249          *
       
   250          * @since S60 3.2
       
   251          * @param
       
   252          * @return
       
   253          */
       
   254         TBool operator==( const CImumDaSettingsData& aSettingsData ) const;
       
   255 
       
   256         /**
       
   257          *
       
   258          * @since S60 v3.2
       
   259          * @param
       
   260          * @return
       
   261          */
       
   262         TBool operator==( const CImumInSettingsData& aSettingsData ) const;
       
   263 
       
   264         /**
       
   265          *
       
   266          * @since S60 v3.2
       
   267          * @param
       
   268          * @return
       
   269          */
       
   270         MImumDaSettingsDataCollection& operator[](
       
   271             const TUint aIndex ) const;
       
   272 
       
   273         /**
       
   274          *
       
   275          * @since S60 3.2
       
   276          * @return
       
   277          */
       
   278         virtual void Reset( const TUint aAttributeKey );
       
   279 
       
   280         /**
       
   281          *
       
   282          * @since S60 3.2
       
   283          */
       
   284         virtual void ResetAll();
       
   285 
       
   286         /**
       
   287          *
       
   288          * @since S60 3.2
       
   289          * @param
       
   290          * @return
       
   291          */
       
   292         TInt Copy( const CImumDaSettingsData& aSettingsData );
       
   293 
       
   294         /**
       
   295          *
       
   296          * @since S60 3.2
       
   297          * @param
       
   298          * @return
       
   299          */
       
   300         TInt Copy( const CImumInSettingsData& aSettingsData );
       
   301 
       
   302         /**
       
   303          * Prints out the data in the object. Debug Only.
       
   304          *
       
   305          * @since S60 3.2
       
   306          */
       
   307         virtual void Log() const;
       
   308 
       
   309     protected:  // Constructors
       
   310 
       
   311         /**
       
   312          * Default constructor for classCImumInSettingsDataImpl
       
   313          *
       
   314          * @since S60 3.2
       
   315          * @return, Constructed object
       
   316          */
       
   317         CImumInSettingsDataImpl(
       
   318             CImumInternalApiImpl& aMailboxApi,
       
   319             const CImumMboxDefaultData* aDefaultData = NULL );
       
   320 
       
   321         /**
       
   322          * Symbian 2-phase constructor
       
   323          *
       
   324          * @since S60 3.2
       
   325          */
       
   326         virtual void ConstructL(
       
   327             const TUid& aProtocol );
       
   328 
       
   329     protected:  // New virtual functions
       
   330     protected:  // New functions
       
   331 
       
   332         /**
       
   333          * Returns protocol specific default data
       
   334          *
       
   335          * @since S60 v3.2
       
   336          * @param aProtocol Protocol, of which default settings are requested
       
   337          * @return Object to default data
       
   338          */
       
   339         const CImumInSettingsDataCollectionImpl* SelectDefaultData(
       
   340             const TUid& aProtocol,
       
   341             const CImumMboxDefaultData* aDefaultData ) const;
       
   342 
       
   343         /**
       
   344          * Throws an exception as leave (release) or panic (debug)
       
   345          *
       
   346          * @since S60 v3.2
       
   347          * @param aErrorCode Error code that is thrown.
       
   348          * @leave aErrorCode
       
   349          */
       
   350         void SettingsDataExceptionL( const TInt aErrorCode ) const;
       
   351 
       
   352     protected:  // Functions from base classes
       
   353 
       
   354     private:  // New virtual functions
       
   355     private:  // New functions
       
   356 
       
   357         /**
       
   358          * Creates validator class and returns reference to it.
       
   359          *
       
   360          * @since S60 v3.2
       
   361          * @return
       
   362          */
       
   363         CImumInSettingsDataValidator& ValidatorL();
       
   364 
       
   365         /**
       
   366          * Analyzes and corrects problems in the data.
       
   367          *
       
   368          * @since S60 v3.2
       
   369          */
       
   370         void ValidateL();
       
   371 
       
   372     private:  // Functions from base classes
       
   373 
       
   374         /**
       
   375          * Creates an identical object of the item.
       
   376          *
       
   377          * @since S60 v3.2
       
   378          * @return A new cloned object
       
   379          */
       
   380         virtual CImumInSettingsData* CloneL() const;
       
   381 
       
   382     public:     // Data
       
   383     protected:  // Data
       
   384 
       
   385         // Owned: Connection settings
       
   386         CImumInConnSettings*            iConnectionSettings;
       
   387         // Owned: Settings
       
   388         CImumInSettingsDataArray*       iSettings;
       
   389         // Owned: Settings validator
       
   390         CImumInSettingsDataValidator*   iValidator;
       
   391         // Not owned: Default settings data object
       
   392         const CImumMboxDefaultData*     iDefaultData;
       
   393         // Not owned: Mailbox API reference
       
   394         CImumInternalApiImpl&           iMailboxApi;
       
   395 
       
   396     private:    // Data
       
   397     };
       
   398 
       
   399 #endif //  CIMUMINSETTINGSDATAIMPL_H
       
   400 
       
   401 // End of File
       
   402 
       
   403