ImagePrint/ImagePrintEngine/DeviceProtocols/upnpprotocolfw2/src/cjobstateevents.cpp
changeset 0 d11fb78c4374
--- /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 <upnpcons.h> 
+
+#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