pimappsupport/vcardandvcal/Ticket/VTicketMaster.H
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pimappsupport/vcardandvcal/Ticket/VTicketMaster.H	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,173 @@
+// Copyright (c) 2001-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:
+//
+ 
+#if !defined(__VFOOT_H__)
+#define __VCARD_H__
+
+#if !defined(__VERSIT_H__)
+#include "VERSIT.H"
+#endif
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "versit_internal.h"
+#endif
+
+
+_LIT(KVersitTokenVTicketmasterVersionNo, "1.0");
+_LIT(KVersitVarTokenTICKETMASTER,	"TICKETMASTER");
+_LIT8(KVersitTokenEVENTTYPE,		"EVENT-TYPE");
+_LIT8(KVersitTokenARTIST,			"ARTIST");
+_LIT8(KVersitTICKETTERMINAL,		"TICKET-TERMINAL");
+_LIT8(KVersitTokenVENUE,			"VENUE");
+_LIT8(KVersitTokenNUMBEROFTICKETS,	"NUMBER-OF-TICKETS");
+_LIT8(KVersitTokenSUPPORTINGACT,	"SUPPORTING-ACT");
+_LIT8(KVersitTokenORGANISATION,		"ORGANISATION");
+_LIT8(KVersitTokenCONCERTDATE,		"CONCERT-DATE");
+_LIT8(KVersitTokenPRICELEVEL,		"PRICE-LEVEL");
+_LIT8(KVersitTokenTICKETPRICE,		"TICKET-PRICE");
+_LIT8(KVersitTokenBOOKINGFEE,		"BOOKING-FEE");
+_LIT8(KVersitTokenEVENTCODE,		"EVENT-CODE");
+_LIT8(KVersitTokenSEATNUMBERS,		"SEAT-NUMBERS");
+_LIT8(KVersitTokenOTHERRELATEDSHOWS,"OTHER-RELATED-SHOWS");
+
+_LIT(KVersitVarTokenVCONCERT,		"VCONCERT");
+_LIT(KVersitVarTokenVMUSICAL,		"VMUSICAL");
+
+//UID 270488168 - 270488183 have been reserved for Demo DLL to use
+#define KVTicketmasterEntityUidVConcert		270488168
+#define KVTicketmasterEntityUidVMusical		270488169
+#define KVTicketmasterPriceUid				270488170
+#define KVTicketmasterEventCodeUid			270488171
+#define KVTicketmasterSeatNumUid			270488172
+#define KVTicketmasterOtherRelatedShowsId	270488173
+
+#define KSpace		0x0020
+#define KComma		0x002C
+#define KSemiColon	0x003B
+#define KHyphen		0x002D
+
+#define FirstNumComesBeforeSecondNum -1
+#define FirstNumComesAfterSecondNum   1
+
+
+enum TTicketMasterPanic
+	{
+	EUnexpectedBase64=100,
+	};
+
+inline void TMPanic(TTicketMasterPanic aPanic)
+	{
+	Panic(REINTERPRET_CAST(TVersitParserPanic&, aPanic));
+	}
+
+class TSeatNum
+	{
+public:
+	static TInt CompareSeats(const TSeatNum& aFirst, const TSeatNum& aSecond);
+public:
+	TBuf<2> iRow;
+	TInt	iSeatNum;
+	TInt	iNextSeats; //number of seats next to the original seat
+	};
+
+class CParserVTicketmaster : public CVersitParser
+	{
+public:
+	IMPORT_C static CParserVTicketmaster* NewL();
+public:
+	//InternalizeL - we will call the base class function CVersitParser::InternaliseL
+	IMPORT_C void ExternalizeL(RWriteStream& aStream);
+protected: 
+	IMPORT_C TUid RecognizeToken(const TDesC8& aToken) const;
+	IMPORT_C TInt RecognizeEntityName() const;
+	IMPORT_C CVersitParser* MakeEntityL(TInt aEntityUid, HBufC* aEntityName);
+private:
+	CParserVTicketmaster();
+	};
+
+class CParserVTicketmasterEntity : public CVersitParser
+	{
+public:
+	IMPORT_C static CParserVTicketmasterEntity* NewL();
+	~CParserVTicketmasterEntity();
+	void CreateSeatsL(TSeatNum& aSeat, TPtr16& aSpecificSeat);
+protected:
+	CParserPropertyValue* MakePropertyValueL(const TUid& aPropertyUid,HBufC16*& aValue);
+	IMPORT_C TUid RecognizeToken(const TDesC8& aToken) const;
+	IMPORT_C CParserPropertyValue* MakePropertyValuePriceL(TPtr16 aPriceValue);
+	IMPORT_C CParserPropertyValue* MakePropertyValueEventCodeL(TPtr16 aEventCodeValue);
+	CParserPropertyValue* MakePropertyValueSeatNumL(TPtr16 aSeatNum);
+	CPtrCArray* MakePropertyValueOtherRelatedShowsL(TPtr16 aShow);
+private:
+	CParserVTicketmasterEntity();
+	};
+
+class CParserPropertyValuePrice : public CParserPropertyValue
+	{
+public:
+	IMPORT_C CParserPropertyValuePrice(TChar aCurrencySymbol, TChar aDecimalPoint, TInt aPounds, TInt aPennys);
+	IMPORT_C ~CParserPropertyValuePrice();
+public: // from CParserPropertyValue
+	IMPORT_C void ExternalizeL(RWriteStream& /*aStream*/,const Versit::TEncodingAndCharset& /*aEncodingCharset*/,TInt /*aLengthOutput*/);
+private:
+	TChar	iCurrencySymbol;
+	TChar	iDecimalPoint;
+	TInt	iPounds;
+	TInt	iPennys;
+	};
+
+class CParserPropertyValueEventCode : public CParserPropertyValue
+	{
+public:
+	CParserPropertyValueEventCode(TInt aFirstCode, TInt aFirstCodeLength,
+								  TInt aSecondCode, TInt aSecondCodeLength,
+								  TInt aThirdCode, TInt aThirdCodeLength);
+public:
+	void ExternalizeL(RWriteStream& /*aStream*/,const Versit::TEncodingAndCharset& aEncodingCharset,TInt /*aLengthOutput*/);
+private:
+	TInt	iFirstCode;
+	TInt	iSecondCode;
+	TInt	iThirdCode;
+	TInt	iFirstCodeLength;
+	TInt	iSecondCodeLength;
+	TInt	iThirdCodeLength;
+	};
+
+class CParserPropertyValueSeatNum : public CParserPropertyValue
+	{
+public:
+	CParserPropertyValueSeatNum(RArray<TSeatNum>& aSeatArray);
+	~CParserPropertyValueSeatNum();
+public:
+	void ExternalizeL(RWriteStream& /*aStream*/,const Versit::TEncodingAndCharset& /*aEncodingCharset*/,TInt /*aLengthOutput*/);
+private:
+	RArray<TSeatNum> iSeatArray;
+	TInt	iArrayLength;
+	};
+
+class CParserPropertyValueOtherRelatedShows : public CParserPropertyValue
+	{
+public:
+	CParserPropertyValueOtherRelatedShows(CPtrCArray* aShowArray);
+	~CParserPropertyValueOtherRelatedShows();
+public:
+	void ExternalizeL(RWriteStream& /*aStream*/,const Versit::TEncodingAndCharset& /*aEncodingCharset*/,TInt /*aLengthOutput*/);
+private:
+	CPtrCArray* iShowArray;
+	};
+
+
+
+#endif