diff -r 0aa8cc770c8a -r 4a793f564d72 mtpdataproviders/mtppictbridgedp/pictbridgeengine/inc/dpsstatemachine.h --- a/mtpdataproviders/mtppictbridgedp/pictbridgeengine/inc/dpsstatemachine.h Tue Aug 31 16:03:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* -* Copyright (c) 2006, 2007 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 class defines the dps state machine. -* -*/ - - -#ifndef DPSSTATEMACHINE_H -#define DPSSTATEMACHINE_H - -#include "dpsconst.h" -#include "dpsdefs.h" - -class CDpsTransaction; -class CDpsEngine; -class CDpsScriptReceiver; -class MDpsState; -class TMDpsOperation; -class CDpsScriptSender; - -/** -* This class defines the dps state machine using the state design pattern -*/ -NONSHARABLE_CLASS(CDpsStateMachine) : public CBase - { - - public: - /** - * Two phase constructor - * @param aEngine a pointer to dps engine object - * @return the CDpsOperator instance - */ - static CDpsStateMachine* NewL(CDpsEngine *aEngine); - - /** - * Destructor - */ - ~CDpsStateMachine(); - - /** - * Creates the dps transaction. It further calls CreateRequest() - * to create dps device request script. - * @param aParam the dps operation object, passed from UI - */ - void StartTransactionL(TMDpsOperation* aOperation); - - /** - * Initializes the state machine - */ - void Initialize(); - - /** - * Handles errors - */ - inline void Error(TInt err); - - /** - * Notifies script sent - */ - inline void ScriptSentNotifyL(TBool aReply); - - /** - * Notifies script received - */ - inline void ScriptReceivedNotifyL(TBool aReply); - - /** - * Sets the current state - * @param aState the state to be set - */ - inline void SetState(MDpsState* aState); - - /** - * Gets the idle state - */ - inline MDpsState* IdleState() const; - - /** - * @return the sending request state object - */ - inline MDpsState* SendingReqState() const; - - /** - * @return the waiting for reply state object - */ - inline MDpsState* WaitingRepState() const; - - /** - * @return the sending reply state object - */ - inline MDpsState* SendingRepState() const; - - /** - * @return the CDpsScriptReceiver object - */ - inline CDpsScriptReceiver* ScriptReceiver() const; - - /** - * @return CDpsScriptSender pointer - */ - inline CDpsScriptSender* ScriptSender() const; - - /** - * @return the CDpsTransaction object - */ - inline CDpsTransaction* Trader() const; - - /** - * @return the current Dps operation enum - */ - inline TDpsOperation Operation() const; - - /** - * Sets the current Dps operation enum - * @param aOp the Dps operation enum to be set - */ - inline void SetOperation(TDpsOperation aOp); - - /** - * @return the Dps operation object - */ - inline TMDpsOperation* MOperation() const; - - /** - * @return the Dps event enum - */ - inline TDpsEvent Event() const; - - /** - * Sets the current Dps event - * @param aEvent the Dps event to be set - */ - inline void SetEvent(TDpsEvent aEvent); - - /** - * @return the current state. - */ - inline MDpsState* CurState() const; - - /** - * @return the dps engine object. - */ - inline CDpsEngine* DpsEngine() const; - - /** - * - */ - inline TInt CurError() const; - - private: - /** - * Default constructor - * @param aEngine a pointer to dps engine object - */ - CDpsStateMachine(CDpsEngine* aEngine); - - /** - * Two phase constructor. The functions which called in constructor - * and might leave should be called here - */ - void ConstructL(); - - - private: - // owned by this class - MDpsState* iIdleState; - // owned by this class - MDpsState* iSendingReqState; - // owned by this class - MDpsState* iWaitingRepState; - // owned by this class - MDpsState* iSendingRepState; - // pointer to the current state object - MDpsState* iCurState; - // not owned by this class - TMDpsOperation* iMOperation; - - // not owned by this class - CDpsEngine *iEngine; - // the current dps operation, can be empty - TDpsOperation iOperation; - // the current dps event, can be empty - TDpsEvent iEvent; - // the pointer to dps operation object, which takes - // care of creating and parsing dps script - // owned by this class - CDpsTransaction *iTrader; - // the pointer to dps script receiving notifier - // owned by this class - CDpsScriptReceiver* iScriptReceiver; - - // the pointer to script sender object, owned by this class - CDpsScriptSender* iScriptSender; - TInt iCurError; - }; - -#include "dpsstatemachine.inl" -#endif