symport/symutil/src/utils.cpp
changeset 1 0a7b44b10206
child 2 806186ab5e14
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symport/symutil/src/utils.cpp	Thu Jun 25 15:59:54 2009 +0100
@@ -0,0 +1,91 @@
+// Copyright (c) 1997-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:
+//
+
+#include <utils.h>
+#include <time.h>
+/**
+ * Creates a NULL terminated string from aSource and stores into aTarget.
+ */
+const TInt CreateNullTerminatedString(TDes8& aTarget, const TDesC8& aSource)
+	{
+	aTarget.Append(aSource);
+	aTarget.Append('\0');
+	return KErrNone;
+	}
+
+/**
+ * Creates a NULL terminated string from aSource and stores into aTarget.
+ * The 16 to 8 bit conversion is performed via TDes16::Collapse
+ */
+const TInt CreateNullTerminatedString(TDes8& aTarget, const TDesC& aSource)
+	{
+	aTarget.Copy(aSource);
+	aTarget.Append('\0');
+	return KErrNone;
+	}
+
+/**
+ * Creates a NULL terminated string from aSource and stores into aTarget.
+ */
+const TInt CreateNullTerminatedString(TDes& aTarget, const TDesC& aSource)
+	{
+	aTarget.Append(aSource);
+	aTarget.Append('\0');
+	return KErrNone;
+	}
+
+const void TTime_to_time_t(TTime& aSource, time_t& aTarget)
+	{
+	TDateTime dateTime = aSource.DateTime();
+	struct tm stm;
+
+	stm.tm_year = dateTime.Year() - 1900;
+	stm.tm_mon  = (int)dateTime.Month();
+	stm.tm_mday = 1 + dateTime.Day();
+	stm.tm_hour = dateTime.Hour();
+	stm.tm_min = dateTime.Minute();
+	stm.tm_sec = dateTime.Second();
+
+	aTarget = mktime(&stm);
+	}
+
+const void TTime_to_tm(TTime& aSource, tm& aTarget )
+	{
+	TDateTime dateTime = aSource.DateTime();
+	aTarget.tm_year = dateTime.Year() - 1900;
+	aTarget.tm_mon  = (int)dateTime.Month();
+	aTarget.tm_mday = 1 + dateTime.Day();
+	aTarget.tm_hour = dateTime.Hour();
+	aTarget.tm_min = dateTime.Minute();
+	aTarget.tm_sec = dateTime.Second();
+	}
+
+const void time_t_to_TTime(time_t& aSource, TTime& aTarget)
+	{
+	struct tm* ptm = localtime( &aSource );
+
+	TDateTime datetime (
+			ptm->tm_year +1900,
+			(TMonth)(EJanuary + ptm->tm_mon),
+			ptm->tm_mday - 1,
+			ptm->tm_hour,
+			ptm->tm_min,
+			ptm->tm_sec, 0
+			);
+	TTime tmp(datetime);
+	aTarget = tmp;
+	}
+
+//end of file