diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacDot11SoftReset.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacDot11SoftReset.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,214 @@ +/* +* Copyright (c) 2005-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: Declaration of the WlanDot11SoftReset class +* +*/ + +/* +* %version: 14 % +*/ + +#ifndef WLANDOT11SOFTRESET_H +#define WLANDOT11SOFTRESET_H + +#include "UmacDot11State.h" + +/** + * Resets the WHA layer back to the same initial state which it was in after + * Initialize and Configure WHA commands. However, does not reset the MIB + * elements. + * + * @lib wlanumac.lib + * @since S60 v3.1 + */ +class WlanDot11SoftReset : public WlanDot11State + { +public: + + /** + * C++ default constructor. + */ + WlanDot11SoftReset() : iState( EINIT ) {}; + + /** + * Destructor. + */ + virtual ~WlanDot11SoftReset() {}; + +protected: + + // Types for the FSM + // + + // events for the FSM + enum TEvent + { + // state entry action to be executed + ESTATEENTRY, + // underlying sw layer tx delivery complete event + ETXCOMPLETE, + // abort execution event + EABORT, + // defined as an upper bound + EEVENTMAX + }; + + // states of the FSM + enum TState + { + // start state of the state machine + EINIT, + EISSUEDISCONNECT, + ECONFTXQUEUE, + ECONTINUEDOT11TRAVERSE, + // defined as an upper bound + ESTATEMAX + }; + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void Fsm( + WlanContextImpl& aCtxImpl, + TEvent aEvent ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void OnStateEntryEvent( + WlanContextImpl& aCtxImpl ); + + /** + * Performs state initialization actions. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + virtual void InitActions( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void OnTxCompleteEvent( + WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void OnAbortEvent( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ContinueDot11StateTraversal( + WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ChangeInternalState( + WlanContextImpl& aCtxImpl, + TState aNewState ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void IssueDisconnect( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ConfigureQueue( WlanContextImpl& aCtxImpl ); + + /** + * From ?base_class1. + * Returns the states name + * + * @since Series 60 3.1 + * @param aLength (OUT) length of the name of the state + * @return name of the state + */ +#ifndef NDEBUG + virtual const TInt8* GetStateName( TUint8& aLength ) const; +#endif // !NDEBUG + + /** + * From ?base_class1. + * ?description + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + virtual void Entry( WlanContextImpl& aCtxImpl); + + /** + * From ?base_class1. + * ?description + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + virtual void Exit( WlanContextImpl& aCtxImpl); + +private: + + // Prohibit copy constructor + WlanDot11SoftReset( const WlanDot11SoftReset& ); + // Prohibit assigment operator + WlanDot11SoftReset& operator= ( const WlanDot11SoftReset& ); + +protected: // Data + + TState iState; + +#ifndef NDEBUG + // max length of state name for tracing + enum { KMaxStateStringLength = 50 }; + // max length of event name for tracing + enum { KMaxEventStringLength = KMaxStateStringLength }; + + // state names for tracing + static const TUint8 iStateName[ESTATEMAX][KMaxStateStringLength]; + // event names for tracing + static const TUint8 iEventName[EEVENTMAX][KMaxEventStringLength]; + /** name of the state */ + static const TInt8 iName[]; +#endif + }; + +#endif // WLANDOT11SOFTRESET_H