void QFileSystemMetaData::fillFromTEntry(const TEntry& entry) { entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; //Symbian doesn't have unix type file permissions entryFlags |= QFileSystemMetaData::ReadPermissions; if(!entry.IsReadOnly()) { entryFlags |= QFileSystemMetaData::WritePermissions; } //set the type if(entry.IsDir()) entryFlags |= (QFileSystemMetaData::DirectoryType | QFileSystemMetaData::ExecutePermissions); else entryFlags |= QFileSystemMetaData::FileType; //set the attributes entryFlags |= QFileSystemMetaData::ExistsAttribute; if(entry.IsHidden()) entryFlags |= QFileSystemMetaData::HiddenAttribute; #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API size_ = entry.FileSize(); #else size_ = (TUint)(entry.iSize); #endif modificationTime_ = entry.iModified; }
/** Save the object properties before moving */ void CMTPMoveObject::GetPreviousPropertiesL(const TDesC& aFileName) { OstTraceFunctionEntry0( CMTPMOVEOBJECT_GETPREVIOUSPROPERTIESL_ENTRY ); LEAVEIFERROR(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime), OstTraceExt1( TRACE_ERROR, CMTPMOVEOBJECT_GETPREVIOUSPROPERTIESL, "Can't get the last modification date and time for %S", aFileName)); if ( iIsFolder ) { TEntry fileEntry; User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry )); iIsHidden = fileEntry.IsHidden(); } OstTraceFunctionExit0( CMTPMOVEOBJECT_GETPREVIOUSPROPERTIESL_EXIT ); }
void FormatEntry(TDes& aBuffer, const TEntry& aEntry) { _LIT(KEntryDetails,"Entry details: "); _LIT(KReadOnly," Read-only"); _LIT(KHidden," Hidden"); _LIT(KSystem," System"); _LIT(KDirectory," Directory"); _LIT(KArchive," Archive"); _LIT(KNewLIne,"\n"); aBuffer.Append(KEntryDetails); if(aEntry.IsReadOnly()) aBuffer.Append(KReadOnly); if(aEntry.IsHidden()) aBuffer.Append(KHidden); if(aEntry.IsSystem()) aBuffer.Append(KSystem); if(aEntry.IsDir()) aBuffer.Append(KDirectory); if(aEntry.IsArchive()) aBuffer.Append(KArchive); aBuffer.Append(KNewLIne); }
/** Apply the references to the specified object @return EFalse */ TBool CMTPSetObjectPropValue::DoHandleResponsePhaseL() { TMTPResponseCode responseCode = EMTPRespCodeInvalidObjectPropFormat; TUint32 propCode = Request().Uint32(TMTPTypeRequest::ERequestParameter2); switch(propCode) { case EMTPObjectPropCodeDateModified: { TTime modifiedTime; if( iDpSingletons.MTPUtility().MTPTimeStr2TTime(iMTPTypeString->StringChars(), modifiedTime) ) { iRfs.SetModified( iObjMeta->DesC(CMTPObjectMetaData::ESuid), modifiedTime ); responseCode = EMTPRespCodeOK; } else { responseCode = EMTPRespCodeInvalidObjectPropValue; } } break; case EMTPObjectPropCodeHidden: { if ( EMTPHidden == iMTPTypeUint16.Value()) { TEntry entry; User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry)); if ( !entry.IsHidden()) { entry.iAtt &= ~KEntryAttHidden; entry.iAtt |= KEntryAttHidden; User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt)); } responseCode = EMTPRespCodeOK; } else if ( EMTPVisible == iMTPTypeUint16.Value()) { TEntry entry; User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry)); if ( entry.IsHidden()) { entry.iAtt &= ~KEntryAttHidden; User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt)); } responseCode = EMTPRespCodeOK; } else { responseCode = EMTPRespCodeInvalidObjectPropValue; } } break; case EMTPObjectPropCodeObjectFileName: { TRAPD(err, iDpSingletons.MTPUtility().RenameObjectL(iObjMeta->Uint(CMTPObjectMetaData::EHandle),iMTPTypeString->StringChars())) ; if( KErrNone == err ) { responseCode = EMTPRespCodeOK; } else if(KErrNotFound == err) { responseCode = EMTPRespCodeInvalidObjectHandle; } else if( KErrAlreadyExists == err) { responseCode = EMTPRespCodeInvalidObjectPropValue; } else { responseCode = EMTPRespCodeAccessDenied; } } break; case EMTPObjectPropCodeName: { //Might need to consider to save this name into meta-data base. //Notify all the Data Providers if the Owner of the object is DeviceDP const TDesC& name = iMTPTypeString->StringChars(); if(name != iFileEntry.iName) { iObjMeta->SetDesCL( CMTPObjectMetaData::EName, name); iFramework.ObjectMgr().ModifyObjectL(*iObjMeta); } responseCode = EMTPRespCodeOK; } break; case EMTPObjectPropCodeNonConsumable: { iObjMeta->SetUint( CMTPObjectMetaData::ENonConsumable, iMTPTypeUint8.Value()); iFramework.ObjectMgr().ModifyObjectL(*iObjMeta); responseCode = EMTPRespCodeOK; } break; case EMTPObjectPropCodeAssociationType: { if (EModeMTP != iFramework.Mode()) { responseCode = EMTPRespCodeOK; } else if( iMTPTypeUint16.Value() != EMTPAssociationTypeGenericFolder ) { responseCode = EMTPRespCodeInvalidObjectPropValue; } else { responseCode = EMTPRespCodeOK; } } break; case EMTPObjectPropCodeAssociationDesc: { if(TUint32(iMTPTypeUint32.Value()) == 0 ) { responseCode = EMTPRespCodeOK; } else responseCode = EMTPRespCodeInvalidObjectPropValue; } break; default: OstTrace1( TRACE_ERROR, CMTPSETOBJECTPROPVALUE_DOHANDLERESPONSEPHASEL, "Invalid property code %d", propCode); User::Leave( KErrNotSupported ); break; } SendResponseL(responseCode); return EFalse; }