mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp Wed Sep 15 12:45:22 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp Wed Oct 13 15:06:09 2010 +0300
@@ -188,105 +188,103 @@
if ( protectionStatus != EMTPProtectionNoProtection )
{
// NOTE: P4S expects AccessDenied response instead of ObjectWriteProtected
- responseCode = EMTPRespCodeAccessDenied; // EMTPRespCodeObjectWriteProtected;
+ return EMTPRespCodeAccessDenied; // EMTPRespCodeObjectWriteProtected;
}
- else
+
+ switch ( propertyCode )
{
- switch ( propertyCode )
+ case EMTPObjectPropCodeStorageID:
+ case EMTPObjectPropCodeObjectFormat:
+ case EMTPObjectPropCodeProtectionStatus:
+ case EMTPObjectPropCodeObjectSize:
+ case EMTPObjectPropCodeParentObject:
+ case EMTPObjectPropCodePersistentUniqueObjectIdentifier:
+ case EMTPObjectPropCodeDateAdded:
+ case EMTPObjectPropCodeDateCreated:
+ case EMTPObjectPropCodeDateModified:
{
- case EMTPObjectPropCodeStorageID:
- case EMTPObjectPropCodeObjectFormat:
- case EMTPObjectPropCodeProtectionStatus:
- case EMTPObjectPropCodeObjectSize:
- case EMTPObjectPropCodeParentObject:
- case EMTPObjectPropCodePersistentUniqueObjectIdentifier:
- case EMTPObjectPropCodeDateAdded:
- case EMTPObjectPropCodeDateCreated:
- case EMTPObjectPropCodeDateModified:
+ responseCode = EMTPRespCodeAccessDenied;
+ }
+ break;
+
+ case EMTPObjectPropCodeNonConsumable:
+ object->SetUint( CMTPObjectMetaData::ENonConsumable,
+ aPropListElement.Uint8L( CMTPTypeObjectPropListElement::EValue ) );
+ // TODO: need to reconsider,
+ // if propList comprise both non-consumable and objectFileName,
+ // ModifyObjectL would be called twice, need to investigate if it won't affect
+ // performance
+ iFramework.ObjectMgr().ModifyObjectL( *object );
+ break;
+
+ case EMTPObjectPropCodeObjectFileName:
+ {
+ TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) );
+ TPtrC ptr( aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );
+ if ( KMaxFileName < ptr.Length() )
+ responseCode = EMTPRespCodeInvalidDataset;
+ else
{
- responseCode = EMTPRespCodeAccessDenied;
- }
- break;
+ TFileName newSuid( ptr );
+ TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid );
+ PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err );
+ if ( KErrOverflow == err ) // full path name is too long
+ {
+ responseCode = EMTPRespCodeInvalidDataset;
+ }
+ else if ( KErrNone == err ) // TODO: ( KErrAlreadyExists == err )
+ {
+ TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( *object, newSuid ) ); //Update MPX DB
- case EMTPObjectPropCodeNonConsumable:
- object->SetUint( CMTPObjectMetaData::ENonConsumable,
- aPropListElement.Uint8L( CMTPTypeObjectPropListElement::EValue ) );
- // TODO: need to reconsider,
- // if propList comprise both non-consumable and objectFileName,
- // ModifyObjectL would be called twice, need to investigate if it won't affect
- // performance
- iFramework.ObjectMgr().ModifyObjectL( *object );
- break;
+ PRINT1( _L( "MM MTP <> Rename MPX object file name err = %d" ), err );
+ // it is ok if file is not found in DB, following S60 solution
+ if ( KErrNotFound == err )
+ {
+ TRAP( err, iDpConfig.GetWrapperL().AddObjectL( *object ) );
+ PRINT1( _L( "MM MTP <> Add MPX object file name err = %d" ), err );
+ }
- case EMTPObjectPropCodeObjectFileName:
- {
- TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) );
- TPtrC ptr( aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );
- if ( KMaxFileName < ptr.Length() )
- responseCode = EMTPRespCodeInvalidDataset;
+ object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid );
+ iFramework.ObjectMgr().ModifyObjectL( *object );
+ }
+ else if ( KErrInUse == err ) // object file is being used by other program
+ {
+ responseCode = EMTPRespCodeDeviceBusy;
+ }
else
{
- TFileName newSuid( ptr );
- TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid );
- PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err );
- if ( KErrOverflow == err ) // full path name is too long
- {
- responseCode = EMTPRespCodeInvalidDataset;
- }
- else if ( KErrNone == err ) // TODO: ( KErrAlreadyExists == err )
- {
- TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( *object, newSuid ) ); //Update MPX DB
-
- PRINT1( _L( "MM MTP <> Rename MPX object file name err = %d" ), err );
- // it is ok if file is not found in DB, following S60 solution
- if ( KErrNotFound == err )
- {
- TRAP( err, iDpConfig.GetWrapperL().AddObjectL( *object ) );
- PRINT1( _L( "MM MTP <> Add MPX object file name err = %d" ), err );
- }
-
- object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid );
- iFramework.ObjectMgr().ModifyObjectL( *object );
- }
- else if ( KErrInUse == err ) // object file is being used by other program
- {
- responseCode = EMTPRespCodeDeviceBusy;
- }
- else
- {
- responseCode = EMTPRespCodeGeneralError;
- }
+ responseCode = EMTPRespCodeGeneralError;
}
}
- break;
+ }
+ break;
- case EMTPObjectPropCodeName:
- case EMTPObjectPropCodeAlbumArtist:
- {
- CMTPTypeString* stringData = CMTPTypeString::NewLC(
- aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData
+ case EMTPObjectPropCodeName:
+ case EMTPObjectPropCodeAlbumArtist:
+ {
+ CMTPTypeString* stringData = CMTPTypeString::NewLC(
+ aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData
- responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
- propertyCode,
- *stringData,
- *object );
+ responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
+ propertyCode,
+ *stringData,
+ *object );
- CleanupStack::PopAndDestroy( stringData );// - stringData
- }
- break;
+ CleanupStack::PopAndDestroy( stringData );// - stringData
+ }
+ break;
- default:
- {
- responseCode = iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
- propertyCode,
- *object,
- aPropListElement );
- }
- break;
+ default:
+ {
+ responseCode = iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
+ propertyCode,
+ *object,
+ aPropListElement );
}
+ break;
+ }
- CleanupStack::PopAndDestroy( object ); // - object
- }
+ CleanupStack::PopAndDestroy( object ); // - object
}
PRINT1( _L( "MM MTP <= CSetObjectPropList::SetObjectPropListL responseCode = 0x%x" ), responseCode );