diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/ctsydispatchlayer/inc/csupplementaryservicesdispatcher.h --- /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 +#include +#include +#include +#include +#include + +#include + + +#include "requestqueueoneshot.h" +#include +#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_ +