serialserver/packetloopbackcsy/inc/LoopbackConfig.h
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serialserver/packetloopbackcsy/inc/LoopbackConfig.h	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,131 @@
+// Copyright (c) 2004-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:
+// LoopbackConfig.cpp
+// This file handles retrieving settings from the config file for the loopback test driver
+// 
+//
+
+/**
+ @file
+*/
+
+#ifndef __LOOPBACK_CONFIG_H__
+#define __LOOPBACK_CONFIG_H__
+
+#include <e32def.h>
+
+#include <testconfigfileparser.h>
+
+#include "FlowControlChange.h"
+
+const TUint KDefaultDelay = 100;	// in milliseconds
+const TUint KDefaultPacketLength = 1024;
+const TUint KDefaultQueueLength = 30;
+const TUint KDefaultBufferSize = 10000;
+
+enum TPortType
+	{
+	EPacketLoopbackPortType,
+	ESerialLoopbackPortType
+	};
+
+class TLoopbackConfigItem
+/**
+ Each of the elements in this file match to a port entry in the loopback.ini file
+ */
+ 	{
+public:
+	/** The port connected to iPortB via loopback connection */
+	TUint iPortA;
+	/** The port connected to iPortA via loopback connection */
+	TUint iPortB;
+	/** The delay, in milliseconds for each write for these 2 ports */
+	TUint iDelay;
+	/** packet length gives the size of the buffer to be allocated for each read and write */
+ 	TUint iPacketLength;
+ 	/** The number of entries in the Read and Write queues */
+	TUint iQueueLength;
+	/** The total buffer size (in bytes) for serial mode */
+	TUint iBufferSize;
+	/** Default values for a loopback config item */
+	TLoopbackConfigItem()
+		{
+		iPortA = 0;
+		iPortB = 1;
+		iDelay = KDefaultDelay;
+		iPacketLength = KDefaultPacketLength;
+		iQueueLength = KDefaultQueueLength;
+		iBufferSize = KDefaultBufferSize;
+		}
+	};
+	
+NONSHARABLE_CLASS(CLoopbackConfig) : CBase
+/**
+ * This class is used to get settings from the loopback.ini file
+ */
+	{
+public:
+	~CLoopbackConfig();
+	static CLoopbackConfig* NewL();
+	TUint Count() const;
+	TInt GetPortSettings(TUint aUnit, TLoopbackConfigItem& aPortSettings) const;
+	static TInt GetTestNumber(TInt& aTestNumber);
+	static TInt GetFlowControl(TBool& aFlowControlOn);
+	TPortType PortType() const;
+private:
+	CLoopbackConfig();
+	void ConstructL();
+	
+	/** Array of all of the items in the loopback config file */
+	CArrayFixFlat<TLoopbackConfigItem> *iConfigItems;
+	/** The port type (either packet or serial) */
+	TPortType iPortType;
+	};
+
+_LIT(KLoopbackConfigFilename,"c:\\loopback.ini");
+_LIT(KConfigFileDir,"loopback");
+_LIT8(KSectionNameFormat,"test%d");
+_LIT8(KPort,"Port");
+_LIT8(KSerialLoopbackPortType, "SerialLoopbackPort");
+_LIT8(KPacketLoopbackPortType, "PacketLoopbackPort");
+const TUint KMaxPortTypeNameLength = 64;
+
+
+// Loopback CSY UIDs
+
+static const TUid KUidLoopbackCSYMin = {0x10206864};
+static const TUid KUidLoopbackCSYMax = {0x1020686F};
+
+static const TUid KUidLoopbackCsyDll = {0x10206864}; // KUidLoopbackCSYMin
+static const TUid KUidTestLoopbackCsyDll = {0x10206865}; // KUidLoopbackCSYMin + 1
+static const TUid KUidPSPacketLoopbackCsyCategory = {0x10206866}; // KUidLoopbackCSYMin + 2
+static const TUid KUidPSCsyFlowControlCategory = {0x10206867}; // KUidLoopbackCSYMin + 3
+static const TUid KUidPSCsyReadResultCategory = {0x10206868}; // KUidLoopbackCSYMin + 4
+static const TUid KUidPSCsyWriteResultCategory = {0x10206869}; //KUidLoopbackCSYMin + 5
+
+// KUidPSPacketLoopbackCsyCategory constants
+const TInt KPSLoopbackCsyTestNumber = 0;
+const RProperty::TType KPSLoopbackCsyTestNumberKeyType = RProperty::EInt;
+
+// KUidPSCsyFlowControlCategory constants
+const RProperty::TType KPSLoopbackCsyFlowControlOnKeyType = RProperty::EInt;
+
+// KUidPSCsyReadResultCategory constants
+const RProperty::TType KUidPSCsyReadResultCategoryKeyType = RProperty::EInt;
+
+// KUidPSCsyWriteResultCategory constants
+const RProperty::TType KUidPSCsyWriteResultCategoryKeyType = RProperty::EInt;
+
+#endif
+