haitest/bspsvs/suite/e32/inc/T_RBusDevCommData.h
changeset 0 cec860690d41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/haitest/bspsvs/suite/e32/inc/T_RBusDevCommData.h	Tue Feb 02 01:39:10 2010 +0200
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2005-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:
+*
+*/
+
+
+#if (!defined __T_RBUS_DEV_COMM_DATA_H__)
+#define __T_RBUS_DEV_COMM_DATA_H__
+
+//	User Includes
+#include "T_RBusLogicalChannelData.h"
+#include "T_ActiveCallbackIO.h"
+
+//	EPOC includes
+#include <d32comm.h>
+
+/**
+ * Test Active Notification class
+ *
+ */
+class CT_RBusDevCommData : public CT_RBusLogicalChannelData
+	{
+public:
+	static CT_RBusDevCommData*	NewL();
+	~CT_RBusDevCommData();
+
+	virtual TAny*	GetObject();
+	virtual TBool	DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+
+protected:
+	CT_RBusDevCommData();
+	void	ConstructL();
+
+	//	CT_RHandleBaseData implementation
+	virtual RHandleBase*		GetHandleBase();
+
+	//	CT_RBusLogicalChannelData implementation
+	virtual RBusLogicalChannel*	GetBusLogicalChannel();
+
+	//	MActiveCallback implementation
+	virtual void	RunL(CActive* aActive, TInt aIndex);
+ 	virtual void	DoCancel(CActive* aActive, TInt aIndex);
+
+private:
+	void	DestroyData();
+
+	TInt	DoCmdConstructor();
+	void	DoCmdDestructor();
+	void	DoCmdBreak(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void	DoCmdBreakCancel();
+	void	DoCmdCapsL(const TDesC& aSection);
+	void	DoCmdConfigL(const TDesC& aSection);
+	void	DoCmdMinTurnaroundTime(const TDesC& aSection);
+	void	DoCmdNotifyReceiveDataAvailable(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void	DoCmdNotifyReceiveDataAvailableCancel();
+	void	DoCmdNotifySignalChange(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void	DoCmdNotifySignalChangeCancel();
+	TInt	DoCmdOpen(const TDesC& aSection);
+	TInt	DoCmdQueryReceiveBuffer(const TDesC& aSection);
+	void	DoCmdReadL(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void	DoCmdReadCancel();
+	void	DoCmdReadOneOrMoreL(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void	DoCmdReceiveBufferLength(const TDesC& aSection);
+	void	DoCmdResetBuffers();
+	TInt	DoCmdSetConfigL(const TDesC& aSection);
+	TInt	DoCmdSetMinTurnaroundTime(const TDesC& aSection);
+	TInt	DoCmdSetReceiveBufferLength(const TDesC& aSection);
+	void	DoCmdSetSignals(const TDesC& aSection);
+	void	DoCmdSignals(const TDesC& aSection);
+	void	DoCmdVersionRequired(const TDesC& aSection);
+	void	DoCmdWriteL(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void	DoCmdWriteCancel();
+
+	//	Helpers
+	void	PrepareReadExpectedBufferLengthL(CT_ActiveCallbackIO& aCallback, const TDesC& aSection);
+
+private:
+	RBusDevComm*					iBusDevComm;
+	HBufC8*							iBufferRead;
+	TPtr8							iBufferReadPtr;
+	TPtr8							iBufferReadOneOrMorePtr;
+	TInt							iReadOneOrMoreLeft;
+	TBool							iHasReadExpected;
+	TInt							iBufferLength;
+	TUint							iMinTurnaroundTime;
+	TInt							iReceiveBufferLength;
+	TUint							iSignals;
+	TUint							iNotifySignals;
+	TBool							iHasNotifySignalsExpected;
+	TUint							iNotifySignalsExpected;
+	CActiveCallbackBase*			iCallbackBreak;
+	CActiveCallbackBase*			iCallbackNotifyReceiveDataAvailable;
+	CActiveCallbackBase*			iCallbackNotifySignalChange;
+	CT_ActiveCallbackIO*			iCallbackRead;
+	CT_ActiveCallbackIO*			iCallbackReadOneOrMore;
+	CT_ActiveCallbackIO*			iCallbackWrite;
+
+	static const TEnumEntryTable	iEnumTableSignals[];
+	};
+
+#endif /* __T_RBUS_DEV_COMM_DATA_H__ */