cbsref/telephonyrefplugins/atltsy/atcommand/generic/inc/unsolicitedeventmonitor.h
branchRCL_3
changeset 19 630d2f34d719
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cbsref/telephonyrefplugins/atltsy/atcommand/generic/inc/unsolicitedeventmonitor.h	Tue Aug 31 16:23:08 2010 +0300
@@ -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 contains CUnsolicitedEventMonitor which mornitor the arriving unsocilited event and then notify this to all observers.
+// 
+
+#ifndef UNSOLICITEDEVENTMONITOR_H_
+#define UNSOLICITEDEVENTMONITOR_H_
+
+//system include
+
+//user include
+#include "atcommandcontrolbase.h"
+#include "globalphonemanager.h"
+#include "atunsolicitedobserver.h"
+#include <ctsy/ltsy/cctsydispatchercallback.h>
+
+/**
+ * This is a watcher class which mornitor the unsolicited events sent by baseband.
+ * Notify all the interesting observers when an unsolicited event has been received
+ */
+class CUnsolicitedEventMonitor : public CATCommandControlBase
+	{
+public:
+	/**
+	 * Factory function
+	 */
+	static CUnsolicitedEventMonitor* NewL(CGlobalPhonemanager& aPhoneglobals,
+						                  CCtsyDispatcherCallback& aCtsyDispatcherCallback);
+	
+	/**
+	 * Factory function
+	 */
+	static CUnsolicitedEventMonitor* NewLC(CGlobalPhonemanager& aPhoneglobals,
+			                               CCtsyDispatcherCallback& aCtsyDispatcherCallback);
+	
+	/**
+	 * Destructor
+	 */
+	virtual ~CUnsolicitedEventMonitor();
+	
+	/**
+	 * Add the observer which is interested in geting the notification of incoming unsolicited event  
+	 */
+	void AddUnsolicitedObserver(const MLtsyUnsolicitedCommandObserver* aObserver);
+	
+	/**
+	 * Remove the unsolicited observer
+	 */
+	void RemoveUnsolicitedObserver(const MLtsyUnsolicitedCommandObserver* aObserver);
+	
+	/**
+	 * Notify all the observers that the unsoclicited event is received
+	 */
+	void NotifyEveryObserver();
+	
+	/**
+	 * Start to mornitor
+	 */
+	void StartUnsolicitedObserver();
+	
+	/**
+	 * Stop to mornitor
+	 */
+	void StopUnsolicitedObserver();
+	
+protected:
+	/**
+	 * The constructor
+	 */
+	CUnsolicitedEventMonitor(CGlobalPhonemanager& aPhoneglobals,
+			                 CCtsyDispatcherCallback& aCtsyDispatcherCallback);
+	
+	/**
+	 * 2nd constructor
+	 */
+	void ConstructL();
+	
+public:
+	/**
+	 * Inherit from CAtCommandContolBase
+	 */
+	virtual void AtCommandExecuteComplete(TAtEventSource aEventSource, TInt aStatus);
+	
+private:
+	/**
+	 * Own
+	 * Store a list of observers
+	 */
+	RPointerArray <MLtsyUnsolicitedCommandObserver> iArray;
+	};
+
+#endif /*UNSOLICITEDEVENTMONITOR_H_*/