mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp
branchRCL_3
changeset 58 142dacf7b30e
parent 48 debf68073f2f
equal deleted inserted replaced
48:debf68073f2f 58:142dacf7b30e
    93     {
    93     {
    94     CMTPTypeInterdependentPropDesc*  interDesc = CMTPTypeInterdependentPropDesc::NewLC();
    94     CMTPTypeInterdependentPropDesc*  interDesc = CMTPTypeInterdependentPropDesc::NewLC();
    95     CMTPTypeFormatCapability* frmCap = CMTPTypeFormatCapability::NewLC( EMTPFormatCodeAssociation ,interDesc );
    95     CMTPTypeFormatCapability* frmCap = CMTPTypeFormatCapability::NewLC( EMTPFormatCodeAssociation ,interDesc );
    96     
    96     
    97     //EMTPObjectPropCodeStorageID
    97     //EMTPObjectPropCodeStorageID
    98     CMTPTypeObjectPropDesc* storageId = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeStorageID);
    98     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeStorageID) );
    99     frmCap->AppendL(storageId);
       
   100     CleanupStack::Pop(storageId);
       
   101     
    99     
   102     //EMTPObjectPropCodeObjectFormat
   100     //EMTPObjectPropCodeObjectFormat
   103     CMTPTypeObjectPropDesc* objFormat = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeObjectFormat);
   101     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeObjectFormat) );
   104     frmCap->AppendL(objFormat);
       
   105     CleanupStack::Pop(objFormat);
       
   106     
   102     
   107     //EMTPObjectPropCodeProtectionStatus
   103     //EMTPObjectPropCodeProtectionStatus
   108     CMTPTypeObjectPropDesc* protectionStatus = ServiceProtectionStatusL();
   104     frmCap->AppendL( ServiceProtectionStatusL() );
   109     CleanupStack::PushL(protectionStatus);
       
   110     frmCap->AppendL(protectionStatus);
       
   111     CleanupStack::Pop(protectionStatus);
       
   112     
   105     
   113     //EMTPObjectPropCodeAssociationType
   106     //EMTPObjectPropCodeAssociationType
   114     CMTPTypeObjectPropDesc* associationType = ServiceAssociationTypeL();
   107     frmCap->AppendL( ServiceAssociationTypeL() );
   115     CleanupStack::PushL(associationType);
       
   116     frmCap->AppendL(associationType);
       
   117     CleanupStack::Pop(associationType);
       
   118     
   108     
   119     //EMTPObjectPropCodeAssociationDesc
   109     //EMTPObjectPropCodeAssociationDesc
   120     CMTPTypeObjectPropDesc* associationDesc = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeAssociationDesc);
   110     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeAssociationDesc) );
   121     frmCap->AppendL(associationDesc);
       
   122     CleanupStack::Pop(associationDesc);
       
   123     
   111     
   124     //EMTPObjectPropCodeObjectSize
   112     //EMTPObjectPropCodeObjectSize
   125     CMTPTypeObjectPropDesc* objSize = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeObjectSize);
   113     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeObjectSize) );
   126     frmCap->AppendL(objSize);
       
   127     CleanupStack::Pop(objSize);
       
   128     
   114     
   129     //EMTPObjectPropCodeObjectFileName
   115     //EMTPObjectPropCodeObjectFileName
   130     _LIT(KMtpObjDescObjFileName, "[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 7}\\.[[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 2}]?");
   116     _LIT(KMtpObjDescObjFileName, "[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 7}\\.[[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 2}]?");
   131     CMTPTypeString* form = CMTPTypeString::NewLC( KMtpObjDescObjFileName ); 
   117     CMTPTypeString* form = CMTPTypeString::NewLC( KMtpObjDescObjFileName );   
   132     CMTPTypeObjectPropDesc* objFileName = CMTPTypeObjectPropDesc::NewLC( EMTPObjectPropCodeObjectFileName,
   118     frmCap->AppendL(CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeObjectFileName,
   133                 CMTPTypeObjectPropDesc::ERegularExpressionForm, form);
   119             CMTPTypeObjectPropDesc::ERegularExpressionForm, form));
   134     frmCap->AppendL(objFileName);
       
   135     CleanupStack::Pop(objFileName);
       
   136     CleanupStack::PopAndDestroy(form );       
   120     CleanupStack::PopAndDestroy(form );       
   137     
   121     
   138     //EMTPObjectPropCodeDateModified
   122     //EMTPObjectPropCodeDateModified
   139     CMTPTypeObjectPropDesc* dateModified = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeDateModified);
   123     frmCap->AppendL(  CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeDateModified) );
   140     frmCap->AppendL(dateModified);
       
   141     CleanupStack::Pop(dateModified);
       
   142     
   124     
   143     //EMTPObjectPropCodeParentObject
   125     //EMTPObjectPropCodeParentObject
   144     CMTPTypeObjectPropDesc* parentobj = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeParentObject);
   126     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeParentObject) );
   145     frmCap->AppendL(parentobj);
       
   146     CleanupStack::Pop(parentobj);
       
   147     
   127     
   148     //EMTPObjectPropCodePersistentUniqueObjectIdentifier
   128     //EMTPObjectPropCodePersistentUniqueObjectIdentifier
   149     CMTPTypeObjectPropDesc* objectIdentifier = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodePersistentUniqueObjectIdentifier);
   129     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodePersistentUniqueObjectIdentifier) );
   150     frmCap->AppendL(objectIdentifier);
       
   151     CleanupStack::Pop(objectIdentifier);
       
   152     
   130     
   153     //EMTPObjectPropCodeName
   131     //EMTPObjectPropCodeName
   154     CMTPTypeObjectPropDesc* name = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeName);
   132     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeName)); 
   155     frmCap->AppendL(name);
       
   156     CleanupStack::Pop(name);
       
   157     
   133     
   158     //EMTPObjectPropCodeNonConsumable
   134     //EMTPObjectPropCodeNonConsumable
   159     CMTPTypeObjectPropDesc* nonConsumable = ServiceNonConsumableL();
   135     frmCap->AppendL(ServiceNonConsumableL() );
   160     CleanupStack::PushL(nonConsumable);
       
   161     frmCap->AppendL(nonConsumable);
       
   162     CleanupStack::Pop(nonConsumable);
       
   163 	
       
   164     //Hidden
       
   165 	CMTPTypeObjectPropDesc* hidden = ServiceHiddenL();
       
   166     CleanupStack::PushL( hidden );
       
   167     frmCap->AppendL( hidden );
       
   168 	CleanupStack::Pop( hidden ); 
       
   169     
   136     
   170     iCapabilityList->AppendL(frmCap);
   137     iCapabilityList->AppendL(frmCap);
   171     CleanupStack::Pop(frmCap);
   138     CleanupStack::Pop(frmCap);
   172     CleanupStack::Pop(interDesc);
   139     CleanupStack::Pop(interDesc);
   173     }
   140     }
   177     {
   144     {
   178     CMTPTypeInterdependentPropDesc*  interDesc = CMTPTypeInterdependentPropDesc::NewLC();
   145     CMTPTypeInterdependentPropDesc*  interDesc = CMTPTypeInterdependentPropDesc::NewLC();
   179     CMTPTypeFormatCapability* frmCap = CMTPTypeFormatCapability::NewLC( aFormatCode ,interDesc );
   146     CMTPTypeFormatCapability* frmCap = CMTPTypeFormatCapability::NewLC( aFormatCode ,interDesc );
   180     
   147     
   181     //EMTPObjectPropCodeStorageID
   148     //EMTPObjectPropCodeStorageID
   182     CMTPTypeObjectPropDesc* storageID = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeStorageID);
   149     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeStorageID) );
   183     frmCap->AppendL(storageID);
       
   184     CleanupStack::Pop(storageID);
       
   185     
   150     
   186     //EMTPObjectPropCodeObjectFormat
   151     //EMTPObjectPropCodeObjectFormat
   187     CMTPTypeObjectPropDesc* objectFormat = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeObjectFormat);
   152     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeObjectFormat) );
   188     frmCap->AppendL(objectFormat);
       
   189     CleanupStack::Pop(objectFormat);
       
   190     
   153     
   191     //EMTPObjectPropCodeProtectionStatus
   154     //EMTPObjectPropCodeProtectionStatus
   192     CMTPTypeObjectPropDesc* protectionStatus = ServiceProtectionStatusL();
   155     frmCap->AppendL( ServiceProtectionStatusL() );
   193     CleanupStack::PushL(protectionStatus);
       
   194     frmCap->AppendL(protectionStatus);
       
   195     CleanupStack::Pop(protectionStatus);
       
   196     
   156     
   197     //EMTPObjectPropCodeObjectSize
   157     //EMTPObjectPropCodeObjectSize
   198     CMTPTypeObjectPropDesc* objSize = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeObjectSize);
   158     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeObjectSize) );
   199     frmCap->AppendL(objSize);
       
   200     CleanupStack::Pop(objSize);
       
   201     
   159     
   202     //EMTPObjectPropCodeObjectFileName
   160     //EMTPObjectPropCodeObjectFileName
   203     _LIT(KMtpObjDescObjFileName, "[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 7}\\.[[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 2}]?");
   161     _LIT(KMtpObjDescObjFileName, "[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 7}\\.[[a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~][a-zA-Z!#\\$%&'\\(\\)\\-0-9@\\^_\\`\\{\\}\\~ ]{0, 2}]?");
   204     CMTPTypeString* form = CMTPTypeString::NewLC( KMtpObjDescObjFileName );
   162     CMTPTypeString* form = CMTPTypeString::NewLC( KMtpObjDescObjFileName );   
   205     CMTPTypeObjectPropDesc* objFileName = CMTPTypeObjectPropDesc::NewLC( EMTPObjectPropCodeObjectFileName,
   163     frmCap->AppendL(CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeObjectFileName,
   206                 CMTPTypeObjectPropDesc::ERegularExpressionForm, form);
   164             CMTPTypeObjectPropDesc::ERegularExpressionForm, form));
   207     frmCap->AppendL(objFileName);
       
   208     CleanupStack::Pop(objFileName);
       
   209     CleanupStack::PopAndDestroy(form );     
   165     CleanupStack::PopAndDestroy(form );     
   210     
   166     
   211     //EMTPObjectPropCodeDateModified
   167     //EMTPObjectPropCodeDateModified
   212     CMTPTypeObjectPropDesc* dateModified = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeDateModified);
   168     frmCap->AppendL(  CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeDateModified) );
   213     frmCap->AppendL(dateModified);
       
   214     CleanupStack::Pop(dateModified);
       
   215     
   169     
   216     //EMTPObjectPropCodeParentObject
   170     //EMTPObjectPropCodeParentObject
   217     CMTPTypeObjectPropDesc* parentObject = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeParentObject);
   171     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeParentObject) );
   218     frmCap->AppendL(parentObject);
       
   219     CleanupStack::Pop(parentObject);
       
   220     
   172     
   221     //EMTPObjectPropCodePersistentUniqueObjectIdentifier
   173     //EMTPObjectPropCodePersistentUniqueObjectIdentifier
   222     CMTPTypeObjectPropDesc* objectIdentifier = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodePersistentUniqueObjectIdentifier);
   174     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodePersistentUniqueObjectIdentifier) );
   223     frmCap->AppendL(objectIdentifier);
       
   224     CleanupStack::Pop(objectIdentifier);
       
   225     
   175     
   226     //EMTPObjectPropCodeName
   176     //EMTPObjectPropCodeName
   227     CMTPTypeObjectPropDesc* name = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeName);
   177     frmCap->AppendL( CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeName)); 
   228     frmCap->AppendL(name);
       
   229     CleanupStack::Pop(name);
       
   230     
   178     
   231     //EMTPObjectPropCodeNonConsumable
   179     //EMTPObjectPropCodeNonConsumable
   232     CMTPTypeObjectPropDesc* nonConsumable = ServiceNonConsumableL();
   180     frmCap->AppendL(ServiceNonConsumableL() );
   233     CleanupStack::PushL(nonConsumable);
       
   234     frmCap->AppendL(nonConsumable);
       
   235     CleanupStack::Pop(nonConsumable);
       
   236     //Hidden
       
   237 	CMTPTypeObjectPropDesc* hidden = ServiceHiddenL();
       
   238     CleanupStack::PushL( hidden );
       
   239     frmCap->AppendL( hidden );
       
   240 	CleanupStack::Pop( hidden ); 
       
   241     
   181     
   242     iCapabilityList->AppendL(frmCap);
   182     iCapabilityList->AppendL(frmCap);
   243     CleanupStack::Pop(frmCap);
   183     CleanupStack::Pop(frmCap);
   244     CleanupStack::Pop(interDesc);
   184     CleanupStack::Pop(interDesc);
   245     }
   185     }
   304     CleanupStack::PopAndDestroy(expectedForm);
   244     CleanupStack::PopAndDestroy(expectedForm);
   305     
   245     
   306     return ret;
   246     return ret;
   307     }
   247     }
   308 
   248 
   309 CMTPTypeObjectPropDesc* CMTPGetFormatCapabilities::ServiceHiddenL()
       
   310     {
       
   311     CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
       
   312     CleanupStack::PushL(expectedForm);
       
   313     TUint16 values[] = {EMTPVisible, EMTPHidden};
       
   314     TUint   numValues((sizeof(values) / sizeof(values[0])));
       
   315     for (TUint i = 0; i < numValues; i++)
       
   316         {
       
   317         TMTPTypeUint16 data(values[i]);
       
   318         expectedForm->AppendSupportedValueL(data);
       
   319         }   
       
   320     CMTPTypeObjectPropDesc* ret = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);     
       
   321     CleanupStack::PopAndDestroy(expectedForm);
       
   322     
       
   323     return ret;
       
   324     }
       
   325 
       
   326 TMTPResponseCode CMTPGetFormatCapabilities::CheckRequestL()
   249 TMTPResponseCode CMTPGetFormatCapabilities::CheckRequestL()
   327     {
   250     {
   328     TMTPResponseCode response = CMTPRequestProcessor::CheckRequestL(); 
   251     TMTPResponseCode response = CMTPRequestProcessor::CheckRequestL(); 
   329     if( EMTPRespCodeOK != response )
   252     if( EMTPRespCodeOK != response )
   330         return response;
   253         return response;