/*
* Copyright (c) 2008 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: missed alarm store class description
*
*/
#ifndef __MISSEDALARMSTORE_H__
#define __MISSEDALARMSTORE_H__
//Include files
#include <centralrepository.h>
#include <e32cons.h>
#include "missedalarm.h"
/**
* Class Declaration.
* CMissedAlarmStore is the implementation for storing missed alarms' information.
*/
NONSHARABLE_CLASS( CMissedAlarmStore ) : public CBase
{
public:
/**
* First stage constructor
* Creates an instance of CMissedAlarmStore and places it
* on the cleanup stack before passing ownership to the caller.
*/
IMPORT_C static CMissedAlarmStore* NewLC();
/**
* First stage constructor
* Creates an instance of CMissedAlarmStore and places it
* on the cleanup stack before passing ownership to the caller.
*/
IMPORT_C static CMissedAlarmStore* NewL(CRepository& aRepository);
/**
* Class destructor
* Frees all resources used by this class
*/
~CMissedAlarmStore();
public:
/**
* AddL
* Add the list of CMissedAlarm in the Central Repository.
* @param aMissedAlarmList Pointer array of CMissedAlarm objects.
*/
IMPORT_C void AddL( RPointerArray<CMissedAlarm>& aMissedAlarmList );
/**
* GetL
* Gets the list of CMissedAlarm from the Central Repository.
* @param aMissedAlarmList Pointer array of CMissedAlarm objects.
* @return Error code
*/
IMPORT_C void GetL( RPointerArray<CMissedAlarm> &aArray );
/**
* RemoveAllL
* Removes all the entries from the central repository.
* @return Error code
*/
IMPORT_C void RemoveAllL();
/**
* RemoveL
* Removes an entry from the central repository.
* @param aMissedAlarm The entry to be removed.
* @return Error code
*/
IMPORT_C void RemoveL( CMissedAlarm& aMissedAlarm );
/**
* CountL
* Counts the number of entries in the central repository.
* @param aCount The total number of entries in the central repository.
* @return Error code
*/
IMPORT_C void CountL( TUint32 &aCount );
public:
/**
* This callback method is used to notify the client about
* changes for real value keys, i.e. key type is ERealKey.
*
* @param aId Id of the key that has changed.
* @param aNewValue The new value of the key.
*/
void HandleNotifyGeneric( TUint32 aId );
private:
/**
* SetL
* Add the single entry in the Central Repository.
* @param aLuid The LUID of the missed alarm.
* @param aTTime The instance start time.
* @param aCalFileName The Calendar file name.
* @return Error code
*/
void SetL( const TInt aLuid, const TTime aTTime, const TDesC& aCalFileName );
/**
* Delete old entry and insert new entry when the
* missed alarms count is more than 10 entries.
*/
void DeleteEntryAndReArrangeL(TInt aDeletedIndex);
private:
/**
* Private constructor
*/
CMissedAlarmStore();
/**
* Private constructor
*/
CMissedAlarmStore(CRepository& aRepository);
/**
* Second stage constructor
* Performs any leaving operations needed for construction.
*/
void ConstructL();
private:
CRepository* iRepository;
};
#endif //__MISSEDALARMSTORE_H__
// End of file