--- a/telephonyserverplugins/multimodetsy/hayes/FAX.CPP Thu Aug 19 11:03:36 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +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:
-//
-
-#include "NOTIFY.H"
-#include "ETELFAX.H"
-#include "FAX.H"
-#include "mSLOGGER.H"
-
-//
-// CFaxHayes - Fax functionality
-//
-
-void CFaxHayes::CloseFax(TAny* aObj)
-//
-// Utility func for cleanup stack
-//
- {
- ((CObject*)aObj)->Close();
- }
-
-CFaxHayes* CFaxHayes::NewL(CCallMobileFax* aCallFaxHayes,CPhoneGlobals* aPhoneGlobals)
-//
-// Completes successfully if fax call has already been dialled creating a CETelFaxBase
-// instance, and is not called if that is not true.
-//
- {
- CFaxHayes* fax=new(ELeave) CFaxHayes(aCallFaxHayes,aPhoneGlobals);
- TCleanupItem newFaxHayesClose(CloseFax,fax);
- CleanupStack::PushL(newFaxHayesClose);
- fax->ConstructL();
- CleanupStack::Pop();
- return fax;
- }
-
-RHandleBase* CFaxHayes::GlobalKernelObjectHandle()
- {
- return iOwner->GlobalKernelObjectHandle();
- }
-
-CFaxHayes::CFaxHayes(CCallMobileFax* aCallFaxHayes,CPhoneGlobals* aPhoneGlobals)
- : iPhoneGlobals(aPhoneGlobals), iOwner(aCallFaxHayes)
- {}
-
-void CFaxHayes::ConstructL()
-//
-// Used to be that CFaxHayes could not be constructed before a call had been initiated
-// ie the fax server was started and the call had a pointer to CETelFaxBase.
-// Now, to solve the problem of the fax progress being only available after phase C,
-// RFax can be opened before a call has begun to connect. So in the event of this happening,
-// each function of CFaxHayes must check that the fax server has been started.
-//
-//
- {
- LOGTEXT(_L8("CFaxHayes::ConstructL()"));
- iDataDirection = EUnknown;
- }
-
-CFaxHayes::~CFaxHayes()
- {
- iOwner->RemoveFax(this);
- iPhoneGlobals->iNotificationStore->RemoveClientFromLastEvents(this);
- }
-
-CTelObject::TReqMode CFaxHayes::ReqModeL(const TInt aIpc)
- {
- TReqMode reqMode = CFaxBase::ReqModeL(aIpc);
- if ((reqMode & KReqModeFlowControlObeyed) && iPhoneGlobals->iPhoneStatus.iDataPortLoaned)
- {
- LOGTEXT2(_L8("ReqModeL Leaving with KErrInUse as data port is loaned (aIpc=%d)"),aIpc);
- User::Leave(KErrInUse);
- }
- return reqMode;
- }
-
-TInt CFaxHayes::RegisterNotification(const TInt /*aIpc*/)
- {
- return KErrNone;
- }
-TInt CFaxHayes::DeregisterNotification(const TInt /*aIpc*/)
- {
- return KErrNone;
- }
-
-void CFaxHayes::Init()
- {}
-
-TInt CFaxHayes::CheckAndSetRegistrationParams(const TInt /*aIpc*/,const TDes8* /*aDes1*/,const TDes8* /*aDes2*/)
- {
- return KErrNone;
- }
-
-TInt CFaxHayes::Read(const TTsyReqHandle aTsyReqHandle, TDes8* aDes)
-//
-// Read fax data into descriptor, asynchronously. Use NotificationStore to notify client
-// when completed
-//
- {
- if (iOwner->iFaxSession==NULL)
- {
- ReqCompleted(aTsyReqHandle,KErrNotReady);
- return KErrNone;
- }
- LOGTEXT(_L8("Fax:\tCalling RxFaxData"));
- iDataDirection = EReceiveData;
- CFaxSession* session = iOwner->iFaxSession;
-
- iPhoneGlobals->iNotificationStore->RegisterNotification(EReadOrWriteFax,aTsyReqHandle,this);
- session->RxFaxData(*aDes);
- return KErrNone;
- }
-
-TInt CFaxHayes::Write(const TTsyReqHandle aTsyReqHandle, TDesC8* aDes)
-//
-// Send fax data in descriptor to fax module, asynchronously
-//
- {
- if (iOwner->iFaxSession==NULL)
- {
- ReqCompleted(aTsyReqHandle,KErrNotReady);
- return KErrNone;
- }
- LOGTEXT(_L8("Fax:\tCalling TxFaxData"));
- iDataDirection = ESendData;
- CFaxSession* session = iOwner->iFaxSession;
- iPhoneGlobals->iNotificationStore->RegisterNotification(EReadOrWriteFax,aTsyReqHandle,this);
- session->TxFaxData(*aDes);
- return KErrNone;
- }
-
-TInt CFaxHayes::WaitForEndOfPage(const TTsyReqHandle aTsyReqHandle)
-//
-// Send request for notification of end of page to fax module
-//
- {
- if (iOwner->iFaxSession==NULL)
- {
- ReqCompleted(aTsyReqHandle,KErrNotReady);
- return KErrNone;
- }
- LOGTEXT(_L8("Fax:\tCalling Wait for end of page"));
- CFaxSession* session = iOwner->iFaxSession;
- if (iDataDirection==EUnknown)
- {
- ReqCompleted(aTsyReqHandle,KErrUnknown); // client hasn't read or written data yet
- return KErrNone;
- }
- iPhoneGlobals->iNotificationStore->RegisterNotification(EEndOfFaxPage,aTsyReqHandle,this);
- LOGTEXT(_L8("Fax:\tEnd Of Page Notification lodged"));
- if (iDataDirection==EReceiveData)
- session->RxPostPage();
- else
- session->TxPostPage();
- return KErrNone;
- }
-
-TInt CFaxHayes::TerminateFaxSession(const TTsyReqHandle aTsyReqHandle)
-//
-// Cancel the entire fax session. Server completes fax notification requests that it knows
-// as notifications. TSY treats ReadOrWrite and EndOfPage as notifications although they
-// have no Cancel function, so it must remove them from its notification list here
-// explicitly
-//
- {
- if (iOwner->iFaxSession==NULL)
- {
- ReqCompleted(aTsyReqHandle,KErrNotReady);
- return KErrNone;
- }
- LOGTEXT(_L8("Fax:\tCancelling fax session"));
- CFaxSession* session= iOwner->iFaxSession;
- session->Cancel();
- iPhoneGlobals->iNotificationStore->CheckNotification(session,EFaxSessionTerminated,KErrCancel);
- ReqCompleted(aTsyReqHandle,KErrNone);
- return KErrNone;
- }