mmlibs/mmfw/src/Plugin/StdSourceAndSink/fileaccess.cpp
changeset 31 ae0addfe117e
parent 0 40261b775718
child 32 ae690a8c4a18
equal deleted inserted replaced
30:9707f1c07383 31:ae0addfe117e
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 //
    14 //
    15 
    15 
    16 #include <f32file.h>
    16 #include <f32file.h>
       
    17 #include <f32file64.h>
    17 #include <e32std.h>
    18 #include <e32std.h>
    18 #include <caf/attribute.h>
    19 #include <caf/attribute.h>
    19 #include <caf/bitset.h>
    20 #include <caf/bitset.h>
    20 #include <caf/content.h>
    21 #include <caf/content.h>
    21 #include <caf/data.h>
    22 #include <caf/data.h>
   145 	}
   146 	}
   146 
   147 
   147 CContentFile::~CContentFile()
   148 CContentFile::~CContentFile()
   148 	{
   149 	{
   149 	delete iData;
   150 	delete iData;
   150 
   151   
   151 	if (iLegacyFileOpen)
   152   iLegacyFile.Close();
   152 		iLegacyFile.Close();
   153 	iFile64.Close(); //For defect EASA-84ZC6J 
       
   154    	
   153 	delete iFilePath;
   155 	delete iFilePath;
   154 	}
   156 	}
   155 	
   157 	
   156 
   158 
   157 CContentFile* CContentFile::NewL(RFs& aSession, const TDesC& aFilePath, const TDesC& aUniqueId, TUint aMode, TBool aEnableUI) 
   159 CContentFile* CContentFile::NewL(RFs& aSession, const TDesC& aFilePath, const TDesC& aUniqueId, TUint aMode, TBool aEnableUI) 
   267  * @return Reference to RFile handle to current file
   269  * @return Reference to RFile handle to current file
   268  */
   270  */
   269 RFile& CContentFile::FileL() 
   271 RFile& CContentFile::FileL() 
   270 	{
   272 	{
   271 	if (!iLegacyFileOpen)
   273 	if (!iLegacyFileOpen)
   272 		{
   274 		{//For defect EASA-84ZC6J 
   273   		User::LeaveIfError(iLegacyFile.Open(*iSession, *iFilePath, EFileRead | EFileStream | EFileShareReadersOrWriters));
   275   		TInt error = iLegacyFile.Open(*iSession, *iFilePath, EFileRead | EFileStream | EFileShareReadersOrWriters);
   274 		iLegacyFileOpen = ETrue;
   276 		  if ( error == KErrTooBig )
   275 		}
   277 	        {
   276 	return iLegacyFile;
   278 	         User::LeaveIfError(iFile64.Open(*iSession, *iFilePath, EFileRead | EFileStream | EFileShareReadersOrWriters));
   277 	}
   279 	         iLegacyFileOpen = ETrue;
       
   280 	         return iFile64;
       
   281 	        }
       
   282 	    
       
   283 	    else if (error == KErrNone)
       
   284 	       {
       
   285 	       iLegacyFileOpen = ETrue;
       
   286 	       return iLegacyFile;
       
   287 	        }
       
   288 	    
       
   289 	    else 
       
   290 	        {
       
   291 	        User::Leave(error);
       
   292 	        }
       
   293 		}
       
   294 	if(iLegacyFile.SubSessionHandle())
       
   295 	    {
       
   296 	    return iLegacyFile;
       
   297 	    }
       
   298 	else
       
   299 	    {
       
   300 	    return iFile64;
       
   301 	    }
       
   302 }
   278 	
   303 	
   279 TInt CContentFile::Data(CData*& aData)
   304 TInt CContentFile::Data(CData*& aData)
   280 	{
   305 	{
   281 	if (iData==NULL)
   306 	if (iData==NULL)
   282 		{
   307 		{