diff -r 000000000000 -r b497e44ab2fc terminalsecurity/SCP/DmEventNotifier/inc/MMCService.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/terminalsecurity/SCP/DmEventNotifier/inc/MMCService.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,103 @@ +/* +* 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 header contains the class for MMC insertion, removal service +* +*/ +#ifndef __MMCSERVICE__H_ +#define __MMCSERVICE__H_ + +//System includes +#include +#include +#include +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#else +#include +#include +#endif + +//User includes +#include "DmEventServiceBase.h" + +//The publish subscribe key with condition. Do not alter this unless absolutely needed! +const TPSKey KMMCPSKey(KPSUidUikon,KUikMMCInserted); +//Condition to check when MMC is removed +const TPSKeyCondition KMMCPSKeyConditionInsert(KMMCPSKey.iConditionCategory, KMMCPSKey.iConditionKey, 1, TTaskSchedulerCondition::EEquals); +//Condition to check when MMC is present +const TPSKeyCondition KMMCPSKeyConditionRemove(KMMCPSKey.iConditionCategory, KMMCPSKey.iConditionKey, 0, TTaskSchedulerCondition::EEquals); + +//The task name for this service. Do not alter this unless absolutely needed! +_LIT(KMmcTaskName, "MmcTask"); + +/** + * Derives the base service and implementes service for MMC card insertion and removal + * + * @since S60 v5.2 + */ +NONSHARABLE_CLASS(CMmcService) : public CDmEventServiceBase + { + + public: + /** Two phase construction **/ + static CMmcService* CMmcService::NewL(); + + static CMmcService* CMmcService::NewLC(); + + /** Virtual destructor **/ + virtual ~CMmcService(); + + /** + * Waits until any MMC activity is complete + * + * @since S60 v5.2 + * @return None. Can leave with system wide error + */ + void WaitForRequestCompleteL(); + + /** + * This functions tells if the publish subscribe key exists or not. It is called + * before registering the condition schedule. + * + * @since S60 v5.2 + * @return ETrue if exists, otherwise EFalse + */ + TBool IsKeyValid(); + + /** + * Returns the task name of the service, which should be unique in this application. + * + * @since S60 v5.2 + * @return task name + */ + const TDesC& TaskName(); + + void UpdateMmcStatus(); + + private: + /** Constructors **/ + CMmcService(); + + CMmcService(const TPSKeyCondition& aPSKeyCondition); + + private: + /** Initializes the members of the class **/ + void ConstructL(); + + TInt iLookingFor; + + }; + +#endif // __MMCSERVICE__H_ +// End of File