mmserv/radioutility/presetutility/inc/cenrephandler.h
branchRCL_3
changeset 19 095bea5f582e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/presetutility/inc/cenrephandler.h	Tue Aug 31 15:43:02 2010 +0300
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2009 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:  This is a wrapper class of Central Repository, responsible
+*               for the operations that need to access the central respository.
+*
+*
+*/
+
+#ifndef CCENREPHANDLER_H
+#define CCENREPHANDLER_H
+
+// System includes
+#include <e32base.h>
+
+// Constants
+const TInt KBufferLength = 20;
+const TInt KStreamBufferSize = 100;
+
+// Forward declarations
+class CRepository;
+class TPreset;
+class CCenrepBookKeeping;
+
+// Class declaration
+
+/**
+ *  it is a wrapper of Central Repository, responsible for the operations that need to access
+ *  the central respository.
+ */
+class CCenrepHandler : public CBase
+    {
+public:
+
+    /**
+    * Two-phased class constructor.
+    */
+    static CCenrepHandler* NewL();
+    
+    /**
+    * Destructor of CCenrepHandler class.
+    */
+    virtual ~CCenrepHandler();
+
+    /**
+    * Get the maximum number of presets.
+    * @return The maximum number of presets.
+    */
+    TInt MaxPresetCount() const;
+
+    /**
+    * Get the current number of presets.
+    * @return The number of presets.
+    */
+    TInt PresetCount() const;
+
+    /**
+    * Get the index of first preset.
+    * @return The first preset index.
+    */        
+    TInt FirstPreset() const;
+
+    /**
+    * Get the index of the next preset.
+    * @param aFromIndex -  Start from index after this.
+    * @return the next preset index.
+    */           
+    TInt NextPreset( TInt aFromIndex ) const;
+    
+    /**
+    * Delete the specified preset.
+    * Specifying aIndex < 0, will delete all presets.
+    * Has no effect if specified index contains no preset.
+    */
+    TInt DeletePreset( TInt aIndex );
+    
+    /**
+    * Save the preset.
+    * @param aPreset Preset object.
+    * @param aIndex -  Preset index.
+    * @return given/allocated(in case given value was -1) index.
+    */           
+    TInt SavePresetL( const TPreset& aPreset, TInt aIndex = -1 );
+    
+    
+    /**
+    * Read a preset.
+    * @param aIndex -  Preset index.
+    * @param aPreset Preset object to where to update the data.
+    * @return none
+    */           
+    void ReadPresetL( TInt aIndex, TPreset& aPreset );
+
+private:
+
+    /**
+    * Default class constructor.
+    */
+    CCenrepHandler();
+
+    /**
+    * Second phase class constructor.
+    */
+    void ConstructL();
+
+    /**
+    * Read bookkeeping information from the permanent storage.
+    */
+    void ReadBookKeepingL();
+
+    /**
+    * Save bookkeeping information to the permanent storage.
+    */
+    void SaveBookKeeping();
+        
+    /**
+    * Read preconfigured presets from the permanent storage.
+    */
+    void ReadPreDefinedPresetsL();
+
+private: // data
+
+    // Central Repository
+    CRepository*        iCentralRepository;
+
+    // Bookkeeping of existing presets
+    CCenrepBookKeeping* iBookKeeping;
+
+    };
+
+#endif  // CCENREPHANDLER_H