presadap12/Parser2/Inc/MPEngAdvTransactionStatus2.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/presadap12/Parser2/Inc/MPEngAdvTransactionStatus2.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2004 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:  Advanced transaction status container interfaces.
+*
+*/
+
+#ifndef __MPENGADVTRANSACTIONSTATUS2_H__
+#define __MPENGADVTRANSACTIONSTATUS2_H__
+
+//  INCLUDES
+#include <E32Base.h>
+#include "MPEngTransactionStatus2.h"
+
+
+// CLASS DECLARATION
+/**
+ * Advanced transaction status container interface.
+ * Transaction status contains errors from presence
+ * transactions with the network SAP.
+ *
+ * Advanced interface allows to add new detailed results.
+ *
+ * @since 3.0
+ */
+class MPEngAdvTransactionStatus2 : public MPEngTransactionStatusCopy2
+    {
+    public: // Setter functions
+
+        /**
+         * Sets the transaction result status.
+         *
+         * If transaction went ok, without any
+         * errors, transaction result status is KErrNone.
+         * Else a error code from PresenceErrors.h
+         *
+         * @since 3.0
+         * @param aStatus The overall error code.
+         */
+        virtual void SetStatus( TInt aStatus ) = 0;
+
+
+        /**
+         * Adds a new detailed result entry.
+         *
+         * Stores a new detailed result entry inside
+         * the transaction status object.
+         *
+         * @since 3.0
+         *
+         * @param aOperationID The ID of operation producing
+         *                    this detailed result entry.
+         * @param aErrorCode Error code.
+         * @param aAttributeTypeID Possible attribute type ID.
+         *                         Pass NULL if no attribute type ID.
+         * @param aPresenceID Possible presence ID.
+         *                    Pass NULL if no presence ID.
+         * @param aContactListID Possible contact list ID.
+         *                       Pass NULL if no contact list ID.
+         * @aDescription Possible description of the error.
+         *               Pass NULL if no description.
+         */
+        virtual void AddDetailedResultL( TInt aOperationID,
+                                         TInt aErrorCode,
+                                         const TUint32* aAttributeTypeID,
+                                         const TDesC* aPresenceID,
+                                         const TDesC* aContactListID,
+                                         const TDesC* aDescription ) = 0;
+
+        /**
+         * Adds a new data result entry.
+         *
+         * Stores a new data result entry inside
+         * the transaction status object.
+         *
+         * @since 3.0
+         *
+         * @param aOperationID The ID of operation producing
+         * this data  result entry.
+         * @param aDataResult The data result. Function takes the ownership
+         * of given buffer only in full success. Buffer may not be NULL.
+         */
+        virtual void AddDataResultL( TInt aOperationID,
+                                     HBufC16* aDataResult ) = 0;
+
+
+
+    public: // Getter functions
+
+
+        /**
+         * Getter for data result.
+         *
+         * Gets a "first" data result entry of asked operation ID.
+         * If there isn't any data result of asked operation, returns
+         * KErrNotFound. Else returns KErrNone.
+         * Subsequent detailed results can be obtained by calling
+         * GetNextDetailedResultByOperation().
+         *
+         * @since 3.0
+         * @param aOperationID Defines which transaction operation type to get.
+         * @param aDataResult On the return contains first found data result.
+         * If no data result is found, contains on the return empty descriptor.
+         * Note: No need to construct a local buffer for descriptor,
+         * pass just TPtrC and on the return TPtrC is set to point
+         * correct data.
+         *
+         * @return Status of getting the data result.
+         * KErrNone if a data result of the asked operation is found.
+         * Else KErrNotFound.
+         */
+        virtual TInt GetFirstDataResultByOperation( TInt aOperationID,
+                                                    TPtrC16& aDataResult ) = 0;
+
+
+        /**
+         * Getter for data result.
+         *
+         * Gets a "next" data result entry of asked operation.
+         * (Operation criteria is set by calling first GetFirstDataResultByOperation().
+         * Once setted operation criteria stays in use untill new criteria is set by
+         * GetFirstDataResultByOperation().)
+         *
+         * If there isn't any more data results of required operation,
+         * returns KErrNotFound. Else returns KErrNone.
+         *
+         * If operation criteria hasn't been set previously, panics with
+         * "PEngTransStat", 3.
+         *
+         * @since 3.0
+         * @param aDataResult On the return contains first found data result.
+         * If no data result is found, contains on the return empty descriptor.
+         * Note: No need to construct a local buffer for descriptor,
+         * pass just TPtrC and on the return TPtrC is set to point
+         * correct data.
+         *
+         * @return Status of getting the data result.
+         * KErrNone if a data result of the asked operation is found.
+         * Else KErrNotFound.
+         */
+        virtual TInt GetNextDataResultByOperation( TPtrC16& aDataResult ) = 0;
+
+
+
+
+    public:  //Destructor
+
+
+        /**
+         * Virtual inline destructor.
+         *
+         * Transaction status objects can be
+         * destroyed using this interface.
+         */
+        virtual ~MPEngAdvTransactionStatus2() {};
+
+    };
+
+#endif      //  __MPENGADVTRANSACTIONSTATUS2_H__
+
+//  End of File
+