telephonyserver/etelserverandcore/DSTD/ACQUIRE.H
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserver/etelserverandcore/DSTD/ACQUIRE.H	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,358 @@
+// 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
+ @internalAll 
+*/
+
+#ifndef __DSTD_ACQUIRE_H
+#define __DSTD_ACQUIRE_H
+
+#include <e32base.h>
+#include "ET_PHONE.H"
+
+/**
+@internalComponent
+*/
+enum TTsyPanic
+	{
+	KTsyPanicDataCorrupted,
+	KTsyPanicNotRecognisedCancelHandle,
+	KTsyPanicUnexpectedReturnValue
+	};
+/**
+@internalComponent
+*/
+void TsyPanic(TTsyPanic aPanic);
+
+class CPhoneFactoryDummyBase;
+class TTsyTimer
+/**
+@internalComponent
+*/
+	{
+public:
+	TTsyTimer();
+	TBool iPending;
+	TDeltaTimerEntry iEntry;
+	TTsyReqHandle iTsyReqHandle;
+	};
+
+//
+// CAcquireEntry
+//
+class CAcquireOwnerList;
+class CAcquireEntry : public CBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	static CAcquireEntry* NewL(const TTsyReqHandle aTsyReqHandle);
+	CAcquireEntry(const TTsyReqHandle aTsyReqHandle);
+	~CAcquireEntry();
+	void Deque();
+public:
+	TTsyReqHandle iTsyReqHandle;
+private:
+	TDblQueLink iLink;
+	friend class CAcquireOwnerList;
+	};
+
+//
+// CAcquireOwnerList
+//
+class CAcquireOwnerList : public CBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	static CAcquireOwnerList* NewL();
+	CAcquireOwnerList();
+	~CAcquireOwnerList();
+	void ConstructL();
+	CAcquireEntry* FindByTsyReqHandle(const TTsyReqHandle aTsyReqHandle);
+	void Remove(CAcquireEntry* aEntry);
+	TDblQue<CAcquireEntry> iAcquireList;
+	};
+
+//
+// CFaxDummyBase
+//
+class CFaxDummyBase : public CFaxBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	CFaxDummyBase(CPhoneFactoryDummyBase* aFac);
+	~CFaxDummyBase();
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	virtual CTelObject::TReqMode ReqModeL(const TInt aIpc);
+	virtual TInt Read(const TTsyReqHandle aTsyReqHandle,TDes8* aDes);
+	virtual TInt Write(const TTsyReqHandle aTsyReqHandle,TDesC8* aDes);
+	virtual TInt WaitForEndOfPage(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt TerminateFaxSession(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetProgress(const TTsyReqHandle aTsyReqHandle,RFax::TProgress* aProgress);
+	virtual TInt ProgressNotification(const TTsyReqHandle aTsyReqHandle, RFax::TProgress* aProgress);
+	virtual TInt ProgressNotificationCancel(const TTsyReqHandle aTsyReqHandle);
+public:
+	static TInt WaitForEndOfPageHandler(TAny* aPtr);
+	static TInt ReadHandler(TAny* aPtr);
+	static TInt WriteHandler(TAny* aPtr);
+	static TInt ProgressNotificationHandler(TAny* aPtr);
+private:
+	static CFaxDummyBase* This(TAny* aPtr);
+	CPhoneFactoryDummyBase* iFac;
+	TTsyTimer iRead;
+	TTsyTimer iWrite;
+	TTsyTimer iWaitForEndOfPage;
+	TTsyTimer iProgressNotification;
+
+	TDes8* iReadParams;
+	RFax::TProgress* iProgressNotificationParams;
+	};
+
+//
+// CCallDummyBase
+//
+class CCallDummyBase : public CCallBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	CCallDummyBase(CPhoneFactoryDummyBase* aFac);
+	void ConstructL();
+	~CCallDummyBase();
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	virtual TInt TransferOwnership(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt AcquireOwnership(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt AcquireOwnershipCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt RelinquishOwnership();
+	virtual TInt CancelSubSession();
+//	virtual CTelObject::TReqMode ReqModeL(TInt aIpc);
+// Core
+	static TInt NotifyCapsChangeHandler(TAny* aPtr);
+	static TInt NotifyDurationChangeHandler(TAny* aPtr);
+	static TInt NotifyHookChangeHandler(TAny* aPtr);
+	static TInt NotifyStatusChangeHandler(TAny* aPtr);
+	static TInt LoanDataPortHandler(TAny* aPtr);
+	static TInt DialHandler(TAny* aPtr);
+	static TInt ConnectHandler(TAny* aPtr);
+	static TInt AnswerHandler(TAny* aPtr);
+	static TInt HangUpHandler(TAny* aPtr);
+
+	virtual TInt GetInfo(const TTsyReqHandle aTsyReqHandle, RCall::TCallInfo* aCallInfo);
+	virtual TInt NotifyCapsChange(const TTsyReqHandle aTsyReqHandle, RCall::TCaps* aCaps);
+	virtual TInt NotifyCapsChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt NotifyDurationChange(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime);
+	virtual TInt NotifyDurationChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt NotifyHookChange(const TTsyReqHandle aTsyReqHandle, RCall::THookStatus* aHookStatus);
+	virtual TInt NotifyHookChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt NotifyStatusChange(const TTsyReqHandle aTsyReqHandle,RCall::TStatus* aStatus);
+	virtual TInt NotifyStatusChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt LoanDataPort(const TTsyReqHandle aTsyReqHandle,RCall::TCommPort*);
+	virtual TInt LoanDataPortCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt RecoverDataPort(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt RecoverDataPortAndRelinquishOwnership();
+	virtual TInt GetStatus(const TTsyReqHandle aTsyReqHandle,RCall::TStatus*);
+	virtual TInt GetCaps(const TTsyReqHandle aTsyReqHandle,RCall::TCaps* aCaps);
+	virtual TInt Dial(const TTsyReqHandle aTsyReqHandle,const TDesC8* aCallParams,TDesC* aTelNumber);
+	virtual TInt Connect(const TTsyReqHandle aTsyReqHandle,const TDesC8* aCallParams);
+	virtual TInt AnswerIncomingCall(const TTsyReqHandle aTsyReqHandle,const TDesC8* aCallParams);
+	virtual TInt HangUp(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetBearerServiceInfo(const TTsyReqHandle aTsyReqHandle,RCall::TBearerService*);
+	virtual TInt DialCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt ConnectCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt AnswerIncomingCallCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt HangUpCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetCallParams(const TTsyReqHandle aTsyReqHandle, TDes8* aParams);
+	virtual TInt GetCallDuration(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime);
+	virtual TInt GetFaxSettings(const TTsyReqHandle aTsyReqHandle,RCall::TFaxSessionSettings* aSettings);
+	virtual TInt SetFaxSettings(const TTsyReqHandle aTsyReqHandle,const RCall::TFaxSessionSettings* aSettings);
+	virtual TInt SetFaxSharedHeaderFile(const TTsyReqHandle aTsyReqHandle, CFaxSharedFileHandles* aFaxSharedFileHandles);
+	CPhoneFactoryDummyBase* FacPtr() const;
+private:
+	static CCallDummyBase* This(TAny* aPtr);
+	TInt ProcessingOwnership();
+	CPhoneFactoryDummyBase* iFac;
+	CAcquireOwnerList* iList;
+	TTsyTimer iNotifyCapsChange;
+	TTsyTimer iNotifyDurationChange;
+	TTsyTimer iNotifyHookChange;
+	TTsyTimer iNotifyStatusChange;
+	TTsyTimer iDial;
+	TTsyTimer iConnect;
+	TTsyTimer iAnswer;
+	TTsyTimer iHangUp;
+	TTsyTimer iLoanDataPortTimer;
+	RCall::THookStatus* iNotifyHookChangeParams;
+	RCall::TStatus* iNotifyStatusChangeParams;
+	};
+
+//
+// CLineDummyBase
+//
+class CLineDummyBase : public CLineBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	CLineDummyBase(CPhoneFactoryDummyBase* aFac);
+	void ConstructL();
+	~CLineDummyBase();
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	virtual TInt CancelSubSession();
+	virtual TReqMode ReqModeL(const TInt aIpc);
+	virtual TInt NotifyStatusChange(const TTsyReqHandle aTsyReqHandle,RCall::TStatus* aStatus);
+	virtual TInt NotifyStatusChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetHookStatus(const TTsyReqHandle aTsyReqHandle,RCall::THookStatus* aHookStatus);
+
+	virtual TInt GetInfo(const TTsyReqHandle aTsyReqHandle, RLine::TLineInfo* aLineInfo);
+	virtual TInt NotifyCapsChange(const TTsyReqHandle aTsyReqHandle, RLine::TCaps* aCaps);
+	virtual TInt NotifyCapsChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt NotifyIncomingCall(const TTsyReqHandle aTsyReqHandle, TName* aName);
+	virtual TInt NotifyIncomingCallCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt NotifyCallAdded(const TTsyReqHandle aTsyReqHandle,TName* aName);
+	virtual TInt NotifyCallAddedCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetCaps(const TTsyReqHandle aTsyReqHandle,RLine::TCaps* aCaps);
+	virtual TInt GetStatus(const TTsyReqHandle aTsyReqHandle,RCall::TStatus*);
+	virtual TInt NotifyHookChange(const TTsyReqHandle aTsyReqHandle, RCall::THookStatus* aHookStatus);
+	virtual TInt NotifyHookChangeCancel(const TTsyReqHandle aTsyReqHandle);
+
+	static TInt NotifyCapsChangeHandler(TAny* aPtr);
+	static TInt NotifyStatusChangeHandler(TAny* aPtr);
+	static TInt NotifyIncomingCallHandler(TAny* aPtr);
+	static TInt NotifyHookChangeHandler(TAny* aPtr);
+	static TInt NotifyCallAddedHandler(TAny* aPtr);
+	CPhoneFactoryDummyBase* FacPtr() const;
+private:
+	static CLineDummyBase* This(TAny* aPtr);
+	CPhoneFactoryDummyBase* iFac;
+	TTsyTimer iNotifyCapsChange;
+	TTsyTimer iNotifyIncomingCall;
+	TTsyTimer iNotifyHookChange;
+	TTsyTimer iNotifyStatusChange;
+	TTsyTimer iNotifyCallAdded;
+	RCall::THookStatus* iHookStatusParams;
+	RCall::TStatus* iStatusParams;
+	
+protected:
+	TInt iNameIndex;
+	};
+
+//
+// CPhoneDummyBase
+//
+class CPhoneDummyBase : public CPhoneBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	CPhoneDummyBase(CPhoneFactoryDummyBase* aFac);
+	void ConstructL();
+	~CPhoneDummyBase();
+
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	virtual TInt CancelSubSession();
+//	virtual TReqMode ReqModeL(const TInt aIpc);
+	virtual TInt ControlledInitialisation(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt ControlledInitialisationCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt NotifyModemDetected(const TTsyReqHandle aTsyReqHandle, RPhone::TModemDetection* aDetection);
+	virtual TInt NotifyModemDetectedCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetInfo(const TTsyReqHandle aTsyReqHandle, RPhone::TPhoneInfo* aPhoneInfo);
+	virtual TInt NotifyCapsChange(const TTsyReqHandle aTsyReqHandle, RPhone::TCaps* aCaps);
+	virtual TInt NotifyCapsChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	virtual TInt GetStatus(const TTsyReqHandle aTsyReqHandle,RPhone::TStatus*);
+	virtual TInt GetCaps(const TTsyReqHandle aTsyReqHandle,RPhone::TCaps*);
+public:
+
+	static TInt HookChangeHandler(TAny* aPtr);
+	static TInt NotifyPhoneDetectedHandler(TAny* aPtr);
+	static TInt NotifyCapsChangeHandler(TAny* aPtr);
+	CPhoneFactoryDummyBase* FacPtr() const;
+
+private:
+	static CPhoneDummyBase* This(TAny* aPtr);
+	TTsyTimer iNotifyPhoneDetected;
+	TTsyTimer iNotifyCapsChange;
+	RPhone::TModemDetection* iDetectionParams;
+	CPhoneFactoryDummyBase* iFac;
+	void Dummy();
+	};
+
+//
+//	CPhoneFactoryDummyBase
+//
+#ifdef __MARM__
+const TInt KEtelTimerGranularity = 31000;
+#else
+const TInt KEtelTimerGranularity = 80000;
+#endif
+
+class CPhoneFactoryDummyBase : public CPhoneFactoryBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	CPhoneFactoryDummyBase();
+	void ConstructL();
+	~CPhoneFactoryDummyBase();
+
+	void QueueTimer(TTsyTimer& aTsyTimer,
+						const TTsyReqHandle aHande,
+						TTimeIntervalMicroSeconds32 aTimeInMicroSeconds,
+						TInt (*aFunction)(TAny *aPtr), TAny* aPtr);
+	TBool RemoveTimer(TTsyTimer& aHandle);
+	void ResetPending(TTsyTimer& aHandle);
+	TBool IsSupported(const TInt aMixin);
+private:
+	CDeltaTimer* iTimer;
+	};
+
+class CSubSessionExtDummyBase : public CSubSessionExtBase
+/**
+@internalTechnology
+*/
+	{
+public:
+	CSubSessionExtDummyBase(CPhoneFactoryDummyBase* aFac);
+	~CSubSessionExtDummyBase();
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	CPhoneFactoryDummyBase* FacPtr() const;
+	virtual TInt CancelSubSession();
+private:
+	CPhoneFactoryDummyBase* iFac;
+	};
+/**
+@internalComponent
+*/
+const TUint KTsyEtelMajorVersionNumber=1;
+const TUint KTsyEtelMinorVersionNumber=0;
+const TUint KTsyEtelBuildVersionNumber=606;
+
+
+#endif