ImagePrint/ImagePrintEngine/DeviceProtocols/btprotocol/src/cbtstatuschannel.cpp
branchGCC_SURGE
changeset 25 59ea2209bb67
parent 23 08cc4cc059d4
parent 15 a92d00fca574
--- a/ImagePrint/ImagePrintEngine/DeviceProtocols/btprotocol/src/cbtstatuschannel.cpp	Fri Jun 11 16:24:10 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,465 +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 CBtStatusChannel class.
-*
-*/
-
-
-#include <obex.h>
-
-#include "crsbtdevice.h"
-#include "cbtstatuschannel.h"
-#include "cbtsoapcodec.h"
-#include "clog.h"
-#include "tbtmapper.h"
-#include "cbtdiscover.h"
-#include "printmessagecodes.h"
-
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::NewL
-//
-//--------------------------------------------------------------------------------------------
-CBtStatusChannel* CBtStatusChannel::NewL(MBtPCObserver& aObs)
-{
-		CBtStatusChannel *self = NewLC(aObs);
-		CleanupStack::Pop();	// self
-		return self;
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::NewLC
-//
-//--------------------------------------------------------------------------------------------
-CBtStatusChannel* CBtStatusChannel::NewLC(MBtPCObserver& aObs)
-{
-		CBtStatusChannel *self = new (ELeave) CBtStatusChannel(aObs);
-		CleanupStack::PushL(self);
-		self->ConstructL();
-		return self;
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::CBtStatusChannel
-//
-//--------------------------------------------------------------------------------------------
-CBtStatusChannel::CBtStatusChannel(MBtPCObserver& aObs):
-	CBtChannelBase( aObs )
-{
-	LOG("[CBtStatusChannel::CBtStatusChannel]\t");
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::~CBtStatusChannel
-//
-//--------------------------------------------------------------------------------------------
-CBtStatusChannel::~CBtStatusChannel()
-{
-	LOG("[CBtStatusChannel::~CBtStatusChannel]\t");
-	Cancel();
-	ClearConnection();
-	
-	// iChannel have to delete here or otherwise Review-x report critical error.
-	if(iChannel)
-	{
-		delete iChannel;
-		iChannel = NULL;
-	}
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::ConstructL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::ConstructL()
-{
-	LOG("[CBtStatusChannel::ConstructL]\t begin");
-	CBtChannelBase::ConstructL();
-	LOG("[CBtStatusChannel::ConstructL]\t end");
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::RunL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::RunL()
-{
-	LOG2("[CBtStatusChannel::RunL]\t BEGIN iStatus %d at state %d", iStatus.Int(), iState);
-
-	 //Finish if required
-	if( EStateFinish == iState )
-	{
-		Disconnect();
-		return;
-	}
-
-	DoLeaveL( iStatus.Int() );
-
-	switch( iState )
-	{
-		case EStateConnecting:
-			iObexNullObject->Reset();
-			StopWaiting();
-			break;
-        case EStateDisconnecting:
-			Disconnect();
-			StopWaiting();
-            break;
-		case EStateGettingPrinterState:
-			GetSoapResponseL();
-			GetPrinterStateResponseL();
-			iState = EStateNone;
-			break;
-		case EStateCancellingJob:
-			GetSoapResponseL();
-			CancelJobResponseL();
-			iDevice = NULL;
-			iState = EStateNone;
-			break;
-		case EStateGettingJobAttributes:
-			GetSoapResponseL();
-			GetJobAttributesResponseL();
-			break;
-		case EStateNone:
-			User::Leave( KErrCancel );
-			break;
-		case EStateGetEvent:
-			iState = EStateGettingEvent;
-			SendSoapRequestL(EBtGetEvent, iJobId);
-			WaitL();
-			break;
-		case EStateGettingEvent:
-			GetSoapResponseL();
-			GetEventResponseL();
-			StopWaiting();
-			break;
-		default:
-			break;
-	}
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::RunError
-//
-//--------------------------------------------------------------------------------------------
-TInt CBtStatusChannel::RunError(TInt aError)
-{
-	LOG1("[CBtStatusChannel::RunError]\t state %d", iState);
-	LOG2("[CBtStatusChannel::RunError]\t error %d, iStatus %d", aError, iStatus.Int() );
-
-	TInt id = KErrNotFound;
-
-	StopWaiting();
-	
-	switch( iState )
-	{
-		case EStateGettingPrinterState:
-			if(iDevice)
-				id = iDevice->DeviceId();
-
-			iState = EStateFinish;
-			iObs.GetPrinterStateResponse(EBtStateIdle, ENoMessage, aError, id);
-			break;
-		case EStateCancellingJob:
-			iState = EStateFinish;
-			iObs.CancelJobResponse(aError);
-			break;
-		case EStateGettingJobAttributes:
-			iState = EStateFinish;
-			iObs.GetJobAttributesResponse(EBtStateUnknown, KNullDesC8(), KNullDesC8(), KErrNotFound, KErrNotFound, aError);
-			break;
-		case EStateGetEvent:
-		case EStateGettingEvent:
-			iObs.GetEventResponse(iJobId, EBtStateUnknown, EBtStateIdle, KErrNone, aError);
-			break;
-		default:
-			iState = EStateFinish;
-			iObs.GetEventResponse(KErrNotFound, KErrNotFound, KErrNotFound, KErrNotFound, aError);
-			LOG("[CBtPrinterController::RunError]\t GetEventResponse sent" );
-			break;
-	}
-	iResponseError = aError;
-	return KErrNone; // othervise error returns to CActive: that's what we don't want.
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::DoCancel
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::DoCancel()
-{
-	LOG2("[CBtStatusChannel::DoCancel]\t at state %d, iStatus 0x%X", iState, iStatus.Int());
-
-	StopWaiting();
-
-	iState = EStateNone;
-
-	CBtChannelBase::DoCancel();
-	LOG1("[CBtStatusChannel::DoCancel]\t out iStatus 0x%X", iStatus.Int());
-}
-
-//------------------------------
-// InCalls
-//------------------------------
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::GetPrinterAttributesL
-//
-//--------------------------------------------------------------------------------------------
-TInt CBtStatusChannel::GetPrinterStateL()
-{
-	LOG("[CBtStatusChannel::GetPrinterStateL]\t begin");
-	if(iStop)
-		return KErrNone;
-	
-	if(!IsConnected())
-		User::Leave(KErrDisconnected);
-	
-	Cancel();
-
-	iState = EStateGettingPrinterState;
-	SendSoapRequestL(EBtGetPrinterState);
-
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::GetJobAttributesL
-//
-//--------------------------------------------------------------------------------------------
-TInt CBtStatusChannel::GetJobAttributesL(TInt aJobId)
-{
-	LOG1("[CBtStatusChannel::GetJobAttributesL]\t begin with id %d", aJobId);
-	if(iStop)
-		return KErrNone;
-
-	if(!IsConnected())
-		User::Leave(KErrDisconnected);
-	
-	if( KErrNotFound == aJobId)
-		User::Leave(KErrInvalidData);
-	
-	LOG1("[CBtStatusChannel::GetJobAttributesL]\t wait connection? %d", iStatus.Int());
-	WaitL();
-
-	iJobId = aJobId;
-	LOG1("[CBtStatusChannel::GetJobAttributesL]\t iJobId %d", iJobId);
-
-	iState = EStateGettingJobAttributes;
-	SendSoapRequestL(EBtGetJobAttributes, iJobId);
-
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::GetEventL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::GetEventL(TInt aJobId)
-{
-	LOG("[CBtStatusChannel::GetEvent]\t begin");
-	if(iStop)
-		return;
-	
-	if(!IsConnected())
-		User::Leave(KErrDisconnected);
-
-	if( 0 > aJobId)
-		User::Leave(KErrInvalidData);
-	
-	if(EStateGetEvent == iState || EStateGettingEvent == iState)
-		return;
-		
-	Cancel();
-
-	iJobId = aJobId;
-
-	iState = EStateGetEvent;
-	Activate();
-}
-
-//----------------------------------
-
-//------------------------------
-// Responses
-//------------------------------
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::GetPrinterStateResponseL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::GetPrinterStateResponseL()
-{
-	LOG("[CBtStatusChannel::GetPrinterStateResponseL]\t");
-	User::LeaveIfNull(iSoapCodec);
-	iState = EStateNone;
-
-	TInt state = EBtStateUnknown;
-	TInt reasons = EPbCheckPrinter;
-	TInt opStatus = KErrGeneral;
-
-	iSoapCodec->GetPrinterStateResponseL(state, reasons, opStatus);
-
-	TInt id = KErrNotFound;
-	if(iDevice)
-		id = iDevice->DeviceId();
-
-	iObs.GetPrinterStateResponse(state, reasons, opStatus, id);
-
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::GetJobAttributesResponseL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::GetJobAttributesResponseL()
-{
-	LOG("[CBtStatusChannel::GetJobAttributesResponseL]\t");
-	User::LeaveIfNull(iSoapCodec);
-	iState = EStateNone;
-
-	TInt  jobState = EBtStateUnknown; 
-	TBtAttrString8 jobName(KNullDesC8());
-	TBtAttrString8 originator(KNullDesC8());
-	TInt sheetsCompleted = KErrNotFound; 
-	TInt pendingJobs = KErrNotFound;
-	TInt opStatus = KErrNotSupported;
-	
-	iSoapCodec->GetJobAttributesResponseL(iJobId, jobState, jobName, originator, 
-											sheetsCompleted, pendingJobs, opStatus);
-
-	iObs.GetJobAttributesResponse(jobState, jobName, originator, 
-									sheetsCompleted, pendingJobs, opStatus);
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::CancelJobResponseL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::CancelJobResponseL()
-{
-	LOG("[CBtStatusChannel::CancelJobResponseL]\t");
-	User::LeaveIfNull(iSoapCodec);
-	iState = EStateNone;
-
-	TInt err = KErrNotFound;
-	iSoapCodec->CancelJobResponseL(iJobId, err);
-
-	LOG1("[CBtStatusChannel::CancelJobResponseL]\t err %d", err);
-	iObs.CancelJobResponse(err);
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::GetEventResponseL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::GetEventResponseL()
-{
-	LOG("[CBtStatusChannel::GetEventResponseL]\t");
-	User::LeaveIfNull(iSoapCodec);
-	iState = EStateNone;
-
-	TInt jobState, printerState, stateReasons, operationStatus;
-
-	iSoapCodec->GetEventResponseL(iJobId, jobState, printerState, stateReasons, operationStatus);
-	iObs.GetEventResponse(iJobId, jobState, printerState, stateReasons, operationStatus);
-}
-///////////////////////////////
-// Private
-///////////////////////////////
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::ConnectL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::ConnectL()
-{
-	LOG2("[CBtStatusChannel::ConnectL]\t isConnected: %d, iDevice %d", IsConnected(), iDevice);
-
-	User::LeaveIfNull(iDevice);
-
-	LOG1("[CBtStatusChannel::ConnectedL]\t aDevice.UsedProtocols(): %d", iDevice->UsedProtocol());
-    if( !(KImagePrint_PrinterProtocol_BPP & iDevice->UsedProtocol()) )
-	   	User::Leave(KErrNotSupported);
-
-    if(IsConnected())
-    {
-		LOG1("[CBtStatusChannel::ConnectL]\t isConnected: %d", IsConnected());
-    	return;
-    }
-
-	if(iChannel)
-	{
-		delete iChannel;
-		iChannel = NULL;
-	}
-
-    TObexBluetoothProtocolInfo protocolInfo;
-    protocolInfo.iTransport.Copy( KRFCOMMDesC );
-    protocolInfo.iAddr.SetBTAddr(iDevice->BDAddr() );//Address of server bt device
-   	protocolInfo.iAddr.SetPort(iDevice->STSPort() );//Service channel of server rfcomm
-
-	TUUID uuid(KBTSDPPrintingStatus);
-	iObexNullObject->Reset();
-	iObexNullObject->SetTargetL(uuid.Des());
-
-    // create channel
-    iChannel = CObexClient::NewL( protocolInfo );
-	iChannel->SetCallBack(*this);
-	iChannel->Connect(*iObexNullObject, iStatus);
-
-	iState = EStateConnecting;
-	Activate();
-}
-
-//--------------------------------------------------------------------------------------------
-//
-// CBtStatusChannel::DoLeaveL
-//
-//--------------------------------------------------------------------------------------------
-void CBtStatusChannel::DoLeaveL(TInt aError)
-{
-	LOG2("[CBtStatusChannel::DoLeaveL]\t aError %d at state %d", aError, iState); 
-
-	if(KErrNone == aError)
-		return;
-	
-	if(EStateDisconnecting == iState)
-		return;
-	
-	if(KErrCancel == aError)
-		return;
-	
-	if(KErrCompletion == aError)
-		return;
-	
-	LOG("[CBtStatusChannel::DoLeaveL]\t Leave"); 
-	User::Leave(aError);
-}
-
-//  End of File