diff -r 25fce757be94 -r e02eb84a14d2 usbclasses/pictbridgeengine/inc/dpsoperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbclasses/pictbridgeengine/inc/dpsoperation.h Wed Sep 01 12:20:49 2010 +0100 @@ -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 +#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