userlibandfileserver/fileserver/sfile/sf_sys.cpp
branchRCL_3
changeset 44 3e88ff8f41d5
parent 43 c1f20ce4abcf
equal deleted inserted replaced
43:c1f20ce4abcf 44:3e88ff8f41d5
    19 #include <e32uid.h>
    19 #include <e32uid.h>
    20 #include "sf_file_cache.h"
    20 #include "sf_file_cache.h"
    21 #include <kernel/localise.h>
    21 #include <kernel/localise.h>
    22 #include <f32file.h>
    22 #include <f32file.h>
    23 
    23 
    24 #ifdef OST_TRACE_COMPILER_IN_USE
       
    25 #include "sf_sysTraces.h"
       
    26 #endif
       
    27 
       
    28 typedef CFileSystem*(*TFileSystemNew)();
    24 typedef CFileSystem*(*TFileSystemNew)();
    29 extern CProxyDriveFactory* GetExtension(const TDesC& aName);
    25 extern CProxyDriveFactory* GetExtension(const TDesC& aName);
    30 
    26 
    31 #ifndef __WINS__
    27 #ifndef __WINS__
    32 extern TBool gInitCacheCheckDrivesAndAddNotifications;
    28 extern TBool gInitCacheCheckDrivesAndAddNotifications;
    41 /**
    37 /**
    42 Default constructor.
    38 Default constructor.
    43 */
    39 */
    44 EXPORT_C CFileSystem::CFileSystem()
    40 EXPORT_C CFileSystem::CFileSystem()
    45 	{
    41 	{
    46 	OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMCONSTRUCTOR, "");
    42 	TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemConstructor, EF32TraceUidFileSys);
    47 	OstTrace0(TRACE_FILESYSTEM,FILESYS_ECFILESYSTEMCONSTRUCTORRETURN, "");
    43 	TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemConstructorReturn, EF32TraceUidFileSys);
    48 	}
    44 	}
    49 
    45 
    50 /**
    46 /**
    51 Destructor.
    47 Destructor.
    52 */
    48 */
    53 EXPORT_C CFileSystem::~CFileSystem()
    49 EXPORT_C CFileSystem::~CFileSystem()
    54 	{
    50 	{
    55 	OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDESTRUCTOR, "");
    51 	TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDestructor, EF32TraceUidFileSys);
    56 	OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDESTRUCTORRETURN, "");
    52 	TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDestructorReturn, EF32TraceUidFileSys);
    57 	}
    53 	}
    58 
    54 
    59 /**
    55 /**
    60 Uninstalls the file system.
    56 Uninstalls the file system.
    61 
    57 
   268 //
   264 //
   269 // Install a file system.
   265 // Install a file system.
   270 //
   266 //
   271 	{
   267 	{
   272 
   268 
   273 	OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALL, "this %x", aSys);
   269 	TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemInstall, EF32TraceUidFileSys, aSys);
   274 
       
   275 	TInt r=aSys->Install();
   270 	TInt r=aSys->Install();
   276 
   271 	TRACERETMULT2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemInstallRet, EF32TraceUidFileSys, r, aSys->Name());
   277 	OstTraceData(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALLYS_EFILESYSTEMNAME, "FileSystemName %S", aSys->Name().Ptr(), aSys->Name().Length()<<1);
       
   278 	OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALLRET, "r %d", r);
       
   279 
   272 
   280 	__PRINT1TEMP(_L("InstallFileSystem %S"),aSys->Name());
   273 	__PRINT1TEMP(_L("InstallFileSystem %S"),aSys->Name());
   281 	if (r==KErrNone)
   274 	if (r==KErrNone)
   282 		{TRAP(r,FileSystems->AddL(aSys,ETrue))}
   275 		{TRAP(r,FileSystems->AddL(aSys,ETrue))}
   283 	if (r!=KErrNone)
   276 	if (r!=KErrNone)
   284 		{
   277 		{
   285 		OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE1, "this %x", aSys);
   278 		TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemove, EF32TraceUidFileSys, aSys);
   286 #ifdef OST_TRACE_COMPILER_IN_USE
   279 #ifdef SYMBIAN_FTRACE_ENABLE
   287 		TInt r = 
   280 		TInt r = 
   288 #endif
   281 #endif
   289 			aSys->Remove();
   282 			aSys->Remove();
   290 		
   283 		
   291 		OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE1RET, "r %d", r);
   284 		TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemoveRet, EF32TraceUidFileSys, r);
   292 		}
   285 		}
   293 	if (r==KErrNone)
   286 	if (r==KErrNone)
   294 		aSys->SetLibrary(aLib);
   287 		aSys->SetLibrary(aLib);
   295 	else
   288 	else
   296 		aSys->Close();
   289 		aSys->Close();
   325 
   318 
   326 	TFileSystemNew f=(TFileSystemNew)lib.Lookup(1);
   319 	TFileSystemNew f=(TFileSystemNew)lib.Lookup(1);
   327 	if (!f)
   320 	if (!f)
   328 		return KErrCorrupt;
   321 		return KErrCorrupt;
   329 	
   322 	
   330 	OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEW, "handle %x", lib.Handle());
   323 	TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNew, EF32TraceUidFileSys, lib.Handle());
   331 	CFileSystem* pS=(*f)();
   324 	CFileSystem* pS=(*f)();
   332 	OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWRET, "fileSystem %x", pS);
   325 	TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewRet, EF32TraceUidFileSys, pS);
   333 	if (!pS)
   326 	if (!pS)
   334 		return KErrNoMemory;
   327 		return KErrNoMemory;
   335 	TInt r=InstallFileSystem(pS,lib);
   328 	TInt r=InstallFileSystem(pS,lib);
   336 	if (r==KErrNone && !LocalFileSystemInitialized)
   329 	if (r==KErrNone && !LocalFileSystemInitialized)
   337 		{
   330 		{
   379 		
   372 		
   380         if(name.CompareF(pFs->Name()) == 0)
   373         if(name.CompareF(pFs->Name()) == 0)
   381 			return KErrInUse;
   374 			return KErrInUse;
   382 		}
   375 		}
   383 	
   376 	
   384     OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE2, "this %x", pF);
   377     TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemove, EF32TraceUidFileSys, pF);
   385 
       
   386 	TInt r=pF->Remove();
   378 	TInt r=pF->Remove();
   387 
   379 	TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemoveRet, EF32TraceUidFileSys, r);
   388 	OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE2RET, "r %d", r);
       
   389 
       
   390 	if (r!=KErrNone)
   380 	if (r!=KErrNone)
   391 		return(r);
   381 		return(r);
   392 	
   382 	
   393     RLibrary lib=pF->Library();
   383     RLibrary lib=pF->Library();
   394 	pF->Close();
   384 	pF->Close();