diff -r 000000000000 -r 2e3d3ce01487 commonappservices/alarmservertest/TestAlarmSrv/AlarmCreateDelete/AlarmCreate.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonappservices/alarmservertest/TestAlarmSrv/AlarmCreateDelete/AlarmCreate.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,86 @@ +// Copyright (c) 1999-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: +// + +#include +#include +#include + +LOCAL_D RASCliSession asCliSession; + +LOCAL_C TBool AlarmExistsL() + { + // Get security info of this process. + TSecurityInfo info; + info.Set(RProcess()); + + // Get list of alarms + RArray alarmIds; + //__UHEAP_MARK; + asCliSession.GetAlarmIdListL(alarmIds); + //__UHEAP_MARKEND; + + TInt i; + for(i = 0; i < alarmIds.Count(); i++) + { + TASShdAlarm alarm; + + TInt err = asCliSession.GetAlarmDetails(alarmIds[i], alarm); + + TSecureId sidOfAlarm = alarm.GetSid(); + if(info.iSecureId == sidOfAlarm) + { + // Already an alarm with the same SID of this process exists. + // No need to create another + alarmIds.Reset(); + return ETrue; + } + } + alarmIds.Reset(); + return EFalse; + } + +LOCAL_C void MainL() + { + asCliSession = RASCliSession(); + User::LeaveIfError(asCliSession.Connect()); + + if( !AlarmExistsL() ) + { + TASShdAlarm alarm; + alarm.Category() = KASCliCategoryClock; + alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce; + alarm.NextDueTime().HomeTime(); + + TInt minutes = 60; + alarm.NextDueTime() += TTimeIntervalMinutes(minutes); + + asCliSession.AlarmAdd(alarm); + } + } + +GLDEF_C int E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + if(!cleanup) + { + return KErrNoMemory; + } + TRAPD(err, MainL()); + delete cleanup; + __UHEAP_MARKEND; + return err; + } +