diff -r 000000000000 -r 094583676ce7 PECengine/StorageManager2/ClientInc/PEngStorageManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/StorageManager2/ClientInc/PEngStorageManager.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,192 @@ +/* +* Copyright (c) 2002 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: Static interface of the storage manager +* +*/ + + +#ifndef __PENGSTORAGEMANAGER_H__ +#define __PENGSTORAGEMANAGER_H__ + +// INCLUDES +#include +#include "RObjectArray.h" + + +// FORWARD DECLARATIONS +class MPEngStorageManager; +class MPEngStorageManagerWatcher; +class CPEngSessionSlotId; +class MPEngGlobalEventObserver; +class CPEngSessionSlotState; + +// Local Data Structures + +/** + * Presence Server notify factory to register observers for listening + * of new events, SIDs changes or notifying about SID change + * when ever there is any observer, SAP settings store is always observer + * and active folder in the storage manager is changed + * does not matter on the nature of the observer, SID, Event, Stolid + * + * @lib PEngClient + * @since 3.0 + */ +class PEngStorageManager + { + + public: // New functions + + /** + * Retrieves Storage Manager instance + * Ownership is passed to the caller + * To get Storage manager which has handle to the correct + * sub-folder of the Storage, Server address and user name + * has to be specified + * + * @since 3.0 + * @param aSessionSlot session slot Class which caries + * unique information about the session + * @return MPEngStorageManager type pointer, ownership is + * passed to the caller + */ + IMPORT_C static MPEngStorageManager* GetStorageManagerL( + const CPEngSessionSlotId& aSessionSlot ); + + + /** + * Retrieves Storage Manager Watcher reference + * When this method is called, Reference counter is increased + * and when user does not need watcher, close shall be called + + * To get Storage manager Watcher which has handle to the + * correct sub-folder of the Storage, Server address + * and user name has to be specified + * + * @since 3.0 + * @param aSessionSlot session slot Class which caries + * unique information about the session + * @return MPEngStorageManagerWatcher type pointer, + * ownership is passed to the caller + */ + IMPORT_C static MPEngStorageManagerWatcher* GetStorageManagerWatcherL( + const CPEngSessionSlotId& aSessionSlot ); + + + /** + * Create Session folder in the storage + * This will ensure existence of the session slot folder till the + * moment calling application will not unregister from the + * session slot folder ( RemoveSessionFolderL) + * + * @since 3.0 + * @param aSessionSlot session slot Class which caries + * unique information about the session + * @param aApplicationId calling application Id + */ + IMPORT_C static void CreateSessionFolderL( + const CPEngSessionSlotId& aSessionSlot, + const TDesC& aApplicationId ); + + /** + * Remove Session folder from the storage, with the session folder + * Session is deleted from the storage, only if the calling + * application was the last one registered (CreateSessionFolderL()) + * + * @since 3.0 + * @param aSessionSlot session slot Class which caries + * unique information about the session + * @param aApplicationId calling application Id + */ + IMPORT_C static void RemoveSessionFolderL( + const CPEngSessionSlotId& aSessionSlot, + const TDesC& aApplicationId ); + + /** + * Get Session slot state. + * + * @since 3.0 + * @param aSessionSlot session slot Class which caries + * unique information about the session + * @param aSessionSlotState will be filled on return with the + * state of the session slot + */ + IMPORT_C static void SessionSlotStateL( + const CPEngSessionSlotId& aSessionSlot, + CPEngSessionSlotState& aSessionSlotState ); + + /** + * Get list of existing Session slots + * Returns array of all existing session slots, no matter if + * session is opened or closed. + * + * @since 3.0 + * @param aSessionSlots array where session slots states will be + * stored + */ + IMPORT_C static void AllSessionSlotsStatesL( + RObjectArray& aSessionSlots ); + + + /** + * Register Global event observer + * Global event observer will be notified about all events + * of the PEC engine + * + * @since 3.0 + * @param aGlobalObserver call back interface implemented by the + * observer + * Function leaves with KErrAlreadyExists + * , if same observer is already registered + */ + IMPORT_C static void RegisterGlobalEventObserverL( + MPEngGlobalEventObserver& aGlobalObserver ); + + /** + * Unregister Global event observer + * Global observer is unregistered, if observer is not found + * among the registered observers, function is ignored + * + * @since 3.0 + * @param aGlobalObserver call back interface implemented by the + * observer + */ + IMPORT_C static void UnregisterGlobalObserver( + MPEngGlobalEventObserver& aGlobalObserver ); + + + protected: // Constructors and destructor + + /** + * C++ default constructor. + */ + PEngStorageManager(); + + /** + * Destructor. + */ + virtual ~PEngStorageManager(); + + // Prohibit copy constructor if not deriving from CBase. + PEngStorageManager( const PEngStorageManager& ); + + // Prohibit assignments operator if not deriving from CBase. + PEngStorageManager& operator=( const PEngStorageManager& ); + + }; + + +#endif // __PENGSTORAGEMANAGER_H__ + +// End of File