wvuing/wvuieng/EngSrc/CCAErrorData.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuieng/EngSrc/CCAErrorData.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2003-2005 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:  Holds error message information
+*
+*/
+
+
+#ifndef CCAERRORDATA_H
+#define CCAERRORDATA_H
+
+// INCLUDES
+#include    <e32base.h>
+
+#include    "MCAError.h"
+
+// FORWARD DECLARATIONS
+class       CImpsDetailedResult;
+
+// CLASS DECLARATION
+
+/**
+*  CCAErrorData holds the message information.
+*
+*
+*  @lib CAEngine.lib
+*  @since 1.2
+*/
+class CCAErrorData : public CBase,
+            public MCAError
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        * @param aDetailedResults defines the error data that will be copied
+        * to internal data structures.
+        */
+        static CCAErrorData* NewL(
+            const CImpsDetailedResult& aDetailedResult );
+
+        /**
+        * Two-phased constructor. More wider API for testing purposes.
+        * @param aCode specifies the additional error code.
+        * @param aDescription is the textual description.
+        * @param aUserIDs specifies user ID list.
+        * @param aGroupIds specifies group ID list.
+        * @param aMessageIDs specifies message IDs.
+        * @param aScreenNames specify the used screen names in the
+        * corresponding groups i.e. aScreenNameGroup.
+        * @param aScreeNameGroup specifies the groups for the screen names.
+        * Index 0 in the group array corresponds to the screen name in
+        * screen name array index 0.
+        */
+        static CCAErrorData* NewL(
+            TInt                aCode,
+            const TDesC&        aDescription,
+            const CPtrC16Array* aUserIDs,
+            const CPtrC16Array* aGroupIDs,
+            const CPtrC16Array* aMessageIDs,
+            const CPtrC16Array* aScreenNames,
+            const CPtrC16Array* aScreenNameGroup );
+
+
+        /**
+        * Destructor.
+        */
+        virtual ~CCAErrorData();
+
+    public: // Functions derived from MCAError
+
+        /**
+        * Returns the error code.
+        * @return Error code.
+        */
+        IMPORT_C TInt Code() const;
+
+        /**
+        * Textual description from the error.
+        * @return Plain text explanation.
+        */
+        IMPORT_C const TDesC& Description() const;
+
+        /**
+        * Return user IDs.
+        * @return Array that holds the user IDs.
+        */
+        IMPORT_C const CDesCArray& UserIDs() const;
+
+        /**
+        * Return group IDs.
+        * @return Array that holds the group IDs.
+        */
+        IMPORT_C const CDesCArray& GroupIDs() const;
+
+        /**
+        * Return message IDs.
+        * @return Array that holds the message IDs.
+        */
+        IMPORT_C const CDesCArray& MessageIDs() const;
+
+        /**
+        * Return screen names. The corresponding group is found from
+        * corresponding array index in the ScreenNameGroup().
+        * @return Array that holds the screen names.
+        */
+        IMPORT_C const CDesCArray& ScreenNames() const;
+
+        /**
+        * Return group IDs.
+        * @return Array that holds the group IDs.
+        */
+        IMPORT_C const CDesCArray& ScreenNameGroup() const;
+
+
+    private:
+
+        /**
+        * By default Symbian OS constructor is private.
+        * @see CCAErrorData::NewL.
+        */
+        void ConstructL( const CImpsDetailedResult& aDetailedResult );
+
+        /**
+        * By default Symbian OS constructor is private.
+        * @see CCAErrorData::NewL.
+        */
+        void ConstructL(
+            TInt                aCode,
+            const TDesC&        aDescription,
+            const CPtrC16Array* aUserIDs,
+            const CPtrC16Array* aGroupIDs,
+            const CPtrC16Array* aMessageIDs,
+            const CPtrC16Array* aScreenNames,
+            const CPtrC16Array* aScreenNameGroup );
+
+        /**
+        * C++ default constructor.
+        */
+        CCAErrorData();
+
+        /**
+        * Sets the error code value.
+        * @param aCode specifies the error code.
+        */
+        void SetCode( TInt aCode  );
+
+        /**
+        * Sets the error user IDs.
+        * @param aUserIDs specify array of User IDs.
+        */
+        void SetUserIDsL( const CPtrC16Array* aUserIDs );
+
+        /**
+        * Sets the group IDs.
+        * @param aGroupIDs specify array of group IDs.
+        */
+        void SetGroupIDsL( const CPtrC16Array* aGroupIDs );
+
+        /**
+        * Sets the message IDs.
+        * @param aMessageIDs specify the array of message IDs.
+        */
+        void SetMessageIDsL( const CPtrC16Array* aMessageIDs );
+
+        /**
+        * Sets the screen names.
+        * @param aScreenNames specify the array of screen names.
+        */
+        void SetScreenNamesL( const CPtrC16Array* aScreenNames );
+
+        /**
+        * Sets the screen name groups.
+        * @param aScreenNameGroups specify the groups in a such
+        * way that the corresponding screen name is found from the
+        * screen name array with the corresponding array index.
+        */
+        void SetScreenNamesGroupsL( const CPtrC16Array* aScreenNameGroups );
+
+    private:    // Data
+
+        // Specifies the error code
+        TInt iCode;
+
+        // Owns: Textual description from the error
+        HBufC* iDescription;
+
+        // Owns: user WV IDs
+        CDesCArrayFlat* iUserIDs;
+
+        // Owns: group WV IDs
+        CDesCArrayFlat* iGroupIDs;
+
+        // Owns: Message IDs
+        CDesCArrayFlat* iMsgIDs;
+
+        // Owns: Screen names
+        CDesCArrayFlat* iScreenNames;
+
+        // Owns: Screen name in group the corresponding screen name
+        // is found with the same index from the iScreenNames
+        CDesCArrayFlat* iScreenNameGroup;
+
+    };
+
+#endif      // CCAERRORDATA_H     
+
+// End of File