diff -r 14460bf2a402 -r f50f4094acd7 cbsref/telephonyrefplugins/atltsy/atcommand/callcontrol/inc/athangup.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/telephonyrefplugins/atltsy/atcommand/callcontrol/inc/athangup.h Tue Jul 06 15:36:38 2010 +0300 @@ -0,0 +1,187 @@ +// 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: +// Hangup a ongoning call + +#ifndef ATHANGUP_H_ +#define ATHANGUP_H_ + +//system include + +//user include +#include "atcommandbase.h" + +//class forward +class MAllCallReleaseCompleteObserver; + +class CATHangUp : public CAtCommandBase + { +public: + /** + * Factory function + * + */ + static CATHangUp* NewL(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback); + + /** + * Factory function + * + */ + static CATHangUp* NewLC(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback); + + /** + * Destrctor + * + */ + virtual ~CATHangUp(); + + /** + * From CAtCommandBase + * + */ + virtual void ExecuteCommand(); + + /** + * From CAtCommandBase + * + */ + virtual void EventSignal(TAtEventSource aEventSource, TInt aStatus); + + /** + * From CAtCommandBase + * + */ + virtual void ParseResponseL(const TDesC8& aResponseBuf); + + /** + * From CRequestBase + * + */ + virtual void StartRequest(); + + /** + * Add the call release observer + */ + void AddAllCallReleaseObserver(MAllCallReleaseCompleteObserver* aObserver); + + /** + * Reset the internal states + */ + void InitVariable(); + +public: + + /** + * Define the hungup opertion + * + */ + enum THangupOperator + { + EUnknownAPI, + ECustomAPI, + ERMobilePhoneAPI + }; + + /** + * Set the hangup opertion type + * + */ + void SetHangupOperator(THangupOperator aOperator); + +protected: + /** + * Constructor + * + */ + CATHangUp(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback); + + /** + * 2nd constructor + * + */ + void ConstructL(); + + /** + * From CAtCommandBase + * + */ + virtual void Complete(); + +private: + /** + * Handle IO errors + * + */ + void HandleIOError(); + + /** + * Handle response error + * + */ + void HandleResponseError(); + + /** + * Handle response OK + * + */ + void HandleDisconnectedComplete(); + +private: + /** + * Define the states for hanging up a call + * + */ + enum THangUpStep + { + EATHangUpNotInProgress, + EATHangUpWaitForWriteComplete, + EATHangUpReadComplete + }; + +private: + /** + * I/O error when Read or Write + * include timeout + */ + TInt iIOStatus; + + /** + * At command return errors + * + */ + TInt iATResult; + + /** + * Identifier step + * + */ + THangUpStep iHangupStep; + + /** + * The hangup opertion type + * + */ + THangupOperator iHangupOperator; + + /** + * Notify all release + * + */ + MAllCallReleaseCompleteObserver* iAllCallReleaseObserver; + + }; + +#endif /*ATHANGUP_H_*/