diff -r 65e91466a14b -r b7e5ed8c1342 omasuplasnconverterstubimpl/src/asnimplementationbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omasuplasnconverterstubimpl/src/asnimplementationbase.cpp Tue Sep 07 08:19:48 2010 +0300 @@ -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 +#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