diff -r 000000000000 -r d11fb78c4374 ImagePrint/ImagePrintEngine/DeviceProtocols/upnpprotocolfw2/src/cjobstateevents.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ImagePrint/ImagePrintEngine/DeviceProtocols/upnpprotocolfw2/src/cjobstateevents.cpp Thu Dec 17 08:45:53 2009 +0200 @@ -0,0 +1,399 @@ +/* +* Copyright (c) 2002-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: Declares CJobStateEvents class +* +*/ + + +#include + +#include "cjobstateevents.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// Constructors + +// ----------------------------------------------------------------------------- +// CJobStateEvents::NewL +// ----------------------------------------------------------------------------- +// +CJobStateEvents* CJobStateEvents::NewL() +{ + CJobStateEvents *self = NewLC(); + CleanupStack::Pop(); // self + return self; +} + + +// ----------------------------------------------------------------------------- +// CJobStateEvents::NewLC +// ----------------------------------------------------------------------------- +// +CJobStateEvents* CJobStateEvents::NewLC() +{ + CJobStateEvents *self = NewLC( + KNullDesC8(), KNullDesC8(), KNullDesC8(), KNullDesC8(), + KNullDesC8(), KNullDesC8(), KNullDesC8()); + return self; +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::NewL +// ----------------------------------------------------------------------------- +// +CJobStateEvents* CJobStateEvents::NewL( + const TDesC8& aPrinterState, const TDesC8& aPrinterStateReasons, const TDesC8& aJobIdList, + const TDesC8& aJobEndState,const TDesC8& aJobMediaSheetsCompleted, + const TDesC8& aContentCompleteList, const TDesC8& aJobAbortState) +{ + CJobStateEvents *self = NewLC( + aPrinterState, aPrinterStateReasons, aJobIdList,aJobEndState, + aJobMediaSheetsCompleted, aContentCompleteList, aJobAbortState); + CleanupStack::Pop(); // self + return self; +} + + +// ----------------------------------------------------------------------------- +// CJobStateEvents::NewLC +// ----------------------------------------------------------------------------- +// +CJobStateEvents* CJobStateEvents::NewLC( + const TDesC8& aPrinterState, const TDesC8& aPrinterStateReasons, const TDesC8& aJobIdList, + const TDesC8& aJobEndState,const TDesC8& aJobMediaSheetsCompleted, + const TDesC8& aContentCompleteList, const TDesC8& aJobAbortState) +{ + CJobStateEvents *self = new (ELeave) CJobStateEvents(); + CleanupStack::PushL(self); + self->ConstructL( + aPrinterState, aPrinterStateReasons, aJobIdList,aJobEndState, + aJobMediaSheetsCompleted, aContentCompleteList, aJobAbortState); + return self; +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::NewL +// ----------------------------------------------------------------------------- +// +CJobStateEvents* CJobStateEvents::NewL(CJobStateEvents &a) +{ + CJobStateEvents *self = NewLC(a); + CleanupStack::Pop(); // self + return self; +} + + +// ----------------------------------------------------------------------------- +// CJobStateEvents::NewLC +// ----------------------------------------------------------------------------- +// +CJobStateEvents* CJobStateEvents::NewLC(CJobStateEvents &a) +{ + CJobStateEvents *self = new (ELeave) CJobStateEvents(); + CleanupStack::PushL(self); + + User::LeaveIfNull( a.iPrinterState ); + User::LeaveIfNull( a.iPrinterStateReasons ); + User::LeaveIfNull( a.iJobIdList ); + User::LeaveIfNull( a.iJobEndState ); + User::LeaveIfNull( a.iJobMediaSheetsCompleted ); + User::LeaveIfNull( a.iContentCompleteList ); + User::LeaveIfNull( a.iJobAbortState ); + + self->ConstructL( + a.iPrinterState->Des(), a.iPrinterStateReasons->Des(), a.iJobIdList->Des(), a.iJobEndState->Des(), + a.iJobMediaSheetsCompleted->Des(), a.iContentCompleteList->Des(), a.iJobAbortState->Des()); + return self; +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::ConstructL +// Two-phased constructor +// ----------------------------------------------------------------------------- +// +void CJobStateEvents::ConstructL( + const TDesC8& aPrinterState, const TDesC8& aPrinterStateReasons, const TDesC8& aJobIdList, + const TDesC8& aJobEndState,const TDesC8& aJobMediaSheetsCompleted, + const TDesC8& aContentCompleteList, const TDesC8& aJobAbortState) +{ + Delete(); + iPrinterState = aPrinterState.AllocL(); + iPrinterStateReasons = aPrinterStateReasons.AllocL(); + iJobIdList = aJobIdList.AllocL(); + iJobEndState = aJobEndState.AllocL(); + iJobMediaSheetsCompleted = aJobMediaSheetsCompleted.AllocL(); + iContentCompleteList = aContentCompleteList.AllocL(); + iJobAbortState = aJobAbortState.AllocL(); +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::ConstructL +// Two-phased constructor +// ----------------------------------------------------------------------------- +// +void CJobStateEvents::ConstructL(CJobStateEvents &a) +{ + ConstructL( + a.iPrinterState->Des(), a.iPrinterStateReasons->Des(), a.iJobIdList->Des(), a.iJobEndState->Des(), + a.iJobMediaSheetsCompleted->Des(), a.iContentCompleteList->Des(), a.iJobAbortState->Des()); +} + +// publics + +// ----------------------------------------------------------------------------- +// CJobStateEvents::ChangedEventL +// ----------------------------------------------------------------------------- +// +TBool CJobStateEvents::ChangedEventL(const TDesC8 &aEvent, TJobStateEvent aEnum) +{ + TBool changed(EFalse); + + switch( aEnum ) + { + case EPrinterState: + if(iPrinterState) + { + if(0 != aEvent.Compare(iPrinterState->Des())) + { + delete iPrinterState; + iPrinterState = NULL; + } + else break; + } + iPrinterState = aEvent.AllocL(); + changed = ETrue; + break; + case EPrinterStateReasons: + if(iPrinterStateReasons) + { + if(0 != aEvent.Compare(iPrinterStateReasons->Des())) + { + delete iPrinterStateReasons; + iPrinterStateReasons = NULL; + } + else break; + } + iPrinterStateReasons = aEvent.AllocL(); + changed = ETrue; + break; + case EJobIdList: + if(iJobIdList) + { + if(0 != aEvent.Compare(iJobIdList->Des())) + { + delete iJobIdList; + iJobIdList = NULL; + } + else break; + } + iJobIdList = aEvent.AllocL(); + changed = ETrue; + break; + case EJobEndState: + if(iJobEndState) + { + if(0 != aEvent.Compare(iJobEndState->Des())) + { + delete iJobEndState; + iJobEndState = NULL; + } + else break; + } + iJobEndState = aEvent.AllocL(); + changed = ETrue; + break; + case EJobMediaSheetsCompleted: + if(iJobMediaSheetsCompleted) + { + if(0 != aEvent.Compare(iJobMediaSheetsCompleted->Des())) + { + delete iJobMediaSheetsCompleted; + iJobMediaSheetsCompleted = NULL; + } + else break; + } + iJobMediaSheetsCompleted = aEvent.AllocL(); + changed = ETrue; + break; + case EContentCompleteList: + ContentCompleteL( aEvent, changed ); + break; + case EJobAbortState: + JobAbortStateL( aEvent, changed ); + break; + default: + break; + } + return changed; +} +void CJobStateEvents::ContentCompleteL ( const TDesC8 &aEvent, TBool& aChanged ) + { + if(iContentCompleteList) + { + if(0 != aEvent.Compare(iContentCompleteList->Des())) + { + delete iContentCompleteList; + iContentCompleteList = NULL; + } + else return; + } + iContentCompleteList = aEvent.AllocL(); + aChanged = ETrue; + + } + +void CJobStateEvents::JobAbortStateL ( const TDesC8 &aEvent, TBool& aChanged ) + { + if(iJobAbortState) + { + if(0 != aEvent.Compare(iJobAbortState->Des())) + { + delete iJobAbortState; + iJobAbortState = NULL; + } + else return; + } + iJobAbortState = aEvent.AllocL(); + aChanged = ETrue; + } + +// ----------------------------------------------------------------------------- +// CJobStateEvents::~CJobStateEvents +// C++ destructor +// ----------------------------------------------------------------------------- +// +CJobStateEvents::~CJobStateEvents() +{ + Delete(); +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::Delete +// ----------------------------------------------------------------------------- +// +void CJobStateEvents::Delete() +{ + if(iPrinterState) + delete iPrinterState; + iPrinterState = NULL; + + if(iPrinterStateReasons) + delete iPrinterStateReasons; + iPrinterStateReasons = NULL; + + if(iJobIdList) + delete iJobIdList; + iJobIdList = NULL; + + if(iJobEndState) + delete iJobEndState; + iJobEndState = NULL; + + if(iJobMediaSheetsCompleted) + delete iJobMediaSheetsCompleted; + iJobMediaSheetsCompleted = NULL; + + if(iContentCompleteList) + delete iContentCompleteList; + iContentCompleteList = NULL; + + if(iJobAbortState) + delete iJobAbortState; + iJobAbortState = NULL; +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::InitL +// ----------------------------------------------------------------------------- +// +void CJobStateEvents::InitL() +{ + Delete(); + iPrinterState = KNullDesC8().AllocL(); + iPrinterStateReasons = KNullDesC8().AllocL(); + iJobIdList = KNullDesC8().AllocL(); + iJobEndState = KNullDesC8().AllocL(); + iJobMediaSheetsCompleted = KNullDesC8().AllocL(); + iContentCompleteList = KNullDesC8().AllocL(); + iJobAbortState = KNullDesC8().AllocL(); +} + +// operators + +// ----------------------------------------------------------------------------- +// CJobStateEvents::operator== +// ----------------------------------------------------------------------------- +// +TBool CJobStateEvents::operator==(const CJobStateEvents& a) +{ + if ( iPrinterState && a.iPrinterState ) + { + if(0 != a.iPrinterState->Compare(iPrinterState->Des())) + return EFalse; + }else return EFalse; + if( iPrinterStateReasons && a.iPrinterStateReasons ) + { + if(0 != a.iPrinterStateReasons->Compare(iPrinterStateReasons->Des())) + return EFalse; + } + if( iJobIdList && a.iJobIdList ) + { + if(0 != a.iJobIdList->Compare(iJobIdList->Des())) + return EFalse; + }else return EFalse; + if( iJobEndState && a.iJobEndState ) + { + if(0 != a.iJobEndState->Compare(iJobEndState->Des())) + return EFalse; + }else return EFalse; + if( iJobMediaSheetsCompleted && a.iJobMediaSheetsCompleted ) + { + if(0 != a.iJobMediaSheetsCompleted->Compare(iJobMediaSheetsCompleted->Des())) + return EFalse; + }else return EFalse; + if( iContentCompleteList && a.iContentCompleteList ) + { + if(0 != a.iContentCompleteList->Compare(iContentCompleteList->Des())) + return EFalse; + }else return EFalse; + if( iJobAbortState && a.iJobAbortState ) + { + if(0 != a.iJobAbortState->Compare(iJobAbortState->Des())) + return EFalse; + }else return EFalse; + + return ETrue; +} + +// ----------------------------------------------------------------------------- +// CJobStateEvents::operator!= +// ----------------------------------------------------------------------------- +// +TBool CJobStateEvents::operator!=(const CJobStateEvents& a) +{ + return *this == a ? EFalse : ETrue; +} + +// protected + +// ----------------------------------------------------------------------------- +// CJobStateEvents::CJobStateEvents +// C++ default constructor +// ----------------------------------------------------------------------------- +// +CJobStateEvents::CJobStateEvents() +{ +} + +// End Of File