bluetoothapitest/bluetoothsvs/t_btgavdpapi/inc/t_data_rgavdp.h
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothapitest/bluetoothsvs/t_btgavdpapi/inc/t_data_rgavdp.h	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,217 @@
+/*
+* 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_DATA_RAVDP_H__ )
+#define	__T_DATA_RAVDP__H__
+
+//	EPOC Includes
+#include <test/datawrapper.h>
+#include <gavdp.h>
+#include <bluetoothav.h>
+
+// User includes
+#include "DataWrapperBase.h"
+
+
+/**
+ * Test	Active Notification	class
+ *
+ */
+class CT_DataRGavdp :	public CDataWrapperBase, 
+						public MGavdpUser
+	{
+public:
+	/**
+	* Two phase	constructor
+	*/
+	static CT_DataRGavdp*	NewL();
+
+	/**
+	* Public destructor
+	*/
+	~CT_DataRGavdp();
+
+	/**
+	* Process a	command	read from the ini file
+	*
+	* @param aDataWrapper	test step requiring	command	to be processed
+	* @param aCommand	the	command	to process
+	* @param aSection		the	entry in the ini file requiring	the	command	to be processed
+	*
+	* @return ETrue	if the command is processed
+	*/
+	virtual	TBool	DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+
+	/**
+	* Return a pointer to the object that the data wraps
+	*
+	* @return	pointer	to the object that the data	wraps
+	*/
+	virtual	TAny*	GetObject()	{ return iRGavdp; }
+
+	/**
+	* Set the object that the data wraps
+	*
+	* @param	aObject	object that	the	wrapper	is testing
+	*
+	*/
+	virtual	void	SetObjectL(TAny* aAny);
+
+	/**
+	* The object will no longer be owned by this
+	*
+	* @leave	KErrNotSupported if the the function is not supported
+	*/
+	virtual void	DisownObjectL();
+
+	inline virtual TCleanupOperation CleanupOperation();
+	
+	//	MGavdpUser implemention
+	virtual void GAVDP_ConnectConfirm(const TBTDevAddr& aDeviceAddr);
+	virtual void GAVDP_SEPDiscovered(const TAvdtpSEPInfo& aSEP);
+	virtual void GAVDP_SEPDiscoveryComplete();	
+	virtual void GAVDP_SEPCapability(TAvdtpServiceCapability* aCapability);
+	virtual void GAVDP_SEPCapabilityComplete();		
+	virtual void GAVDP_AbortStreamConfirm();	
+	virtual void GAVDP_StartStreamsConfirm();
+	virtual void GAVDP_SuspendStreamsConfirm();	
+	virtual void GAVDP_SecurityControlConfirm(const TDesC8& aResponseData);	
+	virtual void GAVDP_ConfigurationConfirm();
+	virtual void GAVDP_ConfigurationStartIndication(TSEID aLocalSEID, TSEID aRemoteSEID);
+	virtual TInt GAVDP_ConfigurationIndication(TAvdtpServiceCapability* aCapability);
+	virtual TInt GAVDP_ConfigurationEndIndication();
+	virtual TInt GAVDP_StartIndication(TSEID aSEID);
+	virtual TInt GAVDP_SuspendIndication(TSEID aSEID);
+	virtual TInt GAVDP_SecurityControlIndication(TSEID aSEID, TDes8& aSecurityDataInOut);
+	virtual void GAVDP_AbortIndication(TSEID aSEID);
+	virtual void GAVDP_ReleaseIndication(TSEID aSEID);
+	virtual void GAVDP_BearerReady(RSocket aSocket, const TAvdtpSockAddr& aAddress);
+	virtual void GAVDP_Error(TInt aError, const TDesC8& aErrorData);	
+	
+protected:
+	/**
+	* Protected	constructor. First phase construction
+	*/
+	CT_DataRGavdp();
+
+	/**
+	* Second phase construction
+	*/
+	void	ConstructL();
+
+	void	RunL(CActive* aActive, TInt aIndex);
+	
+private:
+
+	static void CleanupOperation(TAny* aAny);
+
+    enum 
+    {
+    	EGAVDP_NoneEvent,
+        EGAVDP_ConnectConfirm,
+        EGAVDP_SEPDiscovered,
+        EGAVDP_SEPDiscoveryComplete,
+        EGAVDP_SEPCapability,
+        EGAVDP_SEPCapabilityComplete,
+        EGAVDP_AbortStreamConfirm,
+        EGAVDP_StartStreamsConfirm,
+        EGAVDP_SuspendStreamsConfirm,
+        EGAVDP_SecurityControlConfirm,
+        EGAVDP_ConfigurationConfirm,
+        EGAVDP_ConfigurationStartIndication,
+        EGAVDP_ConfigurationIndication,
+        EGAVDP_ConfigurationEndIndication,
+        EGAVDP_StartIndication,
+        EGAVDP_SuspendIndication,
+        EGAVDP_SecurityControlIndication,
+        EGAVDP_AbortIndication,
+        EGAVDP_ReleaseIndication,
+        EGAVDP_BearerReady,
+        EGAVDP_Error,
+    };  
+    TBool	ReadExpectedEventsFromConfig(const TTEFSectionName& aSection);
+	TBool	ConvertEvents(TDesC &aEventStr, RArray<TUint>& aEvent);
+	void	SetEventOutstanding();
+	void	CheckEvent(TUint aEvent);
+	void	CheckLocalSEID(TSEID aSEID);
+
+	/**
+	* Helper methods
+	*/
+	
+	void		DestroyData();	
+	void 		DoCmdConstructor();
+	void 		DoCmdOpen(const TTEFSectionName& aSection);
+	void		DoCmdListen(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdClose();
+	void		DoCmdCancel();
+	void		DoCmdConnect(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdDiscoverRemoteSEPs(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdGetRemoteSEPCapabilities(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdRegisterSEP(const TTEFSectionName& aSection);
+	void		DoCmdBeginConfiguringRemoteSEP(const TTEFSectionName& aSection);
+	void		DoCmdBeginConfiguringLocalSEP(const TTEFSectionName& aSection);
+	void		DoCmdAddSEPCapability(const TTEFSectionName& aSection);
+	void		DoCmdCommitSEPConfiguration(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdStartStream(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdSuspendStream(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdAbortStream(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdSendSecurityControl(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdCreateBearerSockets(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void		DoCmdMaxSecurityControlLength(const TTEFSectionName& aSection);
+	void		DoCmdShutdown();
+	void		DoCmdDestructor();
+
+	void		Read(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void		Send(const TDesC& aSection, const TInt aAsyncErrorIndex);
+	void		CloseBearerSockets();
+	void		IncreaseOutstanding(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	
+	TBool		ConvertSEIDs(TDesC &aSEIDsStr, RArray<TUint>& aSEIDs);
+	TBool		isExistSEID(TUint aSEID);
+	
+private:
+	RGavdp*		iRGavdp;
+	TBTDevAddr* iRemoteAddr;
+	RArray<TUint> iExpectedEvent;
+	TInt		iExpectedEventCount;
+	TInt		iEventCount;
+	RArray<TUint> iExistRemoteSEIDs;
+	TInt		iExpectedSEPsCount;
+	TInt		iDiscoverdSEPsCount;
+	RPointerArray<TAvdtpSEPInfo> iRemoteSEPs;
+	TAvdtpServiceCategory iSrvCategory;
+	RPointerArray<TAvdtpServiceCapability> iRemoteCapabilities;
+	TFixedArray<RSocket, 3> iSockets;
+	HBufC8*		iReadBuffer;
+	TPtr8		iReadBufferDes;
+	HBufC8*		iReadExpectBuffer;
+	HBufC8*		iSendBuffer;
+	HBufC8*		iExpectedResponseSecurityData;
+	TSEID		iLocalSEID;
+	TSEID		iRemoteSEID;
+	
+	CActiveCallback*	iActive;
+	TInt				iCmdIndex;
+	
+	TInt		iConfigReturnCode;
+	TInt		iConfigEndReturnCode;
+	
+	};
+
+#endif /* __T_DATA_RGAVDP_H__*/