kernel/eka/include/e32utrace.inl
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/e32utrace.inl	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,105 @@
+/**
+* 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 "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:
+* Trace API
+* ---------------TTraceContext-----------------------
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @prototype
+ 
+ Define the context of a trace packet by setting its attributes.
+ 
+ The module UID is defaulted according to the FW_DEFAULT_MODULEUID definition.
+ The HasThreadIdentification is defaulted to the FW_DEFAULT_HAS_THREAD_IDENTIFICATION definition.
+ The HasProgramCounter is defaulted to the FW_DEFAULT_HAS_PC definition.
+ 
+ @param aClassification 	@see TClassification
+ 
+*/
+TTraceContext::TTraceContext(const TClassification aClassification)
+:iModuleUid(FW_DEFAULT_MODULEUID), iClassification(aClassification), iHasThreadIdentification(FW_DEFAULT_HAS_THREAD_IDENTIFICATION), iHasProgramCounter(FW_DEFAULT_HAS_PC), iReserved1(0), iReserved2(0)
+	{
+	}
+
+/**
+ * Define the context of a trace packet by setting its attributes.
+ *
+ * The HasThreadIdentification is defaulted to the FW_DEFAULT_HAS_THREAD_IDENTIFICATION definition.
+ * The HasProgramCounter is defaulted to the FW_DEFAULT_HAS_PC definition.
+ * 
+ * @param aModuleUid		@see TModuleUid
+ * @param aClassification	@see TClassification
+ */
+TTraceContext::TTraceContext(const TModuleUid aModuleUid, const TClassification aClassification)
+:iModuleUid(aModuleUid), iClassification(aClassification), iHasThreadIdentification(FW_DEFAULT_HAS_THREAD_IDENTIFICATION), iHasProgramCounter(FW_DEFAULT_HAS_PC), iReserved1(0), iReserved2(0)
+	{
+	}
+
+/**
+ * Define the context of a trace packet by setting its attributes.
+ * 
+ * The module UID is defaulted according to the FW_DEFAULT_MODULEUID definition.
+ * 
+ * @param aClassification 	@see TClassification
+ * @param aHasThreadIdentification	Set whether to add thread identification automatically in the trace packet.
+ * @param aHasProgramCounter			Set whether to add PC (program counter) automatically in the trace packet.
+ */
+TTraceContext::TTraceContext(const TClassification aClassification, const THasThreadIdentification aHasThreadIdentification, const THasProgramCounter aHasProgramCounter)
+:iModuleUid(FW_DEFAULT_MODULEUID), iClassification(aClassification), iHasThreadIdentification(aHasThreadIdentification), iHasProgramCounter(aHasProgramCounter), iReserved1(0), iReserved2(0)
+	{
+	}
+
+
+/**
+ * Define the context of a trace packet by setting its attributes.
+ *
+ * @param aModuleUid 		@see TModuleUid
+ * @param aClassification 	@see TClassification
+ * @param aHasThreadIdentification	Set whether to add thread identification automatically in the trace packet.
+ * @param aHasProgramCounter		Set whether to add PC (program counter) automatically in the trace packet.
+ */
+TTraceContext::TTraceContext(const TModuleUid aModuleUid, const TClassification aClassification, const THasThreadIdentification aHasThreadIdentification, const THasProgramCounter aHasProgramCounter)
+:iModuleUid(aModuleUid), iClassification(aClassification), iHasThreadIdentification(aHasThreadIdentification), iHasProgramCounter(aHasProgramCounter), iReserved1(0), iReserved2(0)
+	{
+	}
+
+//------------------ Trace -----------------------
+/**
+Outputs a trace packet containing variable length data.
+
+If the specified data is too big to fit into a single
+trace record a multipart trace is generated.
+
+@param aContext 	Attributes of the trace point. 
+@param aFormatId	A format identifier as specified by @see TFormatId
+@param aData		Additional data to add to trace packet.
+					Must be word aligned, i.e. a multiple of 4.
+
+@return 			The trace packet was/was not logged.
+
+@See BTrace::TMultipart
+*/
+template<typename T>
+TBool Trace(const TTraceContext& aContext, TFormatId aFormatId, const T& aData)
+	{
+	return Trace(aContext, aFormatId, &aData, sizeof(aData));
+	}
+