symport/f32/sfsrv/cl_drive.cpp
changeset 1 0a7b44b10206
child 2 806186ab5e14
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symport/f32/sfsrv/cl_drive.cpp	Thu Jun 25 15:59:54 2009 +0100
@@ -0,0 +1,127 @@
+// Copyright (c) 1996-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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// f32\sfsrv\cl_drive.cpp
+// 
+//
+
+#include "cl_std.h"
+
+
+
+
+EXPORT_C TDriveUnit::TDriveUnit(TInt aDrive)
+/**
+Constructor taking a drive number.
+
+@param aDrive The drive number.
+
+@panic FSCLIENT 0 if aDrive is greater than or equal to KMaxDrives or less than 0.
+
+@see KMaxDrives
+*/
+	{
+	__ASSERT_ALWAYS((aDrive>=0 && aDrive<KMaxDrives),Panic(EDriveUnitBadDrive));
+	iDrive=aDrive;
+	}
+
+
+
+
+EXPORT_C TDriveUnit::TDriveUnit(const TDesC& aDriveText)
+/**
+Constructor taking a drive letter.
+
+@param aDriveText A descriptor containing text whose first character is
+                  the drive letter. Can be upper or lower case. Trailing text
+                  is ignored.
+                  
+@panic FSCLIENT 1 if the drive letter is invalid, i.e. does not correspond
+       to a drive number.
+       
+@see RFs::CharToDrive
+*/
+	{
+	__ASSERT_ALWAYS(RFs::CharToDrive(aDriveText[0],iDrive)==0,Panic(EDriveUnitBadDriveText));
+	}
+
+
+
+
+EXPORT_C TDriveUnit& TDriveUnit::operator=(TInt aDrive)
+/**
+Assigns the drive number to the drive unit
+
+@param aDrive The new drive number.
+
+@return A reference to this drive unit. 
+
+@panic FSCLIENT 0 if aDrive is greater than or equal to KMaxDrives.
+
+@see KMaxDrives
+*/
+	{
+	__ASSERT_ALWAYS(aDrive<KMaxDrives,Panic(EDriveUnitBadDrive));
+	iDrive=aDrive;
+	return *this;
+	}
+
+
+
+
+EXPORT_C TDriveUnit& TDriveUnit::operator=(const TDesC& aDriveText)
+/**
+Assigns a drive letter to the drive unit.
+
+The letter must be between A and Z or a panic is raised. Any trailing
+text within the descriptor is ignored.
+
+@param aDriveText Descriptor containing text whose first character is
+                  the drive letter. It can be upper or lower case.
+                  
+@return A reference to this drive unit. 
+
+@panic FSCLIENT 1 if the drive letter is invalid, i.e. does not correspond
+       to a drive number.
+       
+@see RFs::CharToDrive                  
+*/
+	{
+	__ASSERT_ALWAYS(RFs::CharToDrive(aDriveText[0],iDrive)==0,Panic(EDriveUnitBadDriveText));
+	return *this;
+	}
+
+
+
+
+EXPORT_C TDriveName TDriveUnit::Name() const
+/**
+Gets the drive unit as text.
+
+The drive letter is returned with a trailing colon.
+
+@return The drive letter and a trailing colon.
+
+@panic FSCLIENT 0 if RFs::DriveToChar() returned an error.
+*/
+	{
+	TChar driveLetter;
+	TInt r = RFs::DriveToChar(iDrive,driveLetter);
+	__ASSERT_ALWAYS(r == KErrNone, Panic(EDriveUnitBadDrive));
+	TDriveName driveName;
+	driveName.SetLength(2);
+	driveName[0]=(TText)driveLetter;
+	driveName[1]=KDriveDelimiter;
+	return driveName;
+	}
+