fax/faxclientandserver/FAXSVR/FAXSERV.H
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fax/faxclientandserver/FAXSVR/FAXSERV.H	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,213 @@
+// 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:
+//
+
+/**
+ @file 
+*/
+
+#if !defined(__FaxServ_H__)
+#define __FaxServ_H__
+
+#include <f32file.h>
+#include <s32file.h>
+#include <s32mem.h>
+
+#if !defined(__FAXSTORE_H__)
+#include <faxstore.h>
+#endif
+	  
+#if !defined(__FAXHUFF_H__)
+#include <faxhuff.h>
+#endif
+
+#if !defined(__ETEL_H__)
+#include "ETEL.H"
+#endif
+
+#include <faxstd.h>
+/**
+@internalTechnology
+*/
+const TUint KUidDynamicFaxServer = 0x10004C88;		
+const TUint KUidUnicodeDynamicFaxServer = 0x10004C89;
+/**
+@internalComponent
+*/
+TInt FaxServerThread (TAny * session);  // function declaration needed here
+/**
+@internalComponent
+*/
+#define KMaxDialLength		50		
+#define KConfigStringLength 32		
+
+
+//**********************************
+// TFaxServerSessionSettings
+//**********************************
+/**
+@internalTechnology
+*/	   
+struct TFaxServerSessionSettings
+	{
+	TFaxServerSessionSettings& operator=(const TFaxServerSessionSettings& aSettings);
+	TBuf8<KMaxDialLength> iPhoneNumber;
+	TBool iLogging;
+	TBuf8<KConfigStringLength> iFaxInitString;
+	TFaxMode iMode;
+	TFaxClass iFaxClass;
+	TFileName iPortDriverName;
+	TName iCommPortName;
+	TBuf<RCall::KFaxIdUserNameMaxSize> iFaxId;
+	TInt iMaxSpeed;
+	TInt iMinSpeed;
+	TInt iPreferredECM;
+	TInt iFaxOnDemandDelay;
+// Tx Settings
+	TFaxResolution iTxResolution;
+	TFaxCompression iTxCompression;
+	TInt iTxPages;
+// Rx Settings
+	TFaxResolution iRxResolution;
+	TFaxCompression iRxCompression;
+	};
+
+class MFaxCompletionBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	virtual void RxConnectComplete(TInt aError)=0;		
+	virtual void RxFaxDataComplete(TInt aError)=0;		
+	virtual void RxPostPageComplete(TInt aError)=0;
+	virtual void TxConnectComplete(TInt aError)=0;
+    virtual void TxFaxDataComplete(TInt aError)=0;
+	virtual void TxPostPageComplete(TInt aError)=0;		
+
+	virtual void GetCadenceAndTimeOfLastRing(TTimeIntervalMicroSeconds& aCadence,TTime& aTime)=0;
+	};	
+
+
+class CFaxModemDriver;
+class CFaxSharedFileHandles;
+class CFaxSession : public CBase
+/**
+@internalTechnology
+*/
+   {
+ public:
+     virtual TInt FxOpen(TFaxServerSessionSettings&,RFax::TProgress* aProgress);
+	 virtual TInt FxClose();
+	 virtual void RxConnect();
+	 virtual void RxFaxData(TDes8 & aData);
+	 virtual void RxPostPage();
+	 virtual void TxConnect();
+	 virtual void TxFaxData(const TDesC8 & aData);
+	 virtual void TxPostPage();
+	 virtual void Cancel();
+	 virtual void SetCallBack(MFaxCompletionBase* aBase);
+	 virtual void SetFaxHeaderFile(CFaxSharedFileHandles* iSharedFileHandles);
+
+     static CFaxSession * NewL ();
+     static CFaxSession * NewLC ();
+     ~CFaxSession ();
+     CFaxSession(void);
+
+	 MFaxCompletionBase* ReturnCompletionBase(void);		// added by JerryC
+     void StartModemL ();
+
+
+  enum TFaxThreadRequest
+     {
+     ERxConnect,
+     ERxFaxData,
+     ERxPostPage,
+     ETxConnect,
+     ETxFaxData,
+     ETxPostPage,
+     EFxClose
+     };
+
+	/********************************************************************/
+	// CFaxRequest active object
+	/********************************************************************/
+
+  class CFaxRequest : public CActive
+  /**
+  @internalComponent
+  */
+     {
+   public:
+     CFaxRequest();
+     ~CFaxRequest ();
+     static CFaxRequest * NewL (CFaxSession *);
+     static CFaxRequest * NewLC (CFaxSession *);
+     void ConstructL (CFaxSession *);
+     void DoCancel();
+     void FaxRequest (TFaxThreadRequest);
+     void RunL ();
+  
+   public:
+     RThread iChildThread;
+     TRequestStatus iThreadStat;
+     TInt iCancel;
+
+   private:
+     CFaxSession  * iFaxSession;
+     TFaxThreadRequest iFaxThreadRequest;
+     };
+
+ public:
+   RThread iParentThread;
+   CFaxModemDriver * iModemDriver;
+   TDes8 * iRxData;
+   const TDesC8 * iTxData;
+   CFaxRequest * iFaxRequest;
+   TFaxServerSessionSettings iFaxServerSessionSettings;
+   RFax::TProgress* iProgress;
+   CFaxSharedFileHandles* iSharedFileHandles;
+ private:
+   TRequestStatus iChildDeath;
+   MFaxCompletionBase* iCompletionBase;					// added by JerryC
+   TBool iAmDestructing;
+   };
+
+
+/********************************************************************/
+
+/* 
+class MFaxSession 
+	{
+public:
+     virtual TInt FxOpen(TFaxServerSessionSettings&,RFax::TProgress* aProgress)=0;
+	 virtual TInt FxClose()=0;
+
+	 virtual void RxConnect()=0;
+	 virtual void RxFaxData(TDes8 & aData)=0;
+	 virtual void RxPostPage()=0;
+
+	 virtual void TxConnect()=0;
+	 virtual void TxFaxData(const TDesC8 & aData)=0;
+	 virtual void TxPostPage()=0;
+
+	 virtual void Cancel()=0;
+
+	 virtual void SetCallBack(MFaxCompletionBase* aCompletionBase)=0;
+	};
+
+  */
+
+
+#endif