lbs/lbstestchannel/inc/tlbschannelutils.h
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lbs/lbstestchannel/inc/tlbschannelutils.h	Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,237 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// @file tlbschannelutils.h
+// This is the header file which contains the msg data types and other utilities
+// 
+//
+
+
+
+/**
+ @file
+ @internalTechnology
+ @test
+*/
+
+#ifndef TLBSCHANNELUTILS_H
+#define TLBSCHANNELUTILS_H
+
+#include <lbs/test/tlbsutils.h>
+
+
+/* Key value used to publish messages from Test Harness to Test AGPS Module 
+   and the corresponding acknowledgement */
+const TUint KTH2TAGPSMessageKey = 0x0F001010;
+const TUint KTH2TAGPSMessageReadAckKey = 0x0F001020;
+/* Key value used to publish messages from Test AGPS Module to Test Harness  
+   and the corresponding acknowledgement */
+const TUint KTAGPS2THMessageKey = 0x0F001030;
+const TUint KTAGPS2THMessageReadAckKey = 0x0F001040;
+
+
+
+/** Base class for messages sent between the Test Harness and Test A-Gps Module.
+
+This class defines the types of messages and reserves a buffer to store
+information, but it can't be used itself. Instead derived classes will
+implement each of the types of messages and supply accessor functions.
+
+*/
+class TT_LbsMsgBase
+	{
+public:
+	/** List of all possible message types.
+	
+	Each type of message listed here must be implemented as a
+	separate class that inherits from TLbsNetInternalMsgBase.
+	*/
+	enum TLbsMsgType
+		{
+		EUnknown = 0,
+		EModuleRequestUpdateInit,	// TH --> AGPS-Module
+		EModuleRequestTimeOut,		// TH --> AGPS-Module
+		EModuleRequestOptions,		// TH --> AGPS-Module
+		EModuleRequestError,		// TH --> AGPS-Module
+		EModuleRequestForcedUpdate,	// TH --> AGPS-Module
+		EModuleResponse				// AGPS-Module --> TH
+		};
+
+public:
+	IMPORT_C TT_LbsMsgBase();
+	
+	IMPORT_C TLbsMsgType Type() const;
+
+protected:
+	// Derived classes set their type by using these constructors.
+	IMPORT_C TT_LbsMsgBase(TLbsMsgType aType);	
+
+private:
+	TLbsMsgType iType;
+	
+protected:	
+	// A TUint64 is used to ensure that any objects that use the buffer 
+	// are at least 8byte aligned. (The compiler will organise the arrangement
+	// of iBuffer within TLbsNetInternalMsgBase to be aligned to the minimum
+	// for a TUint64, which is 8bytes.)
+	TUint64 iBuffer[((1576 - (sizeof(TLbsMsgType))) >> 3)];
+	};
+	
+/** 
+Test A-Gps Module Request UpdateInit Message
+*/
+NONSHARABLE_CLASS(TT_LbsAGpsRequestUpdateInitMsg) : public TT_LbsMsgBase
+	{
+public:
+	IMPORT_C TT_LbsAGpsRequestUpdateInitMsg(const TDesC& aConfigFileName, const TDesC& aConfigSection);
+	
+	IMPORT_C const TDesC& ConfigFileName() const;
+	IMPORT_C const TDesC& ConfigSection() const;
+
+private:
+	TT_LbsAGpsRequestUpdateInitMsg();
+
+private:
+	struct ST_LbsAGpsRequestUpdateInit
+		{
+		TBuf<KMaxModuleDataBusIniFileName>	iConfigFileName; 	/** Config request data. */
+		TBuf<40>							iConfigSection;  	/** Config request data. */
+		};
+
+	inline ST_LbsAGpsRequestUpdateInit& Data();
+	inline const ST_LbsAGpsRequestUpdateInit& Data() const;
+	};
+
+/** 
+Test A-Gps Module Request TimeOut Message
+*/
+NONSHARABLE_CLASS(TT_LbsAGpsRequestTimeOut) : public TT_LbsMsgBase
+	{
+public:
+	IMPORT_C TT_LbsAGpsRequestTimeOut(const TTimeIntervalMicroSeconds& aTimeOut);
+	IMPORT_C const TTimeIntervalMicroSeconds& TimeOut() const;
+
+private:
+	TT_LbsAGpsRequestTimeOut();
+
+private:
+	struct ST_LbsAGpsRequestTimeOut
+		{
+		TTimeIntervalMicroSeconds 	iTimeOut;	/** Module time out. */
+		};	
+	inline ST_LbsAGpsRequestTimeOut& Data();
+	inline const ST_LbsAGpsRequestTimeOut& Data() const;
+	};
+
+/** 
+Test A-Gps Module Request Options Message
+*/
+NONSHARABLE_CLASS(TT_LbsAGpsRequestOptions) : public TT_LbsMsgBase
+	{
+public:
+	IMPORT_C TT_LbsAGpsRequestOptions(TLbsHybridModuleOptions aModuleOption);
+	IMPORT_C TT_LbsAGpsRequestOptions(TLbsHybridModuleOptions aModuleOption, TBool aOptionValue);
+
+	IMPORT_C TLbsHybridModuleOptions ModuleOption() const;
+	IMPORT_C TBool ModuleValue() const;
+
+private:
+	TT_LbsAGpsRequestOptions();
+
+private:
+	struct ST_LbsAGpsRequestOptions
+		{
+		TLbsHybridModuleOptions 	iModuleOption; 	// Module option
+		TBool	 					iModuleValue; 	// Value for the module option
+		};	
+
+	inline ST_LbsAGpsRequestOptions& Data();
+	inline const ST_LbsAGpsRequestOptions& Data() const;
+	};
+
+/** 
+Test A-Gps Module Request Error Message
+*/
+NONSHARABLE_CLASS(TT_LbsAGpsRequestError) : public TT_LbsMsgBase
+	{
+public:
+	IMPORT_C TT_LbsAGpsRequestError(TInt aOptions);
+	IMPORT_C TInt Error() const;
+
+private:
+	TT_LbsAGpsRequestError();
+
+private:
+	struct ST_LbsAGpsRequestError
+		{
+		TInt iError;				/** Module Error Code */
+		};	
+
+	inline ST_LbsAGpsRequestError& Data();
+	inline const ST_LbsAGpsRequestError& Data() const;
+	};
+
+/** 
+Test A-Gps Module Request Forced Update Message
+
+This message forces the test A-Gps module to send
+the next position update from the update array
+now, even if there is no outstanding request from LBS.
+*/
+NONSHARABLE_CLASS(TT_LbsAGpsRequestForcedUpdate) : public TT_LbsMsgBase
+	{
+public:
+	IMPORT_C TT_LbsAGpsRequestForcedUpdate();
+
+private:
+	struct ST_LbsAGpsRequestForcedUpdate
+		{
+		TInt iDummy;				/** Dummy value; unused */
+		};	
+
+	inline ST_LbsAGpsRequestForcedUpdate& Data();
+	inline const ST_LbsAGpsRequestForcedUpdate& Data() const;
+	};
+	
+/** 
+Test A-Gps Module Response Message
+*/
+NONSHARABLE_CLASS(TT_LbsAGpsResponseMsg) : public TT_LbsMsgBase
+	{
+public:
+
+    enum TModuleResponseType
+		{
+		EModuleResponseOk,
+		EModuleErr
+		};
+		
+	IMPORT_C TT_LbsAGpsResponseMsg(const TModuleResponseType& 	aResponse);
+
+	IMPORT_C TModuleResponseType ResponseType() const;
+
+private:
+	TT_LbsAGpsResponseMsg();
+
+private:
+
+	struct ST_LbsAGpsResponse
+		{
+		TModuleResponseType iResponseType;
+		};
+	
+	inline ST_LbsAGpsResponse& Data();
+	inline const ST_LbsAGpsResponse& Data() const;
+	};	
+	
+#endif // TLBSCHANNELUTILS_H