--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/keepalive/flextimer/server/engine/inc/flextimeritem.h Mon May 24 20:51:35 2010 +0300
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2010 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
+ *
+ * Description:
+ * This class contains definition of CFlexTimerItem.
+ *
+ */
+
+// Protection against nested includes
+#ifndef FLEXTIMERITEM_H
+#define FLEXTIMERITEM_H
+
+// System includes
+#include <e32base.h>
+
+// User includes
+// None
+
+// Forward declarations
+class MFlexTimerServiceCB;
+
+// Class declaration
+/**
+ * Timer item that contains expiry time, window size and other timer specific
+ * parameters. Class implements container for one timer information in
+ * FlexTimerServer.
+ */
+class CFlexTimerItem : public CBase
+ {
+public:
+
+ /** Constructor
+ *
+ * Constructs new timer item that contains all information needed to
+ * decide when to launch timer.
+ *
+ * @param aAbsoluteMinTime Left side of the timer launch window.
+ * @param aAbsoluteMaxTime Right side of the timer launch window.
+ * @param aCancelAtSystemTimeChange Whether system time change should
+ * trigger abort.
+ * @param aFlexTimerServiceCB Call back interface. Used to inform about
+ * timeout, abort etc.
+ * @return New CFlexTimer object.
+ */
+ static CFlexTimerItem* NewL( const TTime& aAbsoluteMinTime,
+ const TTime& aAbsoluteMaxTime,
+ TBool aCancelAtSystemTimeChange,
+ const MFlexTimerServiceCB* aFlexTimerServiceCB );
+
+ /** Destructor
+ * Destructs timer item.
+ */
+ virtual ~CFlexTimerItem();
+
+public:
+ /**
+ * Gets the earliest possible moment when this timer can expire.
+ * Places value to reference parameter.
+ *
+ * @param aMinAbsoluteTime After function returns this parameter contains
+ * absolute earliest moment when this timer can expire
+ */
+ inline void GetMinAbsoluteTime( TTime& aMinAbsoluteTime );
+
+ /**
+ * Gets the latest possible moment when this timer must expire.
+ * Places value to reference parameter.
+ *
+ * @param aMaxAbsoluteTime After function returns this parameter contains
+ * absolute latest moment when this timer must expire
+ */
+ inline void GetMaxAbsoluteTime( TTime& aMaxAbsoluteTime );
+
+ /**
+ * Checks whether this timer should be aborted if system time changes
+ *
+ * @return
+ * ETrue - If timer should be aborted when system time changes
+ * EFalse - If timer should not be cancelled when system time changes
+ */
+ inline TBool IsAbortedAtSystemTimeChange();
+
+ /**
+ * Returns timers corresponding CB session pointer.
+ *
+ * @return pointer to session that initiated this timer
+ */
+ const MFlexTimerServiceCB* GetCB();
+
+private:
+ /**
+ * Private contructor. Constructs new timer item that contains all
+ * information needed to decide when to launch timer.
+ *
+ * @param aAbsoluteMinTime Left side of the timer launch window.
+ * @param aAbsoluteMaxTime Right side of the timer launch window.
+ * @param aCancelAtSystemTimeChange Whether system time change should
+ * trigger abort.
+ * @param aFlexTimerServiceCB Call back interface. Used to inform about
+ * timeout, abort etc.
+ *
+ * @return New CFlexTimer object.
+ *
+ */
+ CFlexTimerItem( const TTime& aAbsoluteMinTime,
+ const TTime& aAbsoluteMaxTime,
+ TBool aCancelAtSystemTimeChange,
+ const MFlexTimerServiceCB* aFlexTimerServiceCB );
+
+public:
+ //Data
+ /**
+ * Single linked list link object for timers lists
+ */
+ TSglQueLink iLink;
+
+private:
+ // Data
+ /**
+ * Whether timer should be aborted when system time changes.
+ */
+ TBool iAbortAtSystemTimeChange;
+
+ /**
+ * Left side of the time window when timer can be fired
+ */
+ TTime iAbsoluteMinTime;
+
+ /**
+ * Right side of the time window when timer can be fired
+ */
+ TTime iAbsoluteMaxTime;
+
+ /**
+ * pointer to the session interface that is used to inform timeout
+ */
+ const MFlexTimerServiceCB* iMFlexTimerServiceCB;
+ };
+
+#include "flextimeritem.inl"
+
+#endif //FLEXTIMERITEM_H