diff -r 000000000000 -r 094583676ce7 wvuing/wvuieng/EngSrc/CCAErrorData.h --- /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 + +#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