omasuplasnconverterstubimpl/src/asnimplementationbase.cpp
changeset 0 0ce1b5ce9557
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omasuplasnconverterstubimpl/src/asnimplementationbase.cpp	Thu Jan 14 07:14:53 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 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: Implementation of ASN plugin
+*
+*/
+
+#include "asnimplementationbase.h"
+#include <e32base.h>
+#include "epos_comasuplstart.h"
+#include "epos_comasuplresponse.h"
+#include "epos_comasuplposinit.h"
+#include "epos_comasuplpos.h"
+#include "epos_comasuplinit.h"
+#include "epos_comasuplend.h"
+#include "epos_comasuplauthrequest.h"
+#include "epos_comasuplauthresponse.h"
+#include "cstubsuplstart.h"
+#include "cstubsuplresponse.h"
+#include "cstubsuplposinit.h"
+#include "cstubsuplpos.h"
+#include "cstubsuplinit.h"
+#include "cstubsuplend.h"
+#include "cstubsuplauthrequest.h"
+#include "cstubsuplauthresponse.h"
+
+CAsnImplementationBase::CAsnImplementationBase()
+    {
+    
+    }
+// -----------------------------------------------------------------------------
+// CAsnImplementationBase::NewL
+// Other Items were commented in a header
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CAsnImplementationBase* CAsnImplementationBase::NewL()
+    {
+    CAsnImplementationBase* self = new (ELeave) CAsnImplementationBase;
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+// -----------------------------------------------------------------------------
+// CAsnImplementationBase::EncodeL
+// Other Items were commented in a header
+// -----------------------------------------------------------------------------
+//
+HBufC8* CAsnImplementationBase::EncodeL(COMASuplAsnMessageBase* asnMessage, TInt& aErrorCode)
+    {
+    //Initialize your library for encoding...
+    
+    //Encoding operations to be done here!!
+    HBufC8* encodedBuffer;
+    if ( asnMessage )
+        encodedBuffer = asnMessage->EncodeL(aErrorCode);
+    else 
+        encodedBuffer = NULL;
+        
+    return encodedBuffer;
+    }
+// -----------------------------------------------------------------------------
+// CAsnImplementationBase::DecodeL
+// Other Items were commented in a header
+// -----------------------------------------------------------------------------
+//
+COMASuplAsnMessageBase* CAsnImplementationBase::DecodeL(const TPtrC8& /*aPacket*/,TInt& aErrorCode,TInt& aUnConsumedBytes )
+    {
+    COMASuplAsnMessageBase* self = NULL;
+    aErrorCode = 0;
+    aUnConsumedBytes = 0;
+    
+		//Decoding operations to be done here!!!
+		//Here you will have to decode the buffer using your own ASN library and return the object of appropriate SUPL message class.
+		//e.g. if you finds that decoded message is SUPL_RESPONSE,create object of SUPL_RESPONSE class and call appropriate set methods to fill its all mandatory 
+		//and optional methods. For demostration purpose, here are some set methods for SUPL_RESPONSE
+		//
+		//CStubSuplResponse* lOMASuplResponse = CStubSuplResponse::NewL();
+		//CleanupStack::PushL(lOMASuplResponse);			
+		//TOMASuplVersion lVersion;
+		//TInt lMajor = 1;
+		//TInt lMinor = 0;
+		//TInt lServInd; = 0;
+		//lVersion.SetSuplVersion(lMajor,lMinor,lServInd);
+		//COMASuplSessionID* lSessionId = COMASuplSessionID::NewL();//Set all parameters needed for session id.
+		//lOMASuplResponse->SetMessageBase(lVersion, lSessionId);
+		//lOMASuplResponse->SetMessageLength(20);
+		//TInt lPosMethod = 1;
+		//lOMASuplResponse->SetSuplResponse((TOMASuplPosMethod)lPosMethod);
+		//CleanupStack::Pop();
+		//aErrorCode = KErrNone;
+		//aUnConsumedBytes  = 0;
+		// return lOMASuplResponse;
+
+    return self;
+    }
+// -----------------------------------------------------------------------------
+// CAsnImplementationBase::CreateOMASuplMessageL
+// Other Items were commented in a header
+// -----------------------------------------------------------------------------
+//
+COMASuplAsnMessageBase* CAsnImplementationBase::CreateOMASuplMessageL(COMASuplAsnMessageBase::TSuplMessageType aOMASuplMessageType)
+    {
+    COMASuplAsnMessageBase* suplMsg = NULL;
+    // Creating operations!!
+    switch ( aOMASuplMessageType )
+        {
+        case COMASuplAsnMessageBase::ESUPL_START :
+            {
+            suplMsg = CStubSuplStart::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_RESPONSE :
+            {
+            suplMsg = CStubSuplResponse::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_POSINIT :
+            {
+            suplMsg = CStubSuplPosInit::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_POS :
+            {
+            suplMsg = CStubSuplPos::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_INIT : 
+            {
+            suplMsg = CStubSuplInit::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_END :
+            {
+            suplMsg = CStubSuplEnd::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_AUTH_REQ :
+            {
+            suplMsg = CStubSuplAuthRequest::NewL();
+            break;
+            }
+        case COMASuplAsnMessageBase::ESUPL_AUTH_RESP :
+            {
+            suplMsg = CStubSuplAuthResponse::NewL();
+            break;
+            }
+        default : break ;
+        }
+    return suplMsg;
+    }
+// -----------------------------------------------------------------------------
+// CAsnImplementationBase::~CAsnImplementationBase
+// Other Items were commented in a header
+// -----------------------------------------------------------------------------
+//
+CAsnImplementationBase::~CAsnImplementationBase()
+    {
+    
+    }
+// -----------------------------------------------------------------------------
+// CAsnImplementationBase::ConstructL
+// Other Items were commented in a header
+// -----------------------------------------------------------------------------
+//
+void CAsnImplementationBase::ConstructL()
+    {
+    }
+
+TOMASuplVersion CAsnImplementationBase::GetSuplMessageVersionL(TInt& aErrorCode,const TPtrC8& aSuplAsnMessage)
+	{
+	TOMASuplVersion version;
+	return version;
+	}
\ No newline at end of file