diff -r 000000000000 -r e4d67989cc36 genericservices/taskscheduler/INC/CSCH_CLI.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/genericservices/taskscheduler/INC/CSCH_CLI.H Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,232 @@ +// Copyright (c) 2004-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: +// RScheduler class +// Client Interface to Scheduler +// +// + +#if !defined(__CSCH_CLI_H__) +#define __CSCH_CLI_H__ + +#if !defined(__E32BASE_H__) +#include +#endif + +#if !defined(__E32STD_H__) +#include +#endif + +#if !defined(__SCHINFO_H__) +#include +#endif + +#include + + +class TTaskSchedulerCondition; +class TScheduleSettings2; +class TScheduleInfo; + + +/** +Constants +@publishedAll +@deprecated +*/ +const TUint KESchMajorVersionNumber=1; +const TUint KESchMinorVersionNumber=0; +const TUint KESchBuildVersionNumber=50; + + + +/** +Client side interface to the Task Scheduler. +@publishedAll +@released +*/ +class RScheduler : public RSessionBase + { +public: + IMPORT_C RScheduler(); + IMPORT_C TInt Connect(); + IMPORT_C TVersion Version() const; + + // client registration + IMPORT_C TInt Register(const TFileName& aFileName,const TInt aPriority); + + // schedule editing + IMPORT_C TInt CreatePersistentSchedule(TSchedulerItemRef& aRef, + const CArrayFixFlat& aEntryList); + + IMPORT_C TInt CreatePersistentSchedule(TSchedulerItemRef& aRef, + const CArrayFixFlat& aConditions, + const TTsTime& aDefaultRunTime); + + IMPORT_C TInt DeleteSchedule(const TInt aScheduleHandle) const; + + IMPORT_C TInt DisableSchedule(const TInt aScheduleHandle) const; + + IMPORT_C TInt EnableSchedule(const TInt aScheduleHandle) const; + + // This will return KErrArgument if the schedule is not a time based one. + // (consistent behaviour with GetScheduleL below). + IMPORT_C TInt EditSchedule(const TInt aScheduleHandle, + const CArrayFixFlat& aEntryList); + + // This will return KErrArgument if the schedule is not a condition based one. + // (consistent behaviour with GetScheduleL below). + IMPORT_C TInt EditSchedule(TInt aScheduleHandle, + const CArrayFixFlat& aConditions, + const TTsTime& aDefaultRunTime); + + //task funtions + // Schedule a task based on a persistent schedule. Will return KErrArgument + // if schedule is a condition based one and task repeat is not 0. + IMPORT_C TInt ScheduleTask(TTaskInfo& aTaskInfo, + HBufC& aTaskData, + const TInt aScheduleHandle); + + //creates a transient schedule + IMPORT_C TInt ScheduleTask(TTaskInfo& aTaskInfo, + HBufC& aTaskData, + TSchedulerItemRef& aRef, + const CArrayFixFlat& aEntryList); + + // creates a transient schedule based on conditions. Will return KErrArgument + // if schedule is a condition based one and task repeat is not 0. + IMPORT_C TInt ScheduleTask(TTaskInfo& aTaskInfo, + HBufC& aTaskData, + TSchedulerItemRef& aRef, + const CArrayFixFlat& aConditions, + const TTsTime& aDefaultRunTime); + + IMPORT_C TInt DeleteTask(const TInt aTaskId) const; + + //retrieving + IMPORT_C TInt GetScheduleRefsL(CArrayFixFlat& aScheduleRefArray, + const TScheduleFilter aFilter); + + // Gets time based schedule. Will return KErrArgument if scheduleType + // is not time based. + IMPORT_C TInt GetScheduleL(const TInt aScheduleHandle, + TScheduleState2& aState, + CArrayFixFlat& aEntries, + CArrayFixFlat& aTasks, + TTsTime& aDueTime); + + // Gets condition based schedule. Will return KErrArgument if scheduleType + // is not condition based. + IMPORT_C TInt GetScheduleL(TInt aScheduleHandle, + TScheduleState2& aState, + CArrayFixFlat& aConditions, + TTsTime& aDefaultRunTime, + CArrayFixFlat& aTasks); + + IMPORT_C TInt GetTaskRefsL(CArrayFixFlat& aTasks, + const TScheduleFilter aScheduleFilter, + const TTaskFilter aTaskFilter); + + IMPORT_C TInt GetTaskInfoL(const TInt aTaskId, + TTaskInfo& aTaskInfo, + TPtr& aTaskData, + TSchedulerItemRef& aRef, + TTsTime& aNextDue); + + IMPORT_C TInt GetTaskDataSize(const TInt aTaskId, TInt& aSize); + + // Gets the scheduletype for a given schedule handle + IMPORT_C TInt GetScheduleTypeL(TInt aScheduleHandle, + TScheduleType& aScheduleType); +public: + //deprecated API functions as of v9.2 + //clients of these APIs are encouraged to migrate to the equivalent APIs above. + //see ../Documentation/Feature Documentation/SGL.GT0250.204 Task Scheduler Migration Guide to new APIs in Symbian OS v9.x.doc + + IMPORT_C TInt CreatePersistentSchedule(TSchedulerItemRef& aRef, + const CArrayFixFlat& aEntryList); + + IMPORT_C TInt CreatePersistentSchedule(TSchedulerItemRef& aRef, + const CArrayFixFlat& aConditions, + const TTime& aDefaultRunTime); + + IMPORT_C TInt EditSchedule(const TInt aScheduleHandle, + const CArrayFixFlat& aEntryList); + + IMPORT_C TInt EditSchedule(TInt aScheduleHandle, + const CArrayFixFlat& aConditions, + const TTime& aDefaultRunTime); + + IMPORT_C TInt ScheduleTask(TTaskInfo& aTaskInfo, + HBufC& aTaskData, + TSchedulerItemRef& aRef, + const CArrayFixFlat& aEntryList); + + IMPORT_C TInt ScheduleTask(TTaskInfo& aTaskInfo, + HBufC& aTaskData, + TSchedulerItemRef& aRef, + const CArrayFixFlat& aConditions, + const TTime& aDefaultRunTime); + + IMPORT_C TInt GetScheduleL(const TInt aScheduleHandle, + TScheduleState& aState, + CArrayFixFlat& aEntries, + CArrayFixFlat& aTasks, + TTime& aDueTime); + + IMPORT_C TInt GetScheduleL(TInt aScheduleHandle, + TScheduleState& aState, + CArrayFixFlat& aConditions, + TTime& aDefaultRunTime, + CArrayFixFlat& aTasks); + + IMPORT_C TInt GetTaskInfoL(const TInt aTaskId, + TTaskInfo& aTaskInfo, + TPtr& aTaskData, + TSchedulerItemRef& aRef, + TTime& aNextDue); + +public://debug functions. + //these functions are included in rel for rel/deb compatibility, + //but only do stuff in debug builds + IMPORT_C TInt __DbgMarkHeap(); + IMPORT_C TInt __DbgCheckHeap(TInt aCount); + IMPORT_C TInt __DbgMarkEnd(TInt aCount); + IMPORT_C TInt __DbgFailNext(TInt aCount); + IMPORT_C TInt __DbgResetHeap(); + IMPORT_C TInt __FaultServer();//kill the server! + +private: + TInt CreateSchedule(TSchedulerItemRef& aRef, + const CArrayFixFlat& aEntryList, + const TScheduleSettings2& aSettings); + TInt CreateSchedule(TSchedulerItemRef& aRef, + const CArrayFixFlat& aConditions, + const TTsTime& aDefaultRunTime, + const TScheduleSettings2& aSettings); + TInt GetScheduleInfo(const TInt aScheduleHandle, + TScheduleInfo& aInfo, + TTsTime& aNextDue); + TInt GetScheduleDataL(const TInt aScheduleHandle, + const TScheduleInfo& aInfo, + CArrayFixFlat& aEntries); + TInt GetScheduleDataL(const TInt aScheduleHandle, + const TScheduleInfo& aInfo, + CArrayFixFlat& aConditions, + TTsTime& aDefaultRunTime); + TInt GetTaskDataL(const TInt aScheduleHandle, + const TScheduleInfo& aInfo, + CArrayFixFlat& aTasks); + }; + +#endif