diff -r 6ca72c0fe49a -r a941bc465d9f inc/CPEngReactAuthTransaction.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/CPEngReactAuthTransaction.h Wed Sep 01 12:31:13 2010 +0100 @@ -0,0 +1,164 @@ +/* +* 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: Presence reactive authorization transactions. +* +*/ + +#ifndef __CPENGREACTAUTHTRANSACTION_H +#define __CPENGREACTAUTHTRANSACTION_H + +// INCLUDES +#include + + +// FORWARD DECLARATIONS +class MPEngReactAuth2; +class CPEngReactAuthTransactionImp; +class CPEngNWSessionSlotID2; +class MPEngReactAuthTransactionObserver; +class MPEngAuthorizationRespond; + + +// CLASS DECLARATION + +/** + * Transaction API for presence reactive authorizations. + * + * With this API clients can publish reactive authorization + * responds to network. + * + * Reactive authorization transactions are asynchronous network + * operations, and their end results are signalled to given operation + * observer. + * + * @lib PEngManager2.lib + * @since 3.0 + */ +class CPEngReactAuthTransaction : public CBase + { + + //----------------------------------------------------------------------- + public: /* Construction */ + + /** + * Instantiates CPEngReactAuthTransaction object. + * + * Instantiates CPEngReactAuthTransaction object and connects + * it to identified Presence Engine NWSessionSlot. NWSessionSlot + * must be a valid, existing slot. + * + * Errors: + * - Requested NWSessionSlot not found: KErrNotFound + * - Given NWSessionSlotID malformed: KErrArgument + * + * @param aNWSessionSlotID The session slot ID to identify the + * session slot. + * @param aPriority The priority for CPEngReactAuthTransaction + * client side active objects. These active objects are used when + * asynchronously delivering events to observers. + * + * @return New CPEngReactAuthTransaction instance. + */ + IMPORT_C static CPEngReactAuthTransaction* NewL( + const CPEngNWSessionSlotID2& aNWSessionSlotID, + TInt aPriority = CActive::EPriorityStandard ); + + IMPORT_C static CPEngReactAuthTransaction* NewLC( + const CPEngNWSessionSlotID2& aNWSessionSlotID, + TInt aPriority = CActive::EPriorityStandard ); + + + /** + * Destructor. + * Virtual by CBase. + */ + ~CPEngReactAuthTransaction(); + + + + private: + + CPEngReactAuthTransaction(); + + + + //----------------------------------------------------------------------- + public: /* Reactive authorization publish & synchronization */ + + + /** + * Tests is the reactive authorization publish already active. + * + * @since 3.0 + * @return ETrue if operation is active. Else EFalse. + */ + IMPORT_C TBool IsPublishReactAuthRespondsActive() const; + + + /** + * Publishes the reactive authorization responds to the network server. + * + * There can be just one active reactive authorization publish + * operation at a time per one CPEngReactAuthTransaction instance. + * + * Published authorization responds is kept locked untill the publish + * operation completes (either succesfully or with failure). + * + * Takes ownership to passed authorization responds. If method + * returns error, authorization responds ownership remains on + * the client. In success, sets the given authorization responds + * pointer to NULL. + * + * Passed authorization responds must be loaded from same + * NWSessionSlot as CPEngReactAuthTransaction is connected. + * + * @since 3.0 + * @param aResponds The reactive authorization responds to publish. + * @param aObserver The observer to notify from reactive + * authorization publish events. + * @return Result from initiating reactive authorization publish: + * - KErrNone if reactive authorization publish succesfully initiated. + * - KErrInUse if reactive authorization already on going from object. + * - Else one of system wide error codes. + */ + IMPORT_C TInt PublishReactAuthResponds( + MPEngAuthorizationRespond*& aResponds, + MPEngReactAuthTransactionObserver& aObserver ); + + + /** + * Cancels the current reactive authorization publish operation. + * + * @since 3.0 + */ + IMPORT_C void CancelPublishReactAuthResponds(); + + + + //----------------------------------------------------------------------- + private: /* Data */ + + + //OWN: Implementation + CPEngReactAuthTransactionImp* iImp; + + }; + + + +#endif //__CPENGREACTAUTHTRANSACTION_H + +//End of file + +