baseport/src/cedar/generic/base/syborg/svphostfs/fs/svphostfsy.cpp
changeset 0 ffa851df0825
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/baseport/src/cedar/generic/base/syborg/svphostfs/fs/svphostfsy.cpp	Fri Jul 31 14:43:15 2009 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <f32file.h>
+#include <f32fsys.h>
+#include <f32ver.h>
+#include <e32uid.h>
+
+#include "svphostfsy.h"
+
+//////////////////////////////////////////////////////////////////////////
+// CSVPHostFileSystem	                                                //
+//////////////////////////////////////////////////////////////////////////	
+
+CSVPHostFileSystem::CSVPHostFileSystem()
+//
+// Constructor
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::CSVPHostFileSystem()"));
+	__DECLARE_NAME(_S("CSVPHostFileSystem"));
+	}
+
+CSVPHostFileSystem::~CSVPHostFileSystem()
+//
+// Destructor
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::~CSVPHostFileSystem"));
+	iDevice.Close();
+	}
+
+
+
+TInt CSVPHostFileSystem::Install()
+//
+// Install the file system.
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::Install()"));
+
+	// Open the device
+	RSVPHostFsDriver device;
+	TInt err = device.Open();
+
+	if (KErrNone != err)
+		return err;
+
+	iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KF32BuildVersionNumber);
+	TPtrC name=_L("SVPHOSTFSY");
+	
+	return(SetName(&name));
+	}
+
+CMountCB* CSVPHostFileSystem::NewMountL(/*CSessionFs* aSession*/) const
+//
+// Create a new mount control block.
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::NewMountL()"));
+	return(new(ELeave) CSVPHostMountCB);
+	}
+
+CFileCB* CSVPHostFileSystem::NewFileL(/*CSessionFs* aSession*/) const
+//
+// Create a new file.
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::NewFileL()"));
+	return(new(ELeave) CSVPHostFileCB);
+	}
+
+CDirCB* CSVPHostFileSystem::NewDirL(/*CSessionFs* aSession*/) const
+//
+// Create a new directory lister.
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::NewDirL()"));
+	return(new(ELeave) CSVPHostDirCB(/*aSession*/));
+	}
+
+CFormatCB* CSVPHostFileSystem::NewFormatL(/*CSessionFs* aSession*/) const
+//
+// Create a new media formatter.
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::NewFormatL()"));
+	return(new(ELeave) CSVPHostFormatCB(/*aSession*/));
+	}
+
+TInt CSVPHostFileSystem::DefaultPath(TDes& aPath) const
+//
+// Return the initial default path.
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::DefaultPath()"));
+	aPath=_L("\\");
+	return(KErrNone);
+	}
+
+
+CFileSystem* CSVPHostFileSystem::NewL()
+//
+//	Factory for CSVPHostFileSystem
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::NewL()"));
+	CSVPHostFileSystem* svpHostFsy=new(ELeave) CSVPHostFileSystem();
+	return svpHostFsy;
+	}
+
+
+void CSVPHostFileSystem::DriveInfo(TDriveInfo& anInfo,TInt aDriveNumber) const
+//
+// Return the drive info iDriveAtt  && iBatteryState already set
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CSVPHostFileSystem::DriveInfo()"));
+
+	/* !@! TODO: are these the best values? */
+	anInfo.iMediaAtt=KMediaAttVariableSize;
+	anInfo.iType=EMediaRam;
+#if 0
+	// !@! can't execute from remote drives
+	anInfo.iDriveAtt=KDriveAttRemote;
+#endif
+	anInfo.iDriveAtt=KDriveAttLocal|KDriveAttInternal;
+	}
+
+
+extern "C" {
+
+EXPORT_C CFileSystem* CreateFileSystem()
+//
+// Create a new file system
+//
+	{
+	DP(_L("** (SVPHOSTFSY) CreateFileSystem()"));
+
+	return(CSVPHostFileSystem::NewL());
+	}
+}
+
+