--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoscheduler/SchedulerServer/inc/CCseSemaphoreController.h Thu Dec 17 09:14:38 2009 +0200
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: Semaphore controller. Checks once a while if given semaphore is*
+*/
+
+
+
+
+#ifndef __CCSESEMAPHORECONTROLLER_H
+#define __CCSESEMAPHORECONTROLLER_H
+
+// INCLUDES
+#include <e32base.h>
+
+// CONSTANTS
+// None.
+
+// MACROS
+// None.
+
+// DATA TYPES
+// None
+
+// FUNCTION PROTOTYPES
+// None.
+
+// FORWARD DECLARATIONS
+// None
+
+// CLASS DECLARATION
+class RSemaphore;
+class MCseSemaphoreSignalObserver;
+
+/**
+* CCseSemaphoreController
+*
+* @lib
+*/
+class CCseSemaphoreController : public CTimer
+ {
+ public: // Constructors and destructors
+ /**
+ * Destructor.
+ */
+ virtual ~CCseSemaphoreController();
+
+ /**
+ * Two-phased constructor.
+ * @param aSemaphore Semaphore to be followed.
+ * @param aObserver A pointer back to server engine through observer.
+ */
+ static CCseSemaphoreController* NewL( RSemaphore& aSemaphore,
+ MCseSemaphoreSignalObserver& aObserver );
+
+ /**
+ * Starts checking if semaphore is signalled. Default interval is 5000ms.
+ */
+ void Start( );
+
+ /**
+ * Stops checking semaphore.
+ */
+ void Stop( );
+
+ private: // Constructors and destructors
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * C++ default constructor.
+ * @param aSemaphore Semaphore to be followed.
+ * @param aObserver A pointer back to server engine through observer.
+ */
+ CCseSemaphoreController( RSemaphore& aSemaphore,
+ MCseSemaphoreSignalObserver& aObserver );
+
+ private: // Functions from base classes
+ /**
+ * RunL
+ * @return None
+ */
+ void RunL();
+
+ /**
+ * Sets new interval how often semaphore signal is checked. Doesn't restart
+ * checking automatically.
+ * @param aInterval Interval how often semaphore signal is checked in milliseconds.
+ */
+ void SetInterval( TUint aInterval );
+
+ private: // data
+
+ /**
+ * Semaphore under observation.
+ */
+ RSemaphore& iSemaphore;
+
+ /**
+ * Reference to observer.
+ */
+ MCseSemaphoreSignalObserver& iObserver;
+
+ /**
+ * Interval how often semaphore signal is checked in milliseconds.
+ * Default is 5000 ms.
+ */
+ TUint iInterval;
+ };
+
+
+#endif // __CCSESEMAPHORECONTROLLER_H