--- a/ImagePrint/ImagePrintEngine/DeviceProtocols/upnpprotocolfw2/inc/cupnpprintingdevice.h Tue May 25 12:42:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
-/*
-* 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 CUPnPPrintingDevice class
-*
-*/
-
-
-#ifndef CUPNPPRINTINGDEVICE_H
-#define CUPNPPRINTINGDEVICE_H
-
-#include <fbs.h>
-#include <upnpmediaserverclient.h>
-#include <upnpfilesharing.h>
-#include <data_caging_path_literals.hrh>
-
-#include "imageprint.h"
-#include "mprotprintingdevice.h"
-#include "cprintercontrolpoint.h"
-#include "printmessagecodes.h"
-#include "cupprintercontainer.h"
-#include "cuplogger.h"
-#include "upconsts.h"
-#include "cupprintingjob.h"
-
-_LIT8(KFriendlyName, "UPnPProtocol");
-
-/// @brief The timeout to wait for first devices to be discovered
-#define KPrinterDiscoveryTimeout TTimeIntervalMicroSeconds32(25000000)
-
-/// @brief The timeout to wait for responses during printing 60 seconds
-#define KPrinterResponseTimeout TTimeIntervalMicroSeconds32(60000000)
-//#define KPrinterResponseTimeout TTimeIntervalMicroSeconds32(30000000)
-
-/// @brief The timeout to wait for responses during printing
-#define KPrinterSubmitTimeout TTimeIntervalMicroSeconds32(15000000)
-
-// @brief The times the timer can expire while printing is processing
-#define KPendingLimit 5
-
-#define KVersionMajor 0
-#define KVersionMinor 0
-#define KVersionBuild 1
-
-
-enum TUPnPProtocolState
-{
- EUPnPUninitialized=0,
- EUPnPDiscovery,
- EUPnPReady,
- EUPnPJobReady,
- EUPnPSubmittingJob,
- EUPnPPrintingStarted,
- EUPnPPrinting,
- EUPnPPrintingReady,
- EUPnPCancelling,
- EUPnPCancellingDiscovery
-};
-
-/*
-* @class CUPnPPrintingDevice
-* @description Implements the MProtPrintingDevice and MPCPObserver interfaces
-* to integrate Image Print and UPnP stack.
-*
-*/
-class CUPnPPrintingDevice : public CBase, public MPCPObserver, public MProtPrintingDevice
- {
- public:
-
- /*
- * @function CUPnPPrintingDevice
- * @description C++ constructor
- */
- CUPnPPrintingDevice();
-
- /*
- * @function NewProtocolL
- * @description Called from Main.cpp to construct a new MProtPrintingDevice instance
- */
- static MProtPrintingDevice* NewL();
-
- /*
- * @function ~CUPnPPrintingDevice
- * @description Destructor.
- */
- ~CUPnPPrintingDevice();
-
- /*
- * @function DiscoveryTimeoutCBL
- * @description This static callback function is called by iPrinterTimer when the
- * discovery timer event occurs.
- * @param
- * @return
- */
- static TBool DiscoveryTimeoutCBL(TAny *aWho);
-
- /*
- * @function StatusTimeoutCBL
- * @description This static callback function is called by iPrinterTimer when the
- * status timer event occurs.
- * @param
- * @return
- */
- static TBool StatusTimeoutCBL(TAny *aWho);
-
- /*
- * @function SubmitTimeoutCBL
- * @description This static callback function is called by iPrinterTimer when the
- * submit timer event occurs.
- * @param TAny
- * @return TInt
- */
- static TInt SubmitTimeoutCBL(TAny *aWho);
-
-
-
-
- // ===============================
- // From MProtPrintingDevice.
- // ===============================
- // General
- virtual void ConstructL(const TDesC& aDLLPath);
- virtual TVersion Version();
- virtual TUint SupportedProtocols();
- // Discovery.
- virtual void StartDiscoveryL(MProtDiscoveryObserver& aObserver, TUint aProtocols = 0);
- virtual TInt RemoveCachedDeviceL(TInt aDeviceID);
- virtual void CancelDiscovery(TBool aDoCallBack = ETrue);
- // Print.
- virtual TInt CreatePrintJobL(TInt aDeviceID, RPointerArray<TDesC>& aImages, MProtPrintEventObserver& aObserver);
- virtual void SubmitPrintJobL();
- virtual TInt CancelPrintJob();
- virtual TInt ContinuePrintJobL();
- virtual TInt GetNumPrintPages();
- virtual TInt GetPrintJobStatus();
- virtual TInt GetPrinterStatus(TInt aDeviceID);
- // Capabilities.
- virtual TInt GetDeviceCapabilityIDsL(TInt aDeviceID, RArray<TInt>& aCapabilityIDs);
- virtual TInt GetDeviceCapabilityL(TInt aDeviceID, TInt aCapabilityID, TPrintCapability& aCapability);
- virtual TInt GetJobSetting(TInt aCapabilityID, TInt& aValue);
- virtual TInt SetJobSettingL(TInt aCapabilityID, TInt aValue, TInt& aAffectedCapability);
- // Preview.
- virtual TInt GetNumPreviewPages();
- virtual TInt GetJobTemplateIconL(TInt aTemplateID, TInt& aFsBitmapHandle);
- virtual TInt CreatePreviewImage(TInt aPageNumber);
-
- virtual void RegisterIdleObserver(MProtIdleObserver* aObserver);
-
- virtual void SetNumsOfCopiesL( const RArray<TInt>& aNumsOfCopies, TInt& aErr );
-
- // ===============================
- // From MPCPObserver
- // ===============================
- virtual void CreateJobResponse( CUpnpAction* aAction, TInt aErrorCode );
- virtual void CancelJobResponse( CUpnpAction* aAction, TInt aErrorCode );
- virtual void GetPrinterAttributesResponse( CUpnpAction* aAction, TInt aErrorCode );
- virtual void GetJobAttributesResponse( CUpnpAction* aAction, TInt aErrorCode );
- virtual void GetMarginsResponse( CUpnpAction* aAction, TInt aErrorCode );
- virtual void GetMediaListResponse( CUpnpAction* aAction, TInt aErrorCode );
- virtual void StateUpdatedResponse( const TDesC8& aPrinterState,
- const TDesC8& aPrinterStateReasons,
- const TDesC8& aJobIdList,
- const TDesC8& aJobEndState,
- const TDesC8& aJobMediaSheetsCompleted,
- const TDesC8& aJobAbortState,
- const TDesC8& aContentCompleteList );
- virtual void DeviceDiscoveredL( CUpnpDevice* aDevice );
- virtual void DeviceDisappeared( CUpnpDevice* aDevice );
- // state events
- virtual void PrinterStateUpdated( const TDesC8& aEvent );
- virtual void PrinterStateReasonsUpdated( const TDesC8& aEvent );
- virtual void JobIdListUpdated( const TDesC8& aEvent );
- virtual void JobEndStateUpdated( const TDesC8& aEvent );
- virtual void JobMediaSheetsCompletedUpdated( const TDesC8& aEvent );
- virtual void ContentCompleteListUpdated( const TDesC8& aEvent );
- virtual void JobAbortStateUpdated( const TDesC8& aEvent );
-
- protected:
-
-
- private:
-
- /*
- * @function StartDiscoveryInternalL
- * @description Non-leaving interface for MProtPrintingDevice method StartDiscoveryL
- * for ImagePrint compliance. Informs observer about leaves by call back method.
- * @param TInt protocol identifier bitmap
- */
- void StartDiscoveryInternalL(TUint aProtocol);
-
- /*
- * @function RestartControlPointL
- * @description Restarts the printer control point
- */
- void RestartControlPointL();
-
- /*
- * @function SendPrinterListL
- * @description Returns the device list to MProtDiscoveryObserver object
- * @param TBool
- */
- void SendPrinterListL(TBool aSync = ETrue);
-
- /*
- * @function DoDiscoveryTimeoutL
- * @description Ends the first device discovery session. This function is called
- * by the static callback function DiscoveryTimeoutCBL.
- * @param TBool aDoCallBack If ETrue then protocol client is notified.
- * @return TBool
- */
- TBool DoDiscoveryTimeoutL(TBool aDoCallBack);
-
- /*
- * @function DoSubmitTimeoutL
- * @description This function is executed after submit time out expires.
- * @return TInt
- */
- void DoSubmitTimeoutL();
-
- /*
- * @function SubmitJobToPcpL
- * @description Submits the printing job to PCP
- * @param CDevice& Reference to the printer to be used in printing
- * @param TInt The ID of the printer to be used in printing
- */
- void SubmitJobToPcpL(CUpnpDevice& aPrinter, TInt aPrinterID);
-
- /*
- * @function SubmitJobToPcpL
- * @description Submits the printing job to PCP
- * @param TInt The ID of the printer to be used in printing
- */
- void SubmitJobToPcpL(TInt aDeviceID);
-
- /*
- * @function DoStatusTimeoutL
- * @description Handles time out event in printer communication.
- * @return TBool
- */
- TBool DoStatusTimeoutL();
-
- /*
- * @function InitJobL
- * @description Initializes the printing jobs to job container
- * @param TInt Printer for printing jobs
- * @param RPointerArray File paths for files to be printed
- */
- void InitJobL(TInt aDeviceId, RPointerArray<TDesC>& aImages);
-
- /*
- * @function StartPrintingL
- * @description Sends the printing jobs to the UPnP Printer Control Point
- */
- void StartPrintingL();
-
- /*
- * @function DoCancelPrinting
- * @description Cancels the ongoing printing job. Returns KErrInvalidSequence if state is not
- * EUPnPSubmittingJob, EUPnPPrintingStarted or EUPnPPrinting.
- * @return TInt System wide error code
- */
- TInt DoCancelPrinting();
-
- /*
- * @function UpdatePrintingStatus
- * @description Updates the status of printing jobs and informs the printing observer about progress and events
- * @param const TDesC8& aPrinterState
- */
- void UpdatePrintingStatus(const TUPnPState aJobState);
-
-
- /*
- * @function FinishPrinting
- * @description Executes the basic operations to be done when printing is done.
- */
- void FinishPrinting();
-
- /*
- * @function FinishPrinting
- * @description Overloads FinishPrinting and informs observer about occurred error.
- * @param TInt Symbian wide error code
- * @param TInt ImagePrint specific (error) message code
- */
- void FinishPrinting(TInt aErrorCode, TInt aErrorMessage);
-
- /*
- * @function ResetTimer
- * @description Resets the timer and initializes timer related flags.
- */
- void ResetTimer();
-
- /*
- * @function StartTimer
- * @description Starts the timer and resets it first.
- * @param TTimeIntervalMicroSeconds32 Delay for the timer
- * @param TTimeIntervalMicroSeconds32 Interval for timer to expire
- * @param TCallBack Call back function when timer expires
- */
- void StartTimer(TTimeIntervalMicroSeconds32 aDelay,TTimeIntervalMicroSeconds32 anInterval,TCallBack aCallBack);
-
- /*
- * @function GetPrinter
- * @description Returns a pointer to the current printer.
- * @return CDevice* Current printer or NULL
- */
- CUpnpDevice* GetPrinter();
-
- private:
- // @var iPrinterControl Control point to UPnP
- CPrinterControlPoint* iPrinterControl;
-
- // @var iPrinterContainer Container for printers
- CUPPrinterContainer* iPrinterContainer;
-
- // @var iPrintingJob Printing job
- CUPPrintingJob* iPrintingJob;
-
- // @var iPrinterTimer Array of discovered printers
- CPeriodic* iPrinterTimer;
-
- // @var iPrintFactory XHTML-print file factory
- CUPPrintFactory* iPrintFactory;
-
- // @var iPrinterState State information of the object
- TUPnPProtocolState iState;
-
- // @var iPrintersFound Indicates if there are printers found
- TBool iPrintersFound;
-
- // @var iStatusTimeout This variable is set to ETrue when a status time out occurs
- TBool iStatusTimeout;
-
- // @var iFbsBitmap (Dummy) bitmap for icon template
- CFbsBitmap* iFbsBitmap;
-
- // @var iPendingCount Counter to avoid too long pending while printing
- TInt iPendingCount;
-
- // @var iFriendlyName In Home network configuration defined name for the device
- TBuf8<256> iFriendlyName;
-
- // @var iTriedReadCacheAndFail To check that never trying read cache file more than one time, if we don't have it.
- TBool iTriedReadCacheAndFail;
-
- };
-
-#endif // CUPNPPRINTINGDEVICE_H
-
-// End of File