/** 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: Store API to retrieve reactive authorization models.**/#ifndef __CPENGREACTAUTHSTORE_H__#define __CPENGREACTAUTHSTORE_H__// INCLUDES#include <E32Base.h>//FORWARD DECLARATIONSclass CPEngReactAuthStoreImp;class CPEngNWSessionSlotID2;class MPEngAuthorizationRequest;class MPEngAuthorizationStatus;class MPEngAuthorizationRespond;/** * Store API to retrieve and manage reactive authorizations. * * With this API clients can access and manage presence * reactive authorizations. * * @lib PEngManager2.lib * @since 3.0 */class CPEngReactAuthStore : public CBase { //----------------------------------------------------------------------- public: /* Construction */ /** * Instantiates CPEngReactAuthStore object. * * Instantiates CPEngReactAuthStore object and connects it to * identified Presence Engine side 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 Presence Engine client side active * objects. These active objects are used when asynchronously delivering * events to observers or maintaining Presence Cache state. * * @return New CPEngReactAuthStore instance. */ IMPORT_C static CPEngReactAuthStore* NewL( const CPEngNWSessionSlotID2& aNWSessionSlotID, TInt aPriority = CActive::EPriorityStandard ); IMPORT_C static CPEngReactAuthStore* NewLC( const CPEngNWSessionSlotID2& aNWSessionSlotID, TInt aPriority = CActive::EPriorityStandard ); /** * Destructor. * Virtual by CBase. */ ~CPEngReactAuthStore(); private: CPEngReactAuthStore(); //----------------------------------------------------------------------- public: /* Reactive authorization requests */ /** * Count of all authorization requests. * * @since 3.0 * @return Count of all authorization requests. */ IMPORT_C TInt AuthorizationReqCount() const; /** * Gets authorization request. * * @since 3.0 * @param aIndex Index of the authorization request. * @return The authorization request. */ IMPORT_C MPEngAuthorizationRequest& AuthorizationReq( TInt aIndex ); /** * Count of pending authorizations requests. * This also includes authorizations which were * already responded, but server reissued them again. * * @since 3.0 * @return Count of pending authorization requests. */ IMPORT_C TInt PendingAuthorizationReqCount() const; /** * Gets pending authorization request. * * @since 3.0 * @param aIndex Index of the pending authorization request. * @return The pending authorization request. */ IMPORT_C MPEngAuthorizationRequest& PendingAuthorizationReq( TInt aIndex ); //----------------------------------------------------------------------- public: /* Reactive authorization responds */ /** * Count of responded authorizations. * * @since 3.0 * @return Count of responded authorizations. */ IMPORT_C TInt RespondedAuthorizationCount() const; /** * Responded authorizations. * * @since 3.0 * @param aIndex Index of the responded authorization. * @return The responded authorization. */ IMPORT_C const MPEngAuthorizationStatus& RespondedAuthorization( TInt aIndex ) const; /** * Count of server denied authorizations. * * @since 3.0 * @return Count of server denied authorizations. */ IMPORT_C TInt ServerDeniedAuthorizationCount() const; /** * Server denied authorization. * * @since 3.0 * @param aIndex Index of server denied authorization. * @return The served denied authorization. */ IMPORT_C const MPEngAuthorizationStatus& ServerDeniedAuthorization( TInt aIndex ) const; //----------------------------------------------------------------------- public: /* Reactive authorization responds */ /** * Gets a authorization respond for editing. * Ownership of authorization respond is transferred * to caller. * * Authorization respond object buffers individual * authorization responses for publishing them at once. * Respond object holds also edit lock, * so two client cannot edit authorization responses * at the same time. * * Lock and buffered responses are released * either by the updating of the reactive authorization * responses to network or by deleting the * respond object. * * @param aRespond The authorization respond object. * If operation succeeds, returns respond object * ownership to caller. * @return Status code from authorization respond creation: * - KErrNone if creation succeeds. * - KErrLocked if authorization respond is already locked. * - Else one of system wide error codes. */ IMPORT_C TInt GetAndLockAuthorizationRespond( MPEngAuthorizationRespond*& aRespond ); //----------------------------------------------------------------------- private: /* Data */ //OWN: Implementation CPEngReactAuthStoreImp* iImp; };#endif // __CPENGREACTAUTHSTORE_H__//End of file