genericservices/httputils/inc/tinternetdate.h
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/genericservices/httputils/inc/tinternetdate.h	Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,103 @@
+// Copyright (c) 2002-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:
+// This file contains the class TInternetDate
+// 
+//
+
+/**
+ @file tinternetdate.h
+ @publishedAll
+ @released
+*/
+  
+
+#ifndef		__TINTERNETDATE_H__
+#define		__TINTERNETDATE_H__
+
+#include <e32std.h>
+
+/**
+Stores dates in universal time and provides parsing of internet style dates 
+into TDateTime and RFC 1123 (updates RFC 822) dates.
+
+Supports parsing of the following date formats:
+Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+
+In case of Date Formats with offsets "Mon, 21 Jan 2002 23:00:00 +0210" , equivalent 
+time in UTC can be determined by substracting the offset from the local time (RFC 3339).
+
+All dates are store relative to Universal Time and not local time. 
+
+@publishedAll
+@released
+@since 7.0
+*/
+class TInternetDate
+	{
+public:	
+/** 
+	Enum defining internet date formats.
+	@publishedAll
+	@released
+	@since 9.1	
+ */
+	enum TInternetDateFormat
+		{
+		/** 
+			Rfc 1123 Compliant date format 
+		*/
+		ERfc1123Format
+		};
+
+	inline TInternetDate();
+
+
+	inline TInternetDate(TDateTime aUniversalTime);
+
+	IMPORT_C void SetDateL(const TDesC8& aDate);
+
+	IMPORT_C const TDateTime& DateTime();
+
+	IMPORT_C HBufC8* InternetDateTimeL(TInternetDateFormat aInternetDateFormat);
+
+private:
+	/**
+	A date and time object
+	*/
+	TDateTime iDateTime;
+	};
+
+
+/**
+	Intended Usage:	Default Constructor. Used when setting dates that are in a text format using SetDateL
+	
+	@since			7.0	.	
+*/
+inline TInternetDate::TInternetDate()
+	{}
+
+/**
+	Intended Usage:	Constructor. Used when setting a date that you later want parsed into an internet text format
+	
+	@since			7.0
+	@param			aUniversalTime	a time that should correspond to Universal Time.
+*/
+inline TInternetDate::TInternetDate(TDateTime aUniversalTime) :
+	iDateTime(aUniversalTime)
+	{}
+
+
+#endif	//	__TINTERNETDATE_H__