telephonyserverplugins/ctsydispatchlayer/inc/csupplementaryservicesdispatcher.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/ctsydispatchlayer/inc/csupplementaryservicesdispatcher.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,177 @@
+// Copyright (c) 2008-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:
+//
+
+/**
+ @file
+ @internalAll 
+*/
+
+#ifndef __CSUPPLEMENTARYSERVICESDISPATCHER_H_
+#define __CSUPPLEMENTARYSERVICESDISPATCHER_H_
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <e32def.h>
+#include <etelmm.h>
+#include <mmlist.h>
+#include <ctsy/rmmcustomapi.h>
+
+#include <ctsy/ltsy/mltsydispatchfactory.h>
+
+
+#include "requestqueueoneshot.h"
+#include <ctsy/ltsy/ltsylogger.h>
+#include "mdispatchercallback.h"
+
+// FORWARD DECLARATIONS
+class CMmDataPackage;
+class MmMessageManagerCallback;
+class TDispatcherHolder;
+
+class MLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck;
+class MLtsyDispatchSupplementaryServicesGetCallWaitingStatus;
+class MLtsyDispatchSupplementaryServicesSendNetworkServiceRequest;
+class MLtsyDispatchSupplementaryServicesGetCallBarringStatus;
+class MLtsyDispatchSupplementaryServicesSetCallBarringStatus;
+class MLtsyDispatchSupplementaryServicesSetCallForwardingStatus;
+class MLtsyDispatchSupplementaryServicesSetCallWaitingStatus;
+class MLtsyDispatchSupplementaryServicesSetSsPassword;
+class MLtsyDispatchSupplementaryServicesGetCallForwardingStatus;
+class MLtsyDispatchSupplementaryServicesSendUssdMessage;
+class MLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck;
+class MLtsyDispatchSupplementaryServicesSendUssdRelease;
+class MLtsyDispatchSupplementaryServicesClearBlacklist;
+
+
+
+// CLASS DECLARATION
+
+/**
+ * This class is responsible for packing and unpacking data belonging
+ * to SupplementaryServices related requests to the Licensee LTSY.
+ */
+class CSupplementaryServicesDispatcher : public CBase, public MDispatcherCallback
+	{
+public:
+
+	virtual ~CSupplementaryServicesDispatcher();
+	
+	static CSupplementaryServicesDispatcher* NewL(
+			MLtsyDispatchFactoryV1& aLtsyFactory,
+			MmMessageManagerCallback& aMessageManagerCallback,
+			CRequestQueueOneShot& aRequestAsyncOneShot);
+	
+	static CSupplementaryServicesDispatcher* NewLC(
+			MLtsyDispatchFactoryV1& aLtsyFactory,
+			MmMessageManagerCallback& aMessageManagerCallback,
+			CRequestQueueOneShot& aRequestAsyncOneShot);
+	
+	// Dispatcher functions for dispatching requests DOWN to the Licensee LTSY
+	
+	TInt DispatchSendNetworkServiceRequestNoFdnCheckL(const CMmDataPackage* aDataPackage);
+	TInt DispatchGetCallWaitingStatusL();
+	TInt DispatchSendNetworkServiceRequestL(const CMmDataPackage* aDataPackage);
+	TInt DispatchGetCallBarringStatusL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSetCallBarringStatusL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSetCallForwardingStatusL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSetCallWaitingStatusL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSetSsPasswordL(const CMmDataPackage* aDataPackage);
+	TInt DispatchGetCallForwardingStatusL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSendUssdMessageL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSendUssdMessageNoFdnCheckL(const CMmDataPackage* aDataPackage);
+	TInt DispatchSendUssdReleaseL();
+	TInt DispatchClearBlacklistL();
+	
+	
+	// Complete functions for receiving completions UP from the Licensee LTSY
+	// via the CCtsyDispatcherCallback object.
+	
+	void CallbackNotifyCallBarringStatusChange(TInt aError, RMobilePhone::TMobilePhoneCBCondition aCondition);
+	void CallbackReceiveUssdMessage(TInt aError, const TDesC8& aMessage, TUint8 aDcs, 
+			RMobileUssdMessaging::TMobileUssdMessageType aType, 
+			RMobileUssdMessaging::TMobileUssdDataFormat aFormat);
+	void CallbackNotifyCallWaitingStatusChange(TInt aError, RMobilePhone::TMobileService aServiceGroup, RMobilePhone::TMobilePhoneCWStatus  aStatus);
+	void CallbackNotifyCallForwardingStatusChange(TInt aError, RMobilePhone::TMobilePhoneCFCondition aCallForwardingCondition);
+	void CallbackNotifyCallForwardingActive(TInt aError, RMobilePhone::TMobileService aServiceGroup, RMobilePhone::TMobilePhoneCFActive aActiveType);
+	void CallbackSendNetworkServiceRequestNoFdnCheck(TInt aError);
+	void CallbackGetCallWaitingStatus(TInt aError,  const CMobilePhoneCWList& aCallWaitingList);
+	void CallbackSendNetworkServiceRequest(TInt aError);
+	void CallbackGetCallBarringStatus(TInt aError, const CMobilePhoneCBList& aCallBarringList);
+	void CallbackSetCallBarringStatus(TInt aError);
+	void CallbackSetCallForwardingStatus(TInt aError);
+	void CallbackSetCallWaitingStatus(TInt aError);
+	void CallbackSetSsPassword(TInt aError);
+	void CallbackGetCallForwardingStatus(TInt aError, const CMobilePhoneCFList& aCallForwardingList);
+	void CallbackSendUssdMessage(TInt aError);
+	void CallbackSendUssdMessageNoFdnCheck(TInt aError);
+	void CallbackSendUssdRelease(TInt aError, TUint8 aOpCode, const TDesC& aAdditionalInfo);
+	void CallbackClearBlacklist(TInt aError);
+	void CallbackGetDiagnosticOctets(TInt aError, TInt aCallId, TUint8 aOctet);
+	void CallbackNotifyAdditionalInfo(TInt aError, TUint8 aOperationCode, const TDesC8& aAdditionalInfo);
+	void CallbackNotifyRequestComplete(TInt aError, TInt aStatus);
+	void CallbackNotifyNetworkEventForwardMode(TInt aError, RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, RMmCustomAPI::TSsForwMode aForwardMode);
+	void CallbackNotifyNetworkEventCallWaiting(TInt aError, RMmCustomAPI::TSsMode aMode, TBool aCallIsWaiting);
+	void CallbackNotifyNetworkEventHoldMode(TInt aError, RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, RMmCustomAPI::TSsHoldMode aHoldMode);
+	void CallbackNotifyNetworkEventConfrence(TInt aError, RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, TBool aConferenceIndicator);
+	void CallbackNotifyNetworkEventCug(TInt aError, RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, TUint16 aCugIndex);
+	void CallbackNotifyNetworkEventClirSuppression(TInt aError, RMmCustomAPI::TSsMode aMode, TBool aClirSuppressionRejected);
+	void CallbackNotifyNetworkEventEctCallState(TInt aError, RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, RMmCustomAPI::TSsEctState aEctCallState, RMmCustomAPI::TSsChoice aEctChoice, const TDesC& aRemotePartyNumber);
+	void CallbackNotifyNetworkEvent(TInt aError, RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode);
+	void CallbackNotifySendNetworkServiceRequest(TInt aError, RMobilePhone::TMobilePhoneNotifySendSSOperation aOperationCode, const TDesC& aAdditionalInfo);
+
+	
+	// From MDispatcherCallback
+	void CallbackSync(CRequestQueueOneShot::TIpcDataPackage& aIpcDataPackage);
+
+	// Other public functions
+	void SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder);
+	
+private:
+
+	CSupplementaryServicesDispatcher(MLtsyDispatchFactoryV1& aLtsyFactory,
+	   			  	 MmMessageManagerCallback& aMessageManagerCallback,
+	   			  	 CRequestQueueOneShot& aRequestAsyncOneShot);		
+	
+	void ConstructL();
+	
+private:	// Not owned
+
+	MLtsyDispatchFactoryV1& iLtsyFactoryV1;
+	MmMessageManagerCallback& iMessageManagerCallback;
+	CRequestQueueOneShot& iRequestAsyncOneShot;
+	TDispatcherHolder* iDispatcherHolder;
+	
+	// Interfaces in the Licensee LTSY, not owned by this object
+	
+    MLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck* iLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck;
+    MLtsyDispatchSupplementaryServicesGetCallWaitingStatus* iLtsyDispatchSupplementaryServicesGetCallWaitingStatus;
+    MLtsyDispatchSupplementaryServicesSendNetworkServiceRequest* iLtsyDispatchSupplementaryServicesSendNetworkServiceRequest;
+    MLtsyDispatchSupplementaryServicesGetCallBarringStatus* iLtsyDispatchSupplementaryServicesGetCallBarringStatus;
+    MLtsyDispatchSupplementaryServicesSetCallBarringStatus* iLtsyDispatchSupplementaryServicesSetCallBarringStatus;
+    MLtsyDispatchSupplementaryServicesSetCallForwardingStatus* iLtsyDispatchSupplementaryServicesSetCallForwardingStatus;
+    MLtsyDispatchSupplementaryServicesSetCallWaitingStatus* iLtsyDispatchSupplementaryServicesSetCallWaitingStatus;
+    MLtsyDispatchSupplementaryServicesSetSsPassword* iLtsyDispatchSupplementaryServicesSetSsPassword;
+    MLtsyDispatchSupplementaryServicesGetCallForwardingStatus* iLtsyDispatchSupplementaryServicesGetCallForwardingStatus;
+    MLtsyDispatchSupplementaryServicesSendUssdMessage* iLtsyDispatchSupplementaryServicesSendUssdMessage;
+    MLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck* iLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck;
+    MLtsyDispatchSupplementaryServicesSendUssdRelease* iLtsyDispatchSupplementaryServicesSendUssdRelease;
+    MLtsyDispatchSupplementaryServicesClearBlacklist* iLtsyDispatchSupplementaryServicesClearBlacklist;
+   
+    
+	}; // class CSupplementaryServicesDispatcher
+
+#endif // __CSUPPLEMENTARYSERVICESDISPATCHER_H_
+