diff -r 26673e532f65 -r 159fc2f68139 ImagePrint/ImagePrintEngine/DeviceProtocols/btprotocol/inc/cbtchannelbase.h --- a/ImagePrint/ImagePrintEngine/DeviceProtocols/btprotocol/inc/cbtchannelbase.h Tue May 25 12:42:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,272 +0,0 @@ -/* -* Copyright (c) 2004-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: Defines the CBtChannelBase class. -* -*/ - - -#ifndef CBTCHANNELBASE_H -#define CBTCHANNELBASE_H - -#include -#include -#include -#include -#include -#include - -#include "crsbtdiscoverengine.h" -#include "tprintcapability.h" -#include "mbtpcobserver.h" -#include "cbtobjectserver.h" -#include "cprintjob.h" -#include "mconfirmationnotify.h" -#include "cbtpasswordquery.h" - -class CBtSoapCodec; -class CObexBufObject; -class CObexClient; -class CObexFileObject; - -/** -* @class CBtChannelBase -* @brief A base class to implement CObexClient use. -* -* This class implements the common methods used for connecting and -* communicating with device via CObexClient using either BPP job based -* printing or OPP simple push. -*/ -NONSHARABLE_CLASS(CBtChannelBase) : public CActive, public MObexAuthChallengeHandler, public MConfirmationNotify - { - public: - - /** ~CBtChannelBase - * @brief Destructor. - */ - virtual ~CBtChannelBase(); - - /** StartL - * @brief Synchronized method to start communication with device. - * Method clears former connections and connects to the device given. - * @param aDevice Device to connect - */ - virtual void StartL( CRsBtDevice& aDevice ); - - /** Stop - * @brief Clears connection. - * Device is disconnected and the channel (CObexClient) is deleted. - */ - virtual void Stop(); - - /** IsConnected - * @brief Checks wether the channel is connected or not. - * @return ETrue if connected, EFalse otherway. - */ - virtual TBool IsConnected(); - - /** Disconnect - * @brief Method to disconnect channel. - */ - virtual void Disconnect(); - - /** FinishPrinting - * @brief Finishes all printing operations started and stops the connection. - */ - virtual void FinishPrinting(); - - /** SetDevice - * @brief Sets the default device. - * @param aDevice Device to set as default - */ - void SetDevice( CRsBtDevice& aDevice ); - - /** Device - * @brief Gets the default device. - * @return Reference to default device. - */ - const CRsBtDevice& Device() const; - - /** JobId - * @brief Gets the default job id. - * @param aId Job id to set as default. - */ - void SetJobId( TInt aId ); - - /** JobId - * @brief Gets the default job id. - * @return Default job id. - */ - TInt JobId() const; - - public: - /** GetUserPasswordL - * @brief Gets the Obex password. - * @return Contain the Realm specified by the unit forcing the Authentication. - */ - virtual void GetUserPasswordL( const TDesC &aRealm ); - - void PasswordQueryCompleteL ( TObexPasskeyBuf aResultPckg ); - - protected: - - /** CBtChannelBase - * @brief C++ constructor - * @param Observer to call back about received feed back or occured errors. - */ - CBtChannelBase(MBtPCObserver& aObs); - - /** ConstructL - * @brief Symbian second phase constructor. - */ - void ConstructL(); - - // =============================== - // From CActive. - // =============================== - virtual void DoCancel(); - virtual TInt RunError(TInt aError) = 0; - - /** ConnectL - * @brief Pure virtual method for CObexClient connection. - */ - virtual void ConnectL() = 0; - - /** TControlState - * @brief Operation states in derived classes. - */ - enum TControlState - { - EStateNone = 0, - - EStateConnecting, - EStateDisconnecting, - EStateGettingCapabilities, - EStateGettingPrinterState, - EStateCreatingJob, - - EStateCancellingJob, - EStateSendingDocument, - EStateSendingXhtml, - EStateSendingOPP, - EStateGettingJobAttributes, - - EStateGetEvent, - EStateGettingEvent, - EStateFinish - }; - - - /** GetSoapResponseL - * @brief Gets Soap response and parses the action name - * @return Soap action ID (TBtSoapActions) - */ - virtual TInt GetSoapResponseL(); - - /** SendSoapRequestL - * @brief Operates Soap Action - */ - virtual void SendSoapRequestL(const TInt aRequest, const TInt aJobId = KErrNotFound); - /// @brief Overwrites SendSoapRequestL - virtual void SendSoapRequestL(const TInt aRequest, TRequestStatus& aStatus, - const TInt aJobId = KErrNotFound); - - /** CompleteRequest - * @brief Completes pending request - */ - void CompleteRequest(TControlState aStateCompleted, TInt aError = KErrNone); - - /** Activate - * @brief Activates object if not already active - */ - virtual void Activate(); - - /** ClearConnection - * @brief Disconnects and deletes the connection. - * In case of pending request, calls Abort for CObexClient. - */ - virtual void ClearConnection(); - - /** WaitL - * @brief Sets the object to wait request to complete if not already waiting. - */ - void WaitL(); - - /** StopWaiting - * @brief Stops the object waiting request to complete if waiting. - */ - void StopWaiting(); - - /** DeleteChannel - * @brief Deletes the channel and initializes it. - */ - void DeleteChannel(); - - protected: - - /** @var MBtPCObserver& iObs - * Observer to call back about received feed back or occured errors. */ - MBtPCObserver& iObs; - - /** @var TControlState iState - * Internal container for current operation state. */ - TControlState iState; - - /** @var TInt iJobId - * Current job id. */ - TInt iJobId; - - /** @var CObexClient* iChannel - * Channel to communicate with device over bluetooth. */ - CObexClient* iChannel; - - /** @var CBtSoapCodec* iSoapCodec - * Helper class to codec and manage SOAP messages. */ - CBtSoapCodec* iSoapCodec; - - /** @var CObexBufObject* iObexBufObject - * OBEX data object, type of 'buffer'. */ - CObexBufObject* iObexBufObject; - - /** @var CObexNullObject* iObexNullObject - * Empty OBEX object for connecting. */ - CObexNullObject* iObexNullObject; - - /** @var CBufBase* iObexBody - * Body of the OBEX data object. */ - CBufBase* iObexBody; - - /** @var CRsBtDevice* iDevice - * The device to communicate with. */ - CRsBtDevice* iDevice; - - /** @var CActiveSchedulerWait* iWait - * Active scheduler wait object for nested scheduler loops. */ - CActiveSchedulerWait* iWait; - - /** @var TInt iResponseError - * Member to maintain errors occured during phases of synchronized calls. */ - TInt iResponseError; - - /** @var TBool iStop - * Flag to indicate the processing shall or is about to stop. */ - TBool iStop; - - CBtPasswordQuery* iPasswordQuery; - - TBTObexPasskey iPckg; // Input parameters - }; - -#endif // CBTCHANNELBASE_H - -// End of File