usbclasses/pictbridgeengine/src/dpsoperation.cpp
branchRCL_3
changeset 23 25fce757be94
parent 22 5b2a402e96ac
child 24 e02eb84a14d2
--- a/usbclasses/pictbridgeengine/src/dpsoperation.cpp	Thu Aug 19 10:54:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1033 +0,0 @@
-/*
-* 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:  These classes implement dps operations replies. 
-*
-*/
-
-
-#include <e32debug.h>
-#include "dpsoperation.h"
-#include "dpsconst.h"
-#include "dpstransaction.h"
-#include "pictbridge.h"
-#include "dpsxmlparser.h"
-#include "dpsxmlgenerator.h"
-#include "dpsstatemachine.h"
-
-#ifdef _DEBUG
-#	define IF_DEBUG(t) {RDebug::t;}
-#else
-#	define IF_DEBUG(t)
-#endif
-
-const TInt KConfigPrintService = 5;
-const TInt KCopyFileWidth = 3;
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void TMDpsOperation::CreateReqScriptL(
-                                      const TDpsArgArray& aArguments, 
-                                      const TDpsEleArray& /*aElements*/,
-                                      TDpsAttribute /*aAttribute*/, 
-                                      RWriteStream& aScript, 
-                                      CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TMDpsOperation::CreateReqScript")));        
-    CDpsXmlGenerator* g = aTrader->Generator();
-    g->StartDocumentL(aScript);
-    g->StartInputL(aScript);
-    TInt count = aArguments.Count();
-    if (!count)
-	    {
-		g->StartOperationL((TDpsOperation)iOperation, aScript, ETrue);
-		}
-	else
-		{
-		g->StartOperationL((TDpsOperation)iOperation, aScript);
-		for (TInt i = 0; i < count; i++)
-			{
-			g->CreateArgL(aScript, aArguments[i]);
-			}
-		g->EndOperationL((TDpsOperation)iOperation, aScript);	
-		}
-			
-    g->EndInputL(aScript);
-	g->EndDocumentL(aScript);	
-	IF_DEBUG(Print(_L("<<<TMDpsOperation::CreateReqScript")));        	
-    }
-    
-// ---------------------------------------------------------------------------
-// Some request parameters should be checked
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt TDpsStartJob::FillReqArgs(TDpsArgArray& aArgs, 
-                                        TDpsEleArray& aElements,
-                                        TDpsAttribute& /*aAttrib*/, 
-                                        CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsStartJob::FillReqArgs")));                    
-    TInt imageCount = iReqParam.iPrintInfo.Count();
-    if (!imageCount) 
-        {
-        return KErrUnknown;
-        }
-    TUint32* objectHandles = new TUint32[imageCount];
-    if (!objectHandles)
-        {
-        return KErrNoMemory;
-        }
-    for (TInt i = 0; i < imageCount; i++)
-        {
-        TInt err = aTrader->Engine()->Ptp().
-             GetObjectHandleByName(
-                 iReqParam.iPrintInfo[i].iFile, objectHandles[i], ETrue); 
-        if (err != KErrNone)
-            {
-            IF_DEBUG(Print(_L("---error %d"), err));
-            
-            delete[] objectHandles;
-            return err;
-            }
-        }
-    TDpsArg* argsP = new TDpsArg[iReqParam.GetParamNum()];
-    if (!argsP)
-        {
-		delete[] objectHandles;
-        return KErrNoMemory;
-        }
-    TDpsEle* elemsP = new TDpsEle[1 + imageCount];
-    if (!elemsP)
-        {
-		delete[] argsP;
-		delete[] objectHandles;
-        return KErrNoMemory;
-        }
-    // jobConfig    
-    TInt count = iReqParam.iJobConfig.Count();
-              
-    TInt ret = KErrNone;
-    
-    elemsP[0].iElement = EDpsJobConfig;
-    elemsP[0].iNum = count;
-    if ( (ret = aElements.Append(elemsP[0])) != KErrNone )
-        {
-        IF_DEBUG(Print(_L("*** append error")));
-        return ret;
-        }
-    for (TInt i = 0; i < count; i++)
-        {
-        argsP[i].iElement = iReqParam.iJobConfig[i].iElement;
-    	// the parameter only has high bytes (0x1234)
-    	argsP[i].iContent.AppendNumUC(iReqParam.iJobConfig[i].iContent, EHex);
-    	// we have to append the low bytes (0000)
-    	argsP[i].iContent.Append(KDpsLowZero);
-    	if ( (ret = aArgs.Append(argsP[i])) != KErrNone ) 
-    	    {
-    	    IF_DEBUG(Print(_L("*** append error")));
-    	    return ret;
-    	    }
-    	IF_DEBUG(Print(_L("the element is %d"), argsP[i].iElement));
-    	IF_DEBUG(Print(_L("the content is %S"), &(argsP[i].iContent)));
-    	}    
-    // printInfo
-    for (TInt j = 0; j < imageCount; j++)
-        {
-    	// there is at least one argument for fileID
-    	TInt k = 1;
-    	elemsP[j + 1].iElement = EDpsPrintInfo;
-    	argsP[count].iElement = EDpsArgFileID;
-    	argsP[count].iContent.AppendNumFixedWidth(objectHandles[j], EHex, 
-    	                                          KFullWordWidth);
-    	if ( (ret = aArgs.Append(argsP[count])) != KErrNone )
-    	    {
-    	    IF_DEBUG(Print(_L("*** append error")));
-    	    return ret;
-    	    }
-    	
-    
-    	IF_DEBUG(Print(_L("the element is %d"), argsP[count].iElement));
-    	IF_DEBUG(Print(_L("the content is %S"), &(argsP[count].iContent)));
-    	count++;
-    	
-    	// not empty
-    	if (iReqParam.iPrintInfo[j].iFileName)
-    	    {
-    	    argsP[count].iElement = EDpsArgFileName;
-    	    argsP[count].iContent.Copy(iReqParam.iPrintInfo[j].iFile);
-    	    if ( (ret = aArgs.Append(argsP[count])) != KErrNone)
-    	        {
-                IF_DEBUG(Print(_L("*** append error")));
-    	        return ret;
-    	        }
-    	    
-    	    IF_DEBUG(Print(_L("the element is %d"), argsP[count].iElement));
-    	    IF_DEBUG(Print(_L("the content is %S"), &(argsP[count].iContent)));
-    	    
-    	    k++; count++;
-    	    }
-    	// not empty    
-    	if (iReqParam.iPrintInfo[j].iDate.Size())
-    	    {
-            argsP[count].iElement = EDpsArgDate;
-            argsP[count].iContent.Copy(iReqParam.iPrintInfo[j].iDate);
-            if ( (ret = aArgs.Append(argsP[count])) != KErrNone) 
-                {
-                IF_DEBUG(Print(_L("*** append error")));
-                return ret;
-                }
-            IF_DEBUG(Print(_L("the element is %d"), argsP[count].iElement));
-    	    IF_DEBUG(Print(_L("the content is %S"), &(argsP[count].iContent)));
-            k++; count++;
-    	    }
-    	if (iReqParam.iPrintInfo[j].iCopies != 0)
-    	    {
-            argsP[count].iElement = EDpsArgCopies;
-            argsP[count].iContent.AppendNumFixedWidthUC(
-                iReqParam.iPrintInfo[j].iCopies, EDecimal, KCopyFileWidth);
-            if ( (ret = aArgs.Append(argsP[count])) != KErrNone) 
-                {
-                IF_DEBUG(Print(_L("*** append error")));
-                return ret;
-                }
-            IF_DEBUG(Print(_L("the element is %d"), argsP[count].iElement));
-    	    IF_DEBUG(Print(_L("the content is %S"), &(argsP[count].iContent)));
-    	    k++; count++;
-    	    }    
-    	if (iReqParam.iPrintInfo[j].iPrtPID != 0)
-    	    {
-            argsP[count].iElement = EDpsArgPrtPID;
-            argsP[count].iContent.AppendNumUC(iReqParam.iPrintInfo[j].iPrtPID);
-            if ( (ret = aArgs.Append(argsP[count])) != KErrNone) 
-                {
-                IF_DEBUG(Print(_L("*** append error")));
-                return ret;
-                }
-            IF_DEBUG(Print(_L("the element is %d"), argsP[count].iElement));
-    	    IF_DEBUG(Print(_L("the content is %S"), &(argsP[count].iContent)));
-    	    k++; count++;
-    	    }
-    	if (iReqParam.iPrintInfo[j].iCopyID != 0)
-    	    {
-            argsP[count].iElement = EDpsArgCopyID;
-            argsP[count].iContent.AppendNumUC(iReqParam.iPrintInfo[j].iCopyID);
-            if ( (ret = aArgs.Append(argsP[count])) != KErrNone) 
-                {
-                IF_DEBUG(Print(_L("*** append error")));
-                return ret;
-                }
-            IF_DEBUG(Print(_L("the element is %d"), argsP[count].iElement));
-    	    IF_DEBUG(Print(_L("the content is %S"), &(argsP[count].iContent)));
-    	    k++; count++;
-    	    }
-        
-    	elemsP[j + 1].iNum = k;
-    	if ( (ret = aElements.Append(elemsP[j + 1])) != KErrNone) 
-    	    {
-            IF_DEBUG(Print(_L("*** append error")));
-    	    return ret;
-    	    }
-    	}
-    	        
-    delete[] objectHandles;	
-    delete[] argsP;
-    delete[] elemsP;
-    IF_DEBUG(Print(_L("<<<TDpsStartJob::FillReqArgs")));                        
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-// 
-EXPORT_C void TDpsStartJob::CreateReqScriptL(const TDpsArgArray& aArguments, 
-                                            const TDpsEleArray& aElements,
-                                            TDpsAttribute /*aAttribute*/,  
-                                            RWriteStream& aScript, 
-                                            CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsStartJob::CreateReqScript")));                        
-    CDpsXmlGenerator* g = aTrader->Generator();
-    g->StartDocumentL(aScript);
-    g->StartInputL(aScript);
-    g->StartOperationL((TDpsOperation)iOperation, aScript);
-    TInt count = aElements.Count();
-    TInt limit = 0;
-    for (TInt i = 0; i < count; i++)
-	    {
-		g->StartElementL(aElements[i].iElement, aScript);
-		TInt init = limit;
-		limit = (i == 0 ? aElements[0].iNum : limit + aElements[i].iNum);
-		for (TInt j = init; j < limit; j++)
-			{
-			g->CreateArgL(aScript,aArguments[j]);
-			}
-		g->EndElementL(aElements[i].iElement, aScript);	
-		}
-	g->EndOperationL((TDpsOperation)iOperation, aScript);
-	g->EndInputL(aScript);
-	g->EndDocumentL(aScript);	
-	IF_DEBUG(Print(_L("<<<TDpsStartJob::CreateReqScript")));                        	
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C TInt TDpsAbortJob::FillReqArgs(TDpsArgArray& aArgs, 
-                                        TDpsEleArray& /*aElems*/,
-                                        TDpsAttribute& /*aAttrib*/, 
-                                        CDpsTransaction* /*aParam*/)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsAbortJob::FillReqArgs")));                            
-    TDpsArg arg;
-    arg.iElement = EDpsArgAbortStyle;
-    arg.iContent.AppendNumUC(iReqParam.iAbortStyle, EHex);
-    arg.iContent.Append(KDpsLowZero);
-    TInt ret = aArgs.Append(arg);
-    if (ret != KErrNone) 
-        {
-        IF_DEBUG(Print(_L("*** append error")));
-        }
-    IF_DEBUG(Print(_L("<<<TDpsAbortJob::FillReqArgs")));                            
-    return ret;
-    }
-    
-// ---------------------------------------------------------------------------
-// Some request parameters should be checked
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C TInt TDpsGetCapability::FillReqArgs(TDpsArgArray& aArgs, 
-                                             TDpsEleArray& aElements,
-                                             TDpsAttribute& aAttrib, 
-                                             CDpsTransaction* /*aParam*/)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsGetCapability::FillReqArgs")));                                
-    // only one element
-    TDpsEle elems;
-    elems.iElement = EDpsCapability;
-    elems.iNum = 1;
-    TInt ret = KErrNone;
-    if ( (ret = aElements.Append(elems)) != KErrNone)
-        {
-        IF_DEBUG(Print(_L("*** append error")));
-        return ret;
-        }
-    
-    // only one parameter
-    TDpsArg argsP;
-    argsP.iElement = iReqParam.iCap;
-    if ( (ret = aArgs.Append(argsP)) != KErrNone)
-        {
-        IF_DEBUG(Print(_L("*** append error")));
-        return ret;
-        }
-    if (EDpsArgPaperTypes == iReqParam.iCap || EDpsArgLayouts == iReqParam.iCap)
-        {
-        if (iReqParam.iAttribute != 0)
-            {
-            aAttrib = iReqParam.iAttribute;
-            }
-        }
-    IF_DEBUG(Print(_L("<<<TDpsGetCapability::FillReqArgs")));                                    
-    return KErrNone;    
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C void TDpsGetCapability::CreateReqScriptL(
-                                             const TDpsArgArray& aArguments, 
-                                             const TDpsEleArray& aElements,
-                                             TDpsAttribute aAttribute, 
-                                             RWriteStream& aScript, 
-                                             CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsGetCapability::CreateReqScript")));    
-    CDpsXmlGenerator* g = aTrader->Generator();
-    g->StartDocumentL(aScript);
-    g->StartInputL(aScript);
-    g->StartOperationL((TDpsOperation)iOperation, aScript);
-	g->StartElementL(aElements[0].iElement, aScript);
-	const TInt count = aArguments.Count();
-	for (TInt i = 0; i < count; i++)
-		{
-		g->CreateArgL(aScript, aArguments[i], aAttribute);
-		}
-	g->EndElementL(aElements[0].iElement, aScript);
-	g->EndOperationL((TDpsOperation)iOperation, aScript);	
-	g->EndInputL(aScript);
-	g->EndDocumentL(aScript);
-	IF_DEBUG(Print(_L("<<<TDpsGetCapability::CreateReqScript")));    		
-    }
-        
-// ---------------------------------------------------------------------------
-// Some request parameters should be checked
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C TInt TDpsConfigPrintService::FillReqArgs(TDpsArgArray& aArgs, 
-                                                  TDpsEleArray& /*aElems*/,
-                                                  TDpsAttribute& /*aAttrib*/, 
-                                                  CDpsTransaction* /*aParam*/)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsConfigPrintService::FillReqArgs")));
-    TDpsArg* argsP = new TDpsArg[KConfigPrintService]; 
-    if (!argsP)
-        {
-        return KErrNoMemory;
-        }
-    TInt count;
-    TInt ret = KErrNone;     
-    for (TInt i = 0; i < KConfigPrintService; i++)
-        {
-        switch (i)
-            {
-        // there might be several versions
-        case EDpsArgDpsVersions:
-            argsP[i].iElement = EDpsArgDpsVersions;
-            count = iReqParam.iDpsVersions.Count();
-            for (TInt j = 0; j < count; j++)
-                {
-                argsP[i].iContent.AppendNumUC
-                    (iReqParam.iDpsVersions[j].iMajor);
-                argsP[i].iContent.Append(_L("."));    
-                argsP[i].iContent.AppendNumUC
-                    (iReqParam.iDpsVersions[j].iMinor);    
-                }
-            ret = aArgs.Append(argsP[i]);
-        break;    
-        
-        case EDpsArgVendorName: // vender name
-            
-            argsP[i].iElement = EDpsArgVendorName;
-            argsP[i].iContent.Append(iReqParam.iVendorName);
-            ret = aArgs.Append(argsP[i]);
-                        
-        break;  
-        
-        case EDpsArgVendorSpecificVersion: // vender version (optional)
-            if (iReqParam.iVendorVersion.iMajor && 
-                iReqParam.iVendorVersion.iMinor)
-                {
-                argsP[i].iElement = EDpsArgVendorSpecificVersion;
-                argsP[i].iContent.AppendNumUC(iReqParam.iVendorVersion.iMajor);
-                argsP[i].iContent.Append(_L("."));    
-                argsP[i].iContent.AppendNumUC(iReqParam.iVendorVersion.iMinor);
-                ret = aArgs.Append(argsP[i]);        
-                }
-            
-        break;
-        
-        case EDpsArgProductName: // produce name
-            argsP[i].iElement = EDpsArgProductName;
-            argsP[i].iContent.Append(iReqParam.iProductName);
-            ret = aArgs.Append(argsP[i]);
-        break;
-        
-        case EDpsArgSerialNo: // serialNo (optional)
-            if (iReqParam.iSerialNo.Length())
-                {
-                argsP[i].iElement = EDpsArgSerialNo;
-                argsP[i].iContent.Append(iReqParam.iSerialNo);    
-                ret = aArgs.Append(argsP[i]);
-                }
-            
-        break;
-        
-        default:
-            IF_DEBUG(Print(_L("***Wrong parameter")));
-            delete[] argsP;
-            return KErrArgument;
-            }
-        
-        }
-    
-    if (ret != KErrNone) 
-        {
-        IF_DEBUG(Print( _L("***TDpsConfigPrintService::FillReqArgs append error = %d"), ret));
-        }
-    
-    delete[] argsP;
-    IF_DEBUG(Print(_L("<<<TDpsConfigPrintService::FillReqArgs")));    
-    return ret;    
-    }
-
-// ---------------------------------------------------------------------------
-//  Not all parameters are checked. If the invalid parameter can pass the 
-//  the complaint test, it should not be checked. Instead, the client will see
-//  it as unknown error. Otherwise, there might be unnecessary code and the
-//  client cannot be informed. 
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C TInt TDpsGetCapability::FillRepArgs(const TDpsArgArray& aArgs, 
-                                             CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsGetCapability::FillRepArgs")));    
-    CDpsXmlParser* XmlPar = aTrader->Parser();
-    
-    TInt ret = KErrNone;
-    
-    if (aArgs.Count())
-        {
-        if (EDpsArgPaperTypes == aArgs[0].iElement || 
-            EDpsArgLayouts == aArgs[0].iElement)
-            {
-            if (XmlPar->HasAttribute())
-                {
-                TDpsAttribute attrib;
-		        XmlPar->GetAttribute(attrib);
-		        ret = iRepParam.iContent.Append(attrib);            
-                }
-            else
-                {
-                ret = iRepParam.iContent.Append(0);
-                }
-            
-            if (ret != KErrNone)
-                {
-                IF_DEBUG(Print(_L("*** append error")));
-                return ret;
-                }
-            }
-        TUint32 value;
-        TLex8 converter;
-        TLex8 parser(aArgs[0].iContent);
-        parser.SkipSpace();
-        while (!parser.Eos())
-            {
-            parser.Mark();
-            parser.SkipCharacters();
-            if (KFullWordWidth == parser.TokenLength())
-                {
-                TPtrC8 token = parser.MarkedToken();
-                converter.Assign(token);
-                parser.SkipSpace();  
-                }
-            else
-                {
-                IF_DEBUG(Print(_L("***Wrong argument")));
-                return KErrArgument;
-                }
-            TInt error = converter.Val(value, EHex);
-            if (error != KErrNone)
-                {
-                IF_DEBUG(Print(_L("convert error %d"), error));
-                return error;
-                }
-            if (EDpsArgPaperTypes == aArgs[0].iElement)
-                {
-                TDpsPaperType paperType;
-                TInt major = value >> KShiftLength;
-                paperType.iMajor = (TDpsPaperTypeMajor)major;
-                paperType.iMinor = (TDpsPaperTypeMinor)(value & KDpsMinorMask);
-                ret = iRepParam.iPaperType.Append(paperType);
-                }
-            else
-                {
-                // remove the extra zeros
-                value = value >> KShiftLength; 
-                ret = iRepParam.iContent.Append(value);
-                IF_DEBUG(Print(_L("the value is %x"), value));
-                }
-            
-            if (ret != KErrNone) 
-                {
-                IF_DEBUG(Print(_L("*** append error")));
-                return ret;
-                }
-            }
-        iRepParam.iCap = aArgs[0].iElement;
-           
-        }
-    
-    IF_DEBUG(Print(_L("<<<TDpsGetCapability::FillRepArgs")));
-    return KErrNone;    
-    }
-
-// ---------------------------------------------------------------------------
-//  Not all parameters are checked. If the invalid parameter can pass the 
-//  the complaint test, it should not be checked. Instead, the client will see
-//  it as unknown error. Otherwise, there might be unnecessary code and the
-//  client cannot be informed. 
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C TInt TDpsConfigPrintService::FillRepArgs(const TDpsArgArray& aArgs, 
-                                                  CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsConfigPrintService::FillRepArgs")));    
-    TInt error = KErrNone;
-    TLex8 converter, parser;
-    const TInt count = aArgs.Count();
-    
-    for (TInt i = 0; i < count; i++)
-        {
-        switch (aArgs[i].iElement)
-            {
-            case EDpsArgPrintServiceAvailable: 
-                converter.Assign(aArgs[i].iContent);
-                TInt64 result;
-                error = converter.Val(result, EHex);
-                if (error != KErrNone)
-                    {
-                    IF_DEBUG(Print(_L("*** convert error")));
-                    return error;
-                    }
-                // removes the low four bytes zeros. 
-                IF_DEBUG(Print(_L("--Printer available is %x"), result));   
-                result = result >> KShiftLength;    
-                iRepParam.iPrintAvailable = result;
-            break;
-        
-            case EDpsArgDpsVersions:
-                TDpsVersion version;
-            
-                parser.Assign(aArgs[i].iContent);
-                while (!parser.Eos())
-                    {
-                    parser.Mark();
-                    parser.SkipCharacters();
-                    if (parser.TokenLength())
-                        {
-                        TPtrC8 token = parser.MarkedToken();
-                        converter.Assign(token);
-                        parser.SkipSpace();
-                        }
-                    else
-                        {
-                        IF_DEBUG(Print(_L("***wrong !!!")));
-                        return KErrArgument;
-                        }
-                    error = aTrader->ConvertVersion(converter, version);
-                    if (error != KErrNone)
-                        {
-                        return error;
-                        }
-                    error = iRepParam.iDpsVersions.Append(version);
-                    if (error != KErrNone)
-                        {
-                        IF_DEBUG(Print(_L("*** append error")));
-                        return error;
-                        }
-                    }
-            break;
-        
-            case EDpsArgVendorName:
-                iRepParam.iVendorName.Copy(aArgs[i].iContent);
-                IF_DEBUG(Print(_L
-                                ("vendor name is %S"), &iRepParam.iVendorName));
-            break;
-        
-            case EDpsArgVendorSpecificVersion:
-                parser.Assign(aArgs[i].iContent);
-                aTrader->ConvertVersion(parser, version);
-                iRepParam.iVendorVersion = version;
-                IF_DEBUG(Print(_L
-                        ("vendor version is %x"), iRepParam.iVendorVersion));
-            break;
-       
-            case EDpsArgProductName:
-                iRepParam.iProductName.Copy(aArgs[i].iContent);
-                IF_DEBUG(Print(_L
-                        ("product name is %S"), &iRepParam.iProductName));
-            break;
-        
-            case EDpsArgSerialNo:
-                iRepParam.iSerialNo.Copy(aArgs[i].iContent);
-                IF_DEBUG(Print(_L("SerialNo is %S"), &iRepParam.iSerialNo));
-            break;
-        
-            default:
-                IF_DEBUG(Print(_L("--Unknown param!!")));
-                return KErrArgument;
-            }
-        }
-        
-    IF_DEBUG(Print(_L("<<<TDpsConfigPrintService::FillRepArgs")));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-//  Not all parameters are checked. If the invalid parameter can pass the 
-//  the complaint test, it should not be checked. Instead, the client will see
-//  it as unknown error. Otherwise, there might be unnecessary code and the
-//  client cannot be informed. 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt TDpsGetJobStatus::FillRepArgs(const TDpsArgArray& aArgs, 
-                                            CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsGetJobStatus::FillRepArgs")));
-    TInt value, error, per;
-    TBuf<KMaxArgLen> fileName;
-    TLex8 converter;    
-    TInt count = aArgs.Count();
-    TBool reply = aTrader->IsReply();
-    if (!reply)
-        {
-        aTrader->Engine()->Event()->iEvent = EDpsEvtNotifyJobStatus;
-        }
-    else
-        {
-        aTrader->Engine()->Event()->iEvent = EDpsEvtEmpty;
-        }
-    for (TInt i = 0; i < count; i++)
-        {
-        switch (aArgs[i].iElement)
-            {
-            case EDpsArgPrtPID:
-                converter.Assign(aArgs[i].iContent);
-                error = converter.Val(value);
-                if (error != KErrNone)
-                    {
-                    return error;
-                    }
-                if (reply)
-                    {
-                    iRepParam.iPrtPID = value;
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iJobEvent.iRepParam.iPrtPID = 
-                        value;
-                    }
-            break;
-                
-            case EDpsArgFilePath:
-                if (reply)
-                    {
-                    iRepParam.iFilePath.Copy(aArgs[i].iContent);
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iJobEvent.iRepParam.iFilePath. 
-                    Copy(aArgs[i].iContent);
-                    }
-            break;
-                
-            case EDpsArgCopyID:
-                converter.Assign(aArgs[i].iContent);
-                error = converter.Val(value);
-                if (error != KErrNone)
-                    {
-                     return error;
-                    }
-                if (reply)
-                    {
-                    iRepParam.iCopyID = value;
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iJobEvent.iRepParam.iCopyID = 
-                        value;
-                    }    
-            break;
-                
-            case EDpsArgProgress:
-                per = aTrader->ParsePercentage(aArgs[i].iContent);
-                if (per < KErrNone)
-                    {
-                    return per;
-                    }
-                
-                if (reply)
-                    {
-                    iRepParam.iProgress = per;
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iJobEvent.iRepParam.iProgress = 
-                        per;
-                    }
-            break;
-               
-            case EDpsArgImagesPrinted:
-                converter.Assign(aArgs[i].iContent);
-                error = converter.Val(value);
-                if (error != KErrNone)
-                    {
-                     return error;
-                    }
-                if (reply)
-                    {
-                    iRepParam.iImagesPrinted = value;
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iJobEvent.iRepParam.
-                        iImagesPrinted = value;
-                    }                                                                  
-            break;
-            
-            default:
-                IF_DEBUG(Print(_L("***wrong param!!!")));
-                return KErrArgument;                
-            }
-        }
-    IF_DEBUG(Print(_L("<<<TDpsGetJobStatus::FillRepArgs")));    
-    return KErrNone;    
-    }
-
-// ---------------------------------------------------------------------------
-//  Not all parameters are checked. If the invalid parameter can pass the 
-//  the complaint test, it should not be checked. Instead, the client will see
-//  it as unknown error. Otherwise, there might be unnecessary code and the
-//  client cannot be informed. 
-// ---------------------------------------------------------------------------
-//    
-EXPORT_C TInt TDpsGetPrinterStatus::FillRepArgs(const TDpsArgArray& aArgs, 
-                                                CDpsTransaction* aTrader)
-    {
-    IF_DEBUG(Print(_L(">>>TDpsGetPrinterStatus::FillRepArgs")));
-    // if UI has not pass the event pointer, we do need to fill in it
-    if (!aTrader->Engine()->Event())
-        {
-        return KErrNone;
-        }
-    TLex8 converter;
-    TDpsPrinterStatusRep param;
-    const TInt count = aArgs.Count();
-    TUint32 value, temp;
-    TBool reply = aTrader->IsReply();
-    if (!reply)
-        {
-        aTrader->Engine()->Event()->iEvent = EDpsEvtNotifyDeviceStatus;
-        }
-    else
-        {
-        aTrader->Engine()->Event()->iEvent = EDpsEvtEmpty;
-        }
-    for (TInt i = 0; i < count; i++)
-        {
-        converter.Assign(aArgs[i].iContent);
-        TInt error = converter.Val(value, EHex);
-        if (error != KErrNone)
-            {
-            return error;
-            }
-        IF_DEBUG(Print(_L("--the value is %x"), value));
-        
-        switch (aArgs[i].iElement)
-            {
-            case EDpsArgDpsPrintServiceStatus:
-                value = value >> KShiftLength;
-                if (EDpsPrintServiceStatusPrinting == value ||
-                    EDpsPrintServiceStatusIdle == value ||
-                    EDpsPrintServiceStatusPaused == value)
-                    {
-                    if (reply)
-                        {
-                        iRepParam.iPrintStatus = 
-                            (TDpsPrintServiceStatus)(value);
-                        }
-                    else
-                        {
-                        aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                            iPrintStatus = (TDpsPrintServiceStatus)(value);
-                        }
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                    
-            break;
-            
-            case EDpsArgJobEndReason:
-                value = value >> KShiftLength;
-                if (EDpsJobStatusNotEnded == value ||
-                    EDpsJobStatusEndedOk == value ||
-                    EDpsJobStatusEndedAbortImmediately == value ||
-                    EDpsJobStatusEndedAbortCompleteCurrent == value ||
-                    EDpsJobStatusEndedOther == value)
-                    {
-                    if (reply)
-                        {
-                        iRepParam.iJobStatus = (TDpsJobStatus)(value);    
-                        }
-                    else
-                        {
-                        aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                            iJobStatus = (TDpsJobStatus)(value);    
-                        }    
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                
-            break;
-            
-            case EDpsArgErrorStatus:
-                value = value >> KShiftLength;
-                if (EDpsErrorStatusOk == value ||
-                    EDpsErrorStatusWarning == value ||
-                    EDpsErrorStatusFatal == value)
-                    {
-                    if (reply)
-                        {
-                        iRepParam.iErrorStatus = (TDpsErrorStatus)(value);    
-                        }
-                    else
-                        {
-                        aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                            iErrorStatus = (TDpsErrorStatus)(value);
-                        }    
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                
-            break;
-            
-            case EDpsArgErrorReason:
-                temp = value >> KShiftLength;
-                if (EDpsJobErrorNone == temp ||
-                    EDpsJobErrorPaper == temp ||
-                    EDpsJobErrorInk == temp ||
-                    EDpsJobErrorHardware == temp ||
-                    EDpsJobErrorFile == temp)
-                    {
-                    param.iJobEndReason.iMajor = 
-                        (TDpsJobEndReasonMajor)(temp);
-                    IF_DEBUG(Print(_L("the end reason is %x"), temp));
-                    value = value & KDpsMinorMask;
-                    switch (param.iJobEndReason.iMajor)
-                        {
-                        case EDpsJobErrorPaper:
-                            param.iJobEndReason.iPaperMinor = 
-                                (TDpsJobEndReasonPaper)(value);
-                        break;
-        
-                        case EDpsJobErrorInk:
-                            param.iJobEndReason.iInkMinor = 
-                                (TDpsJobEndReasonInk)(value);
-                        break;
-        
-                        case EDpsJobErrorHardware:
-                            param.iJobEndReason.iHardMinor = 
-                                (TDpsJobEndReasonHard)(value);
-                        break;
-        
-                        case EDpsJobErrorFile:
-                            param.iJobEndReason.iFileMinor = 
-                                (TDpsJobEndReasonFile)(value);
-                        break;
-        
-                        default:
-                            IF_DEBUG(Print(_L("no minor error")));
-                        break; 
-                        }
-                    if (reply)
-                        {
-                        iRepParam.iJobEndReason = param.iJobEndReason;
-                        }
-                    else
-                        {
-                        aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                            iJobEndReason = param.iJobEndReason;
-                        }
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                
-            break;
-            
-            case EDpsArgDisconnectEnable:
-                value = value >> KShiftLength;
-                if (EDpsDisconnectEnableFalse == value)
-                    {
-                    param.iDisconnectEnable = EFalse;    
-                    }
-                else if (EDpsDisconnectEnableTrue == value)
-                    {
-                    param.iDisconnectEnable = ETrue;
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                if (reply)
-                    {
-                    iRepParam.iDisconnectEnable = param.iDisconnectEnable; 
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                        iDisconnectEnable = param.iDisconnectEnable; 
-                    }    
-            break;
-            
-            case EDpsArgCapabilityChanged:
-                value = value >> KShiftLength;
-                if (EDpsCapabilityChangedFalse == value)
-                    {
-                    param.iCapabilityChange = EFalse;    
-                    }
-                else if (EDpsCapabilityChangedTrue == value)
-                    {
-                    param.iCapabilityChange = ETrue;
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                if (reply)
-                    {
-                    iRepParam.iCapabilityChange = param.iCapabilityChange;
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                        iCapabilityChange = param.iCapabilityChange;
-                    }
-            break;
-            
-            case EDpsArgNewJobOk:
-                value = value >> KShiftLength;
-                if (EDpsNewJobOkTrue == value)
-                    {
-                    param.iNewJobOk = ETrue;    
-                    }
-                else if (EDpsNewJobOkFalse == value)
-                    {
-                    param.iNewJobOk = EFalse;   
-                    }
-                else
-                    {
-                    return KErrArgument;
-                    }
-                if (reply)
-                    {
-                    iRepParam.iNewJobOk = param.iNewJobOk;
-                    }
-                else
-                    {
-                    aTrader->Engine()->Event()->iPrinterEvent.iRepParam.
-                        iNewJobOk = param.iNewJobOk;
-                    }    
-            break;
-            
-            default:
-                IF_DEBUG(Print(_L("***wrong param")));
-                return KErrArgument;
-            }
-        }
- 
-    IF_DEBUG(Print(_L("<<<TDpsGetPrinterStatus::FillRepArgs")));    
-    return KErrNone;    
-	}