networkprotocolmodules/common/suplrrlpasn1/inc/suplasn1decoderimpl.h
changeset 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkprotocolmodules/common/suplrrlpasn1/inc/suplasn1decoderimpl.h	Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,75 @@
+// Copyright (c) 2008-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:
+// Internal implementation of the SUPL ASN1 Decoder
+// 
+//
+
+/**
+ @file
+ @internalComponent
+ 
+*/
+#ifndef SUPL_ASN1_DECODER_IMPL_H
+#define SUPL_ASN1_DECODER_IMPL_H
+
+#include <e32std.h>
+#include "suplasn1decoder.h"
+
+// forward declarations
+class CSuplMessageBase;
+class ASN1PERDecodeBuffer;
+class ASN1T_ULP_PDU;
+class ASN1C_ULP_PDU;
+
+/**
+The class provides an internal implementation of the functionality exposed 
+by the CSuplAsn1Decoder interface.
+
+@see CSuplAsn1Decoder
+@see CSuplMessageBase
+
+@internalComponent
+*/
+NONSHARABLE_CLASS(CSuplAsn1DecoderImpl) : public CBase
+	{
+public:
+	IMPORT_C static CSuplAsn1DecoderImpl* NewL();
+	virtual ~CSuplAsn1DecoderImpl();
+
+public:
+	IMPORT_C CSuplMessageBase* DecodeL(const TPtrC8* aBuf, TInt& aError);
+	
+private:
+	CSuplAsn1DecoderImpl();
+	void ConstructL();
+	
+	TInt ProcessAsn1Error(TInt aError);
+	TInt AdditionalMessageValidation();
+private:
+	// Objective Systems compiled object types.
+	// Note that these data members object names do not meet Symbian's coding
+	// standards as they are created using a third party ASN1 compilation tool.
+	
+	// ASN1 Decode Buffer Management
+	ASN1PERDecodeBuffer* iDecodeBuffer;
+	
+	// SUPL message data structure and C++ management class for the data.
+	// These objects are owned during the decode process. Ownership is passed
+	// to a constructed CSuplMessageBase derived wrapper class, which is
+	// returned to the calling function on completion of the decode operation.
+	ASN1T_ULP_PDU* iData;
+	ASN1C_ULP_PDU* iControl;
+	};
+
+#endif //SUPL_ASN1_DECODER_IMPL_H