--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbclasses/pictbridgeengine/inc/dpsoperation.h Thu Dec 17 09:14:30 2009 +0200
@@ -0,0 +1,312 @@
+/*
+* Copyright (c) 2006, 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: This classes define dps operations requests and replys.
+*
+*/
+
+
+#ifndef DPSOPERATION_H
+#define DPSOPERATION_H
+
+#include <s32file.h>
+#include "dpsparam.h"
+
+class CDpsTransaction;
+/**
+* This is the base class for all dps operations.
+*/
+class TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ inline TMDpsOperation();
+ /**
+ * Fills in dps operation request parameters. Dps engine must
+ * call this function to fill the dps operation request parameters.
+ * @param aArgs the dps operation request arguments
+ * @param aElems the dps operation elements
+ * @param aAttrib the dps operation attributes
+ * @param aTrader the pointer to CDpsTransaction object for filling
+ * the request arguments for Dps Engine
+ * @return TInt KErrNone if successful or other system error if failed
+ */
+
+ protected:
+ inline virtual TInt FillReqArgs(TDpsArgArray& aArgs,
+ TDpsEleArray& aElems,
+ TDpsAttribute& aAttrib,
+ CDpsTransaction* aTrader);
+
+
+ /**
+ * Fills in the dps operation reply parameters. Dps engine uses this
+ * function after the dps operation gets responsed. After this call,
+ * dps engine will call RequestComplete() to inform the client the
+ * completion of the dps operation.
+ * @param aArgs dps operation reply arguments.
+ * @param aParam the pointer to CDpsTransacton object for filling
+ * the reply arguments for the client (print UI engine)
+ * @return TInt KErrNone if successful or other system error if failed
+ */
+ inline virtual TInt FillRepArgs(const TDpsArgArray& aArguments,
+ CDpsTransaction* aTrader);
+
+
+ /**
+ * Creates the Dps request script
+ * @param aArgs the arguments of the Dps request
+ * @param aElements the elements of the Dps request
+ * @param aAttribute the attribute of the Dps request
+ * @param aScript the buffer of the script
+ * @param aTrader the pointer to the CDpsTransaction object for
+ * creating the Dps script
+ */
+ IMPORT_C virtual void CreateReqScriptL(const TDpsArgArray& aArguments,
+ const TDpsEleArray& aElements,
+ TDpsAttribute aAttribute,
+ RWriteStream& aScript,
+ CDpsTransaction* aTrader);
+
+
+ public:
+ // the dps operation result
+ TDpsResult iResult;
+ // the dps operaton enumeration
+ TDpsSupportedOp iOperation;
+ };
+
+/**
+* The class for dps startJob operation
+*/
+class TDpsStartJob : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsStartJob();
+
+ private:
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillReqArgs(TDpsArgArray& aArgs, TDpsEleArray& aElems,
+ TDpsAttribute& aAttrib,
+ CDpsTransaction* aTrader);
+
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C void CreateReqScriptL(const TDpsArgArray& aArgs,
+ const TDpsEleArray& aElements,
+ TDpsAttribute aAttribute,
+ RWriteStream& aScript,
+ CDpsTransaction* aTrader);
+
+ public:
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsStartJobReq iReqParam;
+
+ };
+
+/**
+* The class for dps abortJob operation
+*/
+class TDpsAbortJob : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsAbortJob();
+
+ private:
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillReqArgs(TDpsArgArray& aArgs, TDpsEleArray& aElems,
+ TDpsAttribute& aAttrib,
+ CDpsTransaction* aTrader);
+
+ public:
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsAbortJobReq iReqParam;
+
+ };
+
+/**
+* The class for dps continueJob operation
+*/
+class TDpsContinueJob : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsContinueJob();
+ };
+
+/**
+* The class for dps continueJob operation
+*/
+class TDpsGetJobStatus : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsGetJobStatus();
+
+ private:
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillRepArgs(const TDpsArgArray& aArgs,
+ CDpsTransaction* aTrader);
+
+ public:
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsJobStatusRep iRepParam;
+
+ };
+
+/**
+* The class for dps continueJob operation
+*/
+class TDpsGetPrinterStatus : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsGetPrinterStatus();
+
+ private:
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillRepArgs(const TDpsArgArray& aArgs,
+ CDpsTransaction* aTrader);
+
+ public:
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsPrinterStatusRep iRepParam;
+
+ };
+
+/**
+* The class for dps continueJob operation
+*/
+class TDpsGetCapability : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsGetCapability();
+
+ private:
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillReqArgs(TDpsArgArray& aArgs, TDpsEleArray& aElems,
+ TDpsAttribute& aAttrib,
+ CDpsTransaction* aTrader);
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillRepArgs(const TDpsArgArray& aArgs,
+ CDpsTransaction* aParam);
+
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C void CreateReqScriptL(const TDpsArgArray& aArgs,
+ const TDpsEleArray& aElements,
+ TDpsAttribute aAttribute,
+ RWriteStream& aScript,
+ CDpsTransaction* aTrader);
+
+ public:
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsCapReq iReqParam;
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsCapRep iRepParam;
+
+ };
+
+/**
+* The class for dps continueJob operation
+*/
+class TDpsConfigPrintService : public TMDpsOperation
+ {
+ friend class CDpsTransaction;
+ public:
+ /**
+ * Default constructor
+ */
+ inline TDpsConfigPrintService();
+
+ private:
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillReqArgs(TDpsArgArray& aArgs, TDpsEleArray& aElems,
+ TDpsAttribute& aAttrib,
+ CDpsTransaction* aTrader);
+ /**
+ * @see TMDpsOperation
+ */
+ IMPORT_C TInt FillRepArgs(const TDpsArgArray& aArgs,
+ CDpsTransaction* aTrader);
+
+ public:
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsConfigPrintReq iReqParam;
+
+ // the request operation parameter which needed to be filled by
+ // the client
+ TDpsConfigPrintRep iRepParam;
+
+ };
+
+/**
+* The class defines dps events
+*/
+NONSHARABLE_CLASS(TDpsEvents)
+ {
+ public:
+ // the event enumeration
+ TDpsEvent iEvent;
+ // jobStatus event
+ TDpsGetJobStatus iJobEvent;
+ // printerStatus event
+ TDpsGetPrinterStatus iPrinterEvent;
+ };
+
+#include "dpsoperation.inl"
+#endif