traceservices/tracefw/ost_trace_api/unit_test/te_ost/inc/te_tracerecord.h
changeset 0 08ec8eefde2f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/traceservices/tracefw/ost_trace_api/unit_test/te_ost/inc/te_tracerecord.h	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,91 @@
+// 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 "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 te_tracerecord.h
+ @internalTechnology
+*/
+#ifndef TE_TRACERECORD_H_
+#define TE_TRACERECORD_H_
+
+#include "te_traceglobals.h"
+#include "te_apienums.h"
+#include <e32btrace.h> //for KMaxBTraceDataArray
+
+
+/**
+ * Because we need to transfer data across user and kernel side
+ * and that needs to be able to do a shallow copy we need to keep it really simple.
+ * Methods to fill the variables are provided by TTraceConfigsOperator
+ */
+class TTraceConfigs
+{
+public:
+	//config stuff relevant to unit testing only
+	TTraceApiUsed		iApiUsed;
+	//variability
+	TUint8				iLoggingEnabled;
+	TUint8				iTracingBuiltIn;
+
+	//Header things
+	TGroupId		iGroupId;
+	TComponentId			iComponentId;
+	TComponentId			iUid3;	
+	THasThreadIdentification		iHasThreadId;	
+	THasProgramCounter	iHasProgramCounter;				
+	TUint32				iPc;
+	TUint32				iContextId;
+	TTraceId			iTraceId;
+	TUint64				iTimestamp;
+	TUint32				iTimestamp2;	
+
+	//payload related
+	TUint32					iUint32[KMaxNumberOfParams];						
+	char					iChar[KMaxSizeOfData];
+	TBuf8<KMaxSizeOfData>	iDesC8;			
+	TUint32 				iRawData[(8+KMaxBTraceDataArray)/4];
+	TInt					iRawDataSize;
+#ifndef __KERNEL_MODE__
+	TBuf16<KMaxSizeOfData> 	iDesC16;			
+#endif
+	TUint16 				iAny1;
+	TTemplated4ByteAligned	iTemplated;
+	//btrace format related as opposed to utrace
+	TUint8				iFlags;
+	TUint32				iHeader2;
+	TUint32				iExtra;
+	TUint8				iSubCategory;
+};
+
+class TTraceConfigsOperator
+{
+public:
+	static void	Init(TTraceConfigs& aConfig);
+	static void	SetHeader(TTraceConfigs& aConfig, TClassification aClassification, TComponentId aComponentId, THasThreadIdentification aContextId, THasProgramCounter aPc, TTraceId aTraceId);
+	static void	SetOptions(TTraceConfigs& aConfig, TTraceApiUsed aApiUsed, TUint8 aLoggingEnabled, TUint8 aTracingBuiltIn);
+	static void SetData(TTraceConfigs& aConfig, const TUint32 aData1, const TUint32 aData2, const TUint16 aAny1, const TDesC8& aDesC8);
+//	static void SetData(TTraceConfigs& aConfig, const char* aChar, TInt aCharSize, const TUint32* aRawData, TInt aDataSize);
+	static void SetData(TTraceConfigs& aConfig, const char* aData, const TInt aSize);
+	static void SetData(TTraceConfigs& aConfig, const TDesC8& aData);
+	static void SetData(TTraceConfigs& aConfig, const TDesC16& aData);
+	static void SetData(TTraceConfigs& aConfig, const TUint32 aData);
+	static void SetData(TTraceConfigs& aConfig, const TUint32 aData1, const TUint32 aData2);
+	static void SetData(TTraceConfigs& aConfig, const TTemplated4ByteAligned& aData);
+};
+
+
+#endif /*TE_TRACERECORD_H_*/