--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fax/faxclientandserver/FAXSVR/FAXSTUB.H Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,190 @@
+// 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
+ @internalComponent */
+#ifndef __FAXSTUB_H
+#define __FAXSTUB_H
+
+#if !defined(__E32STD_H__)
+#include <e32std.h>
+#endif
+
+#include "etel.h"
+#include "FAXLOG.H"
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#include "FAXSTD.H"
+/**
+@internalComponent
+*/
+#define KMaxDialLength 50
+#define KConfigStringLength 32
+
+//**********************************
+// TFaxServerSessionSettings
+//**********************************
+/**
+@internalComponent
+*/
+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;
+ };
+
+
+#ifdef __MARM__
+/**
+@internalComponent
+*/
+const TInt KEtelFaxTimerGranularity = 31000;
+#else
+const TInt KEtelFaxTimerGranularity = 80000;
+#endif
+/**
+@internalComponent
+*/
+#define KDefaultLastUpdateTime 5
+#define KDefaultAnswerBack _L("01814590381")
+#define KDefaultPhase ENotYetStarted
+#define KDefaultResolution EFaxNormal;
+#define KDefaultCompression EModifiedHuffman;
+#define KDefaultPageNumber 1
+#define KDefaultLinesNumber 3
+#define KDefaultSpeed 9600
+
+#define ASYNC_TIMEOUT 10000
+#define ASYNC_LONGTIMEOUT 500000
+
+class TTsyTimer
+/**
+@internalTechnology
+*/
+ {
+public:
+ TTsyTimer();
+ TBool iPending;
+ TDeltaTimerEntry iEntry;
+ };
+
+class CFaxTimer;
+class CFaxSession : public CBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ static CFaxSession * NewL ();
+ static CFaxSession * NewLC ();
+
+ CFaxSession();
+ void ConstructL();
+ ~CFaxSession();
+
+ virtual TInt FxOpen(TFaxServerSessionSettings& aFaxSettings,RFax::TProgress* aProgress);
+ virtual TInt FxClose();
+
+// Rx Fax
+ virtual void RxConnect();
+ virtual void RxFaxData(TDes8& aData);
+ virtual void RxPostPage();
+// Tx Fax
+ virtual void TxConnect();
+ virtual void TxFaxData(const TDesC8& aData);
+ virtual void TxPostPage();
+ virtual void Cancel();
+ virtual void SetCallBack(MFaxCompletionBase* aBase);
+
+ static TInt RxConnectHandler(TAny* aPtr);
+ static TInt RxFaxDataHandler(TAny* aPtr);
+ static TInt RxPostPageHandler(TAny* aPtr);
+ static TInt TxConnectHandler(TAny* aPtr);
+ static TInt TxFaxDataHandler(TAny* aPtr);
+ static TInt TxPostPageHandler(TAny* aPtr);
+ static TInt ProgressChanger(TAny* aPtr);
+public:
+ RFax::TProgress* iTransferProgress;
+
+ // Timer
+ CFaxTimer* iFaxTimer;
+ TTsyTimer iRxConnect;
+ TTsyTimer iRxFaxData;
+ TTsyTimer iRxPostPage;
+ TTsyTimer iTxConnect;
+ TTsyTimer iTxFaxData;
+ TTsyTimer iTxPostPage;
+ TTsyTimer iProgressChanger;
+ MFaxCompletionBase* iCompletion;
+ };
+
+class CFaxTimer: public CBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ static CFaxTimer* NewL();
+ CFaxTimer();
+ void ConstructL();
+ ~CFaxTimer();
+
+ void QueueTimer(TTsyTimer& aTsyTimer,
+ TTimeIntervalMicroSeconds32 aTimeInMicroSeconds,
+ TInt (*aFunction)(TAny *aPtr), TAny* aPtr);
+ TBool RemoveTimer(TTsyTimer& aHandle);
+ void ResetPending(TTsyTimer& aHandle);
+private:
+ CDeltaTimer* iTimer;
+ };
+
+#endif //__FAXSTUB_H