fax/faxclientandserver/faxio/FAXHEAD.CPP
branchRCL_3
changeset 65 630d2f34d719
parent 61 17af172ffa5f
child 66 07a122eea281
--- a/fax/faxclientandserver/faxio/FAXHEAD.CPP	Thu Aug 19 11:03:36 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-// Contents : for routine for saving/restoring fax header information
-// amended 26/10/98  -  replaced sizeof(TRawScanLine) with KFaxBytesPerScanLine
-// 
-//
-
-#include <e32std.h>
-#include <e32base.h>
-#include <f32file.h>
-
-#include "CFAXIO.H"		//public header
-
-_LIT(KHeaderFile, "FAXHEAD.DAT");
-const TDriveNumber KDriveNumber = EDriveC;
-
-/********************************************************************/
-
-EXPORT_C CFaxHeaderLines *CFaxHeaderLines::NewLC ()
-/** Constructs a CFaxHeaderLines object, which is used to read and write the fax 
-header line data file.
-
-As is usual in Symbian OS, the only difference between this function and NewL() 
-is that this variant pushes the object to the cleanup stack.
-
-As part of the construction process, the object opens a session with the file 
-server.
-
-@leave KErrNoMemory There is insufficient memory to perform the operation. 
-@return Pointer to the newly created object. 
-@capability None
-*/
-   {
-   CFaxHeaderLines *self = new (ELeave) CFaxHeaderLines;
-   CleanupStack::PushL (self);
-   self->ConstructL ();
-   return self;
-   }
-/********************************************************************/
-
-EXPORT_C CFaxHeaderLines *CFaxHeaderLines::NewL ()
-/** Constructs a CFaxHeaderLines object, which is used to read and write the fax 
-header line data file.
-
-As part of the construction process, the object opens a session with the file 
-server.
-
-@leave KErrNoMemory There is insufficient memory to perform the operation. 
-@return A pointer to the newly created object. 
-@capability None
-*/
-   {
-   CFaxHeaderLines *self = NewLC ();
-   CleanupStack::Pop ();
-   return self;
-   }
-/********************************************************************/
-/**
-Default constructor
-*/
-CFaxHeaderLines::CFaxHeaderLines()
-: iAdoptedHeaderFile(NULL), iUseAdpotedFileHandle(EFalse)
-{
-//Empty	
-}
-
-/**
-Overloaded constructor
-*/
-CFaxHeaderLines::CFaxHeaderLines(RFile* aHeaderFile)
-: iAdoptedHeaderFile(aHeaderFile), iUseAdpotedFileHandle(ETrue)
-{
-//Empty	
-}
-
-void CFaxHeaderLines::ConstructL ()
-   {
-   if(!iUseAdpotedFileHandle)   
-	   	{	
-	   	User::LeaveIfError (iFileSession.Connect ());
-	   	}
-   }
-/********************************************************************/
-
-CFaxHeaderLines::~CFaxHeaderLines ()
-/** Closes the open header line data file and shuts down the file server session. */
-   {
-   if(!iUseAdpotedFileHandle)
-   	{
-   	iFile.Close ();
-    iFileSession.Close ();
-   	}
-   
-   }
-/********************************************************************/
-
-EXPORT_C void CFaxHeaderLines::WriteRawFontLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine)
-/** Writes header line font bitmap scan lines to the header line data file. 
-
-It should be called to add every scan line in the font bitmap.
-
-@param alineNumber The line number of the current scan line. 
-@param aUncompressedDataLine A reference to a raw font bitmap scan line to 
-be added to the header line data file. 
-@capability None
-*/
-   {
-   iSeekpos=sizeof (TFaxHeaderInfo);
-   iSeekpos+=KFaxBytesPerScanLine*iOurFaxHeaderInfoPckg().iHeaderFontHeightInLines;
-   iSeekpos+=KFaxBytesPerScanLine*alineNumber;
-   User::LeaveIfError (File().Seek (ESeekStart, iSeekpos));
-   User::LeaveIfError (File().Write (aUncompressedDataLine, KFaxBytesPerScanLine));		
-   }
-/********************************************************************/
-
-EXPORT_C void CFaxHeaderLines::WriteRawHeaderLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine)
-/** Writes the header line template's scan lines to the header line data file. 
-It should be called to add every scan line in the template.
-
-@param alineNumber The line number of the current scan line. 
-@param aUncompressedDataLine A reference to a raw header line template scan 
-line to be added to the header line data file. 
-@capability None
-*/
-   {
-   iSeekpos=sizeof (TFaxHeaderInfo);
-   iSeekpos+=KFaxBytesPerScanLine*alineNumber;
-   User::LeaveIfError (File().Seek (ESeekStart, iSeekpos));
-   User::LeaveIfError (File().Write (aUncompressedDataLine, KFaxBytesPerScanLine));
-   }
-/********************************************************************/
-
-EXPORT_C void CFaxHeaderLines::WriteFaxHeaderInfoL (TFaxHeaderInfo & aFaxHeaderInfo)
-/** Creates and opens the fax header data file, and then writes font and character 
-offset information to it.
-
-The font and character offset information is used by the fax server to determine 
-at which position the font bitmap characters should be inserted in the header 
-line template to create the send-time header line for a page.
-
-Since this function creates and opens the file, it should be called before 
-the other write functions.
-
-@param aFaxHeaderInfo The fax header line information to be written to the 
-file. 
-@capability None
-*/
-   {
-   iOurFaxHeaderInfoPckg() = aFaxHeaderInfo;
-   iSeekpos=0;
-   if(!iUseAdpotedFileHandle)
-	   {
-	   TFileName headerFileName;
-   	   GenerateHeaderPathL(headerFileName);
-	   User::LeaveIfError (iFile.Replace (iFileSession, headerFileName, EFileWrite));
-	   }
-   User::LeaveIfError (File().Seek (ESeekStart, iSeekpos));
-   User::LeaveIfError (File().Write (iOurFaxHeaderInfoPckg, sizeof (TFaxHeaderInfo)));
-   }
-/********************************************************************/
-
-EXPORT_C void CFaxHeaderLines::ReadRawFontLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine)
-/** Reads the font bitmap's scan lines from the header line data file. 
-
-It should be called to read every scan line in the bitmap.
-
-In normal operation the function is called by the fax server prior to sending 
-a page.
-
-@param alineNumber The line number to be read. 
-@param aUncompressedDataLine On return, contains a reference to the raw scan 
-line. 
-@capability None
-*/
-   {
-   iSeekpos=sizeof (TFaxHeaderInfo);
-   iSeekpos+=KFaxBytesPerScanLine*iOurFaxHeaderInfoPckg().iHeaderFontHeightInLines;
-   iSeekpos+=KFaxBytesPerScanLine*alineNumber;
-   User::LeaveIfError (File().Seek (ESeekStart, iSeekpos));
-   User::LeaveIfError (File().Read (aUncompressedDataLine, KFaxBytesPerScanLine));
-} 
-/********************************************************************/
-
-EXPORT_C void CFaxHeaderLines::ReadRawHeaderLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine)
-/** Reads the header line template's scan lines from the header line data file. 
-It should be called to read every scan line in the template.
-
-In normal operation the function is called by the fax server prior to sending 
-a page.
-
-@param alineNumber The line number of the scan line to be read. 
-@param aUncompressedDataLine On return, contains the scan line. 
-@capability None
-*/
-   {
-   iSeekpos=sizeof (TFaxHeaderInfo);
-   iSeekpos+=KFaxBytesPerScanLine*alineNumber;
-   User::LeaveIfError (File().Seek (ESeekStart, iSeekpos));
-   User::LeaveIfError (File().Read (aUncompressedDataLine, KFaxBytesPerScanLine));
-   }
-/********************************************************************/
-
-EXPORT_C void CFaxHeaderLines::ReadFaxHeaderInfoL (TFaxHeaderInfo & aFaxHeaderInfo)
-/** Opens the fax header data file, and then reads font and character offset information 
-from it.
-
-The font and character offset information is used by the fax server to determine 
-at which position the font bitmap characters should be inserted in the header 
-line template to create the send time header line for a page.
-
-Since this function opens the file, it should be called before the other read 
-functions.
-
-@param aFaxHeaderInfo On return, contains header line information from the 
-header data file. 
-@capability None
-*/
-   {
-   iSeekpos=0;
-   if(!iUseAdpotedFileHandle)
-	   {
-	   TFileName headerFileName;
-   	   GenerateHeaderPathL(headerFileName);
-   	   User::LeaveIfError (iFile.Open (iFileSession, headerFileName, EFileRead));
-	   }
-   User::LeaveIfError (File().Seek (ESeekStart, iSeekpos));
-   User::LeaveIfError (File().Read (iOurFaxHeaderInfoPckg, sizeof (TFaxHeaderInfo)));
-   aFaxHeaderInfo = iOurFaxHeaderInfoPckg();
-   }
-   
-/**
-Constructs a CFaxHeaderLines object, which is used to read and write the fax 
-header line data file.
-
-This overload allows an already open file handle to be passed in which is used to access the file.  
-This function is not intended for public use.
-
-@internalTechnology
-@param aHeaderFile Pointer to file handle.
-@return Pointer to the newly created object.
-@capability None
-@released
-*/
-EXPORT_C CFaxHeaderLines* CFaxHeaderLines::NewLC (RFile* aHeaderFile)
-	{
-	CFaxHeaderLines *self = new (ELeave) CFaxHeaderLines(aHeaderFile);
-    CleanupStack::PushL (self);
-    self->ConstructL ();
-    return self;
-	}
-		
-/**
-Generates the header path to place the faxhead.dat file.  
-If platform security is enforced this path will be the private path of the client process.  As this directory structure may not exist 
-This function will generate the directory structure if it does not exist.
-If platform security is not enforced this path will be c:\system\...
-
-
-@internalTechnology
-@param aHeaderPath contains the generated private path
-@capability None
-@released
-*/
-EXPORT_C void CFaxHeaderLines::GeneratePathForHeaderFileL(TDes& aHeaderPath)
-	{
-	GenerateHeaderPathL(aHeaderPath);
-	}
-
-/**
-Return reference to open file handle.
-*/
-inline RFile& CFaxHeaderLines::File()
-	{
-	if(iUseAdpotedFileHandle)
-		{
-		return *iAdoptedHeaderFile;
-		}
-	else
-		{
-		return iFile;
-		}
-	}
-
-/**
-Generates the header path to place the faxhead.dat file.
-*/
-void CFaxHeaderLines::GenerateHeaderPathL(TDes& aHeaderPath)
-	{	
-	TDriveUnit driveUnit(KDriveNumber);
-	TDriveName drive=driveUnit.Name();
-	aHeaderPath.Insert(0, drive);
-	TPath headerPath;
-	//append private path	
-	RFs rfs;
-	User::LeaveIfError(rfs.Connect());
-	CleanupClosePushL(rfs);	
-	rfs.PrivatePath(headerPath);		
-	//generate directory structure.
-	TInt ret = rfs.CreatePrivatePath(driveUnit);
-	if(ret != KErrNone && ret!=KErrAlreadyExists)
-		{
-		User::Leave(ret);
-		}
-	CleanupStack::PopAndDestroy();	//rfs
-
-	aHeaderPath.Append(headerPath);
-	aHeaderPath.Append(KHeaderFile);
-	}
-
-/********************************************************************/
-