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