diff -r 000000000000 -r 1bce908db942 multimediacommsengine/mmceshared/src/mceserial.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/mmceshared/src/mceserial.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,1108 @@ +/* +* Copyright (c) 2007 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: +* +*/ + + + + +#include "mceserial.h" +#include "mcefactory.h" +#include "ecam.h" + + + +// ============================ MEMBER FUNCTIONS =============================== +// MceSerial + +// ----------------------------------------------------------------------------- +// MceSerial::DecodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::DecodeL( TDes8& aString, RReadStream& aReadStream ) + { + TUint32 len = aReadStream.ReadUint32L(); + if ( len > 0 ) + { + aReadStream.ReadL( aString, len ); + } + else + { + aString.SetLength( 0 ); + } + } + +// ----------------------------------------------------------------------------- +// MceSerial::EncodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::EncodeL( const TDesC8& aString, RWriteStream& aWriteStream ) + { + aWriteStream.WriteUint32L( aString.Length() ); + if ( aString.Length() > 0 ) + { + aWriteStream.WriteL( aString ); + } + } + +// ----------------------------------------------------------------------------- +// MceSerial::EncodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::EncodeL( HBufC8* aString, RWriteStream& aWriteStream ) + { + if ( aString ) + { + EncodeL( *aString, aWriteStream ); + } + else + { + EncodeL( KNullDesC8, aWriteStream ); + } + } + +// ----------------------------------------------------------------------------- +// MceSerial::DecodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::DecodeL( HBufC8*& aBuffer, RReadStream& aReadStream ) + { + delete aBuffer; + aBuffer = NULL; + + TUint32 len = aReadStream.ReadUint32L(); + + if ( len > 0 ) + { + HBufC8* tmpBuffer = HBufC8::NewLC ( len ); + TPtr8 bufPtr = tmpBuffer->Des(); + aReadStream.ReadL( bufPtr, len ); + CleanupStack::Pop( tmpBuffer ); + aBuffer = tmpBuffer; + } + else + { + aBuffer = KNullDesC8().AllocL(); + } + } + +// ----------------------------------------------------------------------------- +// MceSerial::DecodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::DecodeL( CDesC8Array*& aArray, RReadStream& aReadStream ) + { + delete aArray; + aArray = NULL; + + TInt count = aReadStream.ReadUint32L(); + CDesC8ArrayFlat* tmpArray = new (ELeave) CDesC8ArrayFlat( KMceArrayGranularity ); + CleanupStack::PushL( tmpArray ); + for ( int i=0;iDes(); + aReadStream.ReadL( ptr , length ); + tmpArray->AppendL( *item ); + CleanupStack::PopAndDestroy( item );//item + } + + CleanupStack::Pop( tmpArray ); + aArray = tmpArray; + } + +// ----------------------------------------------------------------------------- +// MceSerial::EncodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::EncodeL( CDesC8Array* aArray, RWriteStream& aWriteStream ) + { + TInt count = aArray ? aArray->MdcaCount() : 0; + aWriteStream.WriteUint32L( count ); + for ( int i=0;iMdcaPoint( i ); + aWriteStream.WriteUint32L( item.Length() ); + aWriteStream.WriteL( item ); + } + } + +// ----------------------------------------------------------------------------- +// MceSerial::DecodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::DecodeL( TMceMediaId& aId, RReadStream& aReadStream ) + { + aId.iAppId = aReadStream.ReadUint32L(); + aId.iId = aReadStream.ReadUint32L(); + } + +// ----------------------------------------------------------------------------- +// MceSerial::EncodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::EncodeL( TMceMediaId aId, RWriteStream& aWriteStream ) + { + aWriteStream.WriteUint32L( aId.iAppId ); + aWriteStream.WriteUint32L( aId.iId ); + } + +// ----------------------------------------------------------------------------- +// MceSerial::EncodeL +// ----------------------------------------------------------------------------- +// +void MceSerial::EncodeL( RArray& aArray, + RWriteStream& aWriteStream ) + { + TInt count = aArray.Count(); + aWriteStream.WriteUint32L( count ); + for (int i=0; i& aArray, + RReadStream& aReadStream ) + { + aArray.Reset(); + TInt count = aReadStream.ReadUint32L(); + for ( int i=0; i < count; i++ ) + { + TMceCryptoContext item = + static_cast ( aReadStream.ReadInt32L() ); + aArray.InsertL( item, i ); + } + } + + +// ============================ MEMBER FUNCTIONS =============================== +// CMceMsgBase + +// ----------------------------------------------------------------------------- +// CMceMsgBase::CMceMsgBase +// Initialize all members, since this class is instantiated also from stack, +// without using new (ELeave). That means the members are not automatically +// initialized to zero, like CBase derived objects would normally do if +// allocated from the heap. +// ----------------------------------------------------------------------------- +// +CMceMsgBase::CMceMsgBase( TMceItcDataType aType ) + : iEncodeBuf( NULL ), + iType( aType ), + iPushed( EFalse ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::~CMceMsgBase +// ----------------------------------------------------------------------------- +// +CMceMsgBase::~CMceMsgBase() + { + MCE_DELETE( iEncodeBuf ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::Type +// ----------------------------------------------------------------------------- +// +TMceItcDataType CMceMsgBase::Type() + { + return iType; + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::EncodeBuffer +// ----------------------------------------------------------------------------- +// +CBufFlat& CMceMsgBase::EncodeBuffer() + { + return *iEncodeBuf; + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::EncodeBufferCloneL +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgBase::EncodeBufferCloneL() + { + HBufC8* clone = NULL; + if ( iEncodeBuf ) + { + clone = iEncodeBuf->Ptr(0).AllocL(); + } + return clone; + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::DecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::DecodeL( const TDesC8& aContext ) + { + + RDesReadStream readStream( aContext ); + CleanupClosePushL( readStream ); + + TBool pushed = iPushed; + iPushed = ETrue; + + DoDecodeL( readStream ); + + iPushed = pushed; + + CleanupStack::PopAndDestroy(); // readStream + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::DoDecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::DoDecodeL( MMceComSerializationContext& aSerCtx ) + { + DoDecodeL( aSerCtx.ReadStream() ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::PushL +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::PushL() + { + User::LeaveIfError( iPushed ? KErrGeneral : KErrNone ); + iPushed = ETrue; + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::Pop +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::Pop() + { + iPushed = EFalse; + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::OwnershipRollbackPushLC +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::OwnershipRollbackPushLC() + { + TCleanupItem paramsCleanup( OwnershipRollback, this ); + CleanupStack::PushL( paramsCleanup ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::OwnershipRollback +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::OwnershipRollback( TAny* aMsg ) + { + if ( !aMsg ) + { + return; + } + CMceMsgBase* msg = reinterpret_cast< CMceMsgBase* >( aMsg ); + msg->DoOwnershipRollback(); + } + +// ----------------------------------------------------------------------------- +// CMceMsgBase::OwnershipRollback +// ----------------------------------------------------------------------------- +// +void CMceMsgBase::DoOwnershipRollback() + { + } + +// ============================ MEMBER FUNCTIONS =============================== +// CMceMsgTextArray + + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::CMceMsgTextArray +// ----------------------------------------------------------------------------- +// +CMceMsgTextArray::CMceMsgTextArray() + : CMceMsgBase( EMceItcMsgTypeTextArray ), + iArray( NULL ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::CMceMsgTextArray +// ----------------------------------------------------------------------------- +// +CMceMsgTextArray::CMceMsgTextArray( CDesC8Array& aArray ) + : CMceMsgBase( EMceItcMsgTypeTextArray ), + iArray( &aArray ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::~CMceMsgTextArray +// ----------------------------------------------------------------------------- +// +CMceMsgTextArray::~CMceMsgTextArray() + { + if ( iPushed ) + { + LocalClose(); + } + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::EncodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgTextArray::EncodeL() + { + delete iEncodeBuf; + iEncodeBuf = NULL; + iEncodeBuf = CBufFlat::NewL( KMceExternalizeBufferExpandSize ); + + RBufWriteStream writeStream( *iEncodeBuf, 0 ); + writeStream.PushL(); + + MceSerial::EncodeL( iArray, writeStream ); + + CleanupStack::PopAndDestroy(); // writeStream + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::DoDecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgTextArray::DoDecodeL( RReadStream& aReadStream ) + { + MceSerial::DecodeL( iArray, aReadStream ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::Close +// ----------------------------------------------------------------------------- +// +void CMceMsgTextArray::Close() + { + LocalClose(); + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::LocalClose +// ----------------------------------------------------------------------------- +// +void CMceMsgTextArray::LocalClose() + { + MCE_DELETE( iArray ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgTextArray::Array +// ----------------------------------------------------------------------------- +// +CDesC8Array* CMceMsgTextArray::Array() + { + MCE_MOVE_ARRPTR( iArray, ret ); + return ret; + } + + +// ============================ MEMBER FUNCTIONS =============================== +// CMceMsgSIPData + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::CMceMsgSIPData +// ----------------------------------------------------------------------------- +// +CMceMsgSIPData::CMceMsgSIPData() + : CMceMsgBase( EMceItcMsgTypeSIPData ), + iTrxType( (TUint32)KErrNotFound ), + iSIPHeaders( NULL ), + iContentType( NULL ), + iContentTypeId( EMceContentTypeUserDefined ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::CMceMsgSIPData +// ----------------------------------------------------------------------------- +// +CMceMsgSIPData::CMceMsgSIPData( TUint32 aType, + CDesC8Array& aSIPHeaders, + HBufC8& aContentType ) + : CMceMsgBase( EMceItcMsgTypeSIPData ), + iTrxType( aType ), + iSIPHeaders( &aSIPHeaders ), + iContentType ( &aContentType ), + iContentTypeId( EMceContentTypeUserDefined ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::CMceMsgSIPData +// ----------------------------------------------------------------------------- +// +CMceMsgSIPData::CMceMsgSIPData(TMceItcDataType aType ) + : CMceMsgBase( aType ), + iTrxType( (TUint32)KErrNotFound ), + iSIPHeaders( NULL ), + iContentType( NULL ), + iContentTypeId( EMceContentTypeUserDefined ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::CMceMsgSIPData +// ----------------------------------------------------------------------------- +// +CMceMsgSIPData::CMceMsgSIPData( TMceItcDataType aType, + TUint32 aTrxType, + CDesC8Array& aSIPHeaders, + HBufC8& aContentType ) + : CMceMsgBase( aType ), + iTrxType( aTrxType ), + iSIPHeaders( &aSIPHeaders ), + iContentType( &aContentType ), + iContentTypeId( EMceContentTypeUserDefined ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::~CMceMsgSIPData +// ----------------------------------------------------------------------------- +// +CMceMsgSIPData::~CMceMsgSIPData() + { + if ( iPushed ) + { + LocalClose(); + } + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::EncodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPData::EncodeL() + { + delete iEncodeBuf; + iEncodeBuf = NULL; + + iEncodeBuf = CBufFlat::NewL( KMceExternalizeBufferExpandSize ); + + RBufWriteStream writeStream( *iEncodeBuf, 0 ); + writeStream.PushL(); + + EncodeStreamL( writeStream ); + + CleanupStack::PopAndDestroy(); // writeStream + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::EncodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPData::EncodeStreamL( RBufWriteStream& aWriteStream ) + { + aWriteStream.WriteUint32L( iTrxType ); + MceSerial::EncodeL( iSIPHeaders, aWriteStream ); + MceSerial::EncodeL( iContentType, aWriteStream ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::DoDecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPData::DoDecodeL( RReadStream& aReadStream ) + { + iTrxType = aReadStream.ReadUint32L(); + MceSerial::DecodeL( iSIPHeaders, aReadStream ); + MceSerial::DecodeL( iContentType, aReadStream ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::Close +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPData::Close() + { + LocalClose(); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::LocalClose +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPData::LocalClose() + { + MCE_DELETE( iContentType ); + MCE_DELETE( iSIPHeaders ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::DoOwnershipRollback +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPData::DoOwnershipRollback() + { + iSIPHeaders = 0; + iContentType = 0; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::Headers +// ----------------------------------------------------------------------------- +// +CDesC8Array* CMceMsgSIPData::Headers() + { + MCE_MOVE_ARRPTR( iSIPHeaders, ret ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPData::ContentType +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPData::ContentType() + { + MCE_MOVE_BUFPTR( iContentType, ret ); + return ret; + } + + +// ============================ MEMBER FUNCTIONS =============================== +// CMceMsgSIPReply + + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::CMceMsgSIPReply +// ----------------------------------------------------------------------------- +// +CMceMsgSIPReply::CMceMsgSIPReply() + : CMceMsgSIPData( EMceItcMsgTypeSIPReply ), + iReason( NULL ), + iCode( (TUint32)KErrNotFound ), + iReasonAsPoolIndex( KErrNone ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::CMceMsgSIPReply +// ----------------------------------------------------------------------------- +// +CMceMsgSIPReply::CMceMsgSIPReply( TUint32 aTrxType, + HBufC8& aReason, + TUint32 aCode, + CDesC8Array& aSIPHeaders, + HBufC8& aContentType ) + : CMceMsgSIPData( EMceItcMsgTypeSIPReply, aTrxType, aSIPHeaders, aContentType ), + iReason( &aReason ), + iCode( aCode ), + iReasonAsPoolIndex( KErrNone ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::CMceMsgSIPReply +// ----------------------------------------------------------------------------- +// +CMceMsgSIPReply::CMceMsgSIPReply( HBufC8& aReason, + TUint32 aCode, + CDesC8Array& aSIPHeaders, + HBufC8& aContentType) + : CMceMsgSIPData( EMceItcMsgTypeSIPReply, + (TUint32)KErrNotFound, + aSIPHeaders, aContentType ), + iReason( &aReason ), + iCode( aCode ), + iReasonAsPoolIndex( KErrNone ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::~CMceMsgSIPReply +// ----------------------------------------------------------------------------- +// +CMceMsgSIPReply::~CMceMsgSIPReply() + { + if ( iPushed ) + { + MCE_DELETE( iReason ); + } + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::EncodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPReply::EncodeL() + { + delete iEncodeBuf; + iEncodeBuf = NULL; + + iEncodeBuf = CBufFlat::NewL( KMceExternalizeBufferExpandSize ); + + RBufWriteStream writeStream( *iEncodeBuf, 0 ); + writeStream.PushL(); + + CMceMsgSIPData::EncodeStreamL( writeStream ); + + MceSerial::EncodeL( iReason, writeStream ); + writeStream.WriteUint32L( iCode ); + + CleanupStack::PopAndDestroy(); // writeStream + } + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::DoDecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPReply::DoDecodeL( RReadStream& aReadStream ) + { + CMceMsgSIPData::DoDecodeL( aReadStream ); + + MceSerial::DecodeL( iReason, aReadStream ); + iCode = aReadStream.ReadUint32L(); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::Close +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPReply::Close() + { + LocalClose(); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::LocalClose +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPReply::LocalClose() + { + CMceMsgSIPData::Close(); + MCE_DELETE( iReason ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPReply::Reason +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPReply::Reason() + { + MCE_MOVE_BUFPTR( iReason, ret ); + return ret; + } + + +// ============================ MEMBER FUNCTIONS =============================== +// CMceMsgSIPRequest + + + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::CMceMsgSIPRequest +// ----------------------------------------------------------------------------- +// +CMceMsgSIPRequest::CMceMsgSIPRequest() + : CMceMsgSIPData( EMceItcMsgTypeSIPRequest ), + iMethod( NULL ) + { + } + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::CMceMsgSIPRequest +// ----------------------------------------------------------------------------- +// + + +CMceMsgSIPRequest::CMceMsgSIPRequest( HBufC8& aMethod, + CDesC8Array& aSIPHeaders, + HBufC8& aContentType ) + + : CMceMsgSIPData( EMceItcMsgTypeSIPRequest, + (TUint32)KErrNotFound, + aSIPHeaders, + aContentType ), + + iMethod (&aMethod) + + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::~CMceMsgSIPRequest +// ----------------------------------------------------------------------------- +// +CMceMsgSIPRequest::~CMceMsgSIPRequest() + { + if ( iPushed ) + { + MCE_DELETE( iMethod ); + } + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::EncodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPRequest::EncodeL() + { + delete iEncodeBuf; + iEncodeBuf = NULL; + iEncodeBuf = CBufFlat::NewL( KMceExternalizeBufferExpandSize ); + + RBufWriteStream writeStream( *iEncodeBuf, 0 ); + writeStream.PushL(); + + MceSerial::EncodeL( iMethod, writeStream ); + + CMceMsgSIPData::EncodeStreamL( writeStream ); + + CleanupStack::PopAndDestroy(); // writeStream + } + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::DoDecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPRequest::DoDecodeL( RReadStream& aReadStream ) + { + + MceSerial::DecodeL( iMethod, aReadStream ); + CMceMsgSIPData::DoDecodeL( aReadStream ); + } + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::Close +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPRequest::Close() + { + LocalClose(); + } + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::LocalClose +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPRequest::LocalClose() + { + CMceMsgSIPData::Close(); + MCE_DELETE( iMethod ); + } + + +// ----------------------------------------------------------------------------- +// CMceMsgSIPRequest::RequestMethod +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPRequest::RequestMethod() + { + return iMethod; + } + + +// ============================ MEMBER FUNCTIONS =============================== +// CMceMsgSipEvent + + +// ----------------------------------------------------------------------------- +// CMceMsgSipEvent::CMceMsgSipEvent +// ----------------------------------------------------------------------------- +// +CMceMsgSIPEvent::CMceMsgSIPEvent() + : CMceMsgSIPData( EMceItcMsgTypeEvent ), + iId( ( TUint32 ) KErrNotFound ), + iDialogId( ( TUint32 ) KErrNotFound ), + iEventType( ( TUint32 ) EMceItcEventTypeEither ), + iRecipient( NULL ), + iOriginator( NULL ), + iEventHeader( NULL ), + iReferTo( NULL ), + iReferType( CMceRefer::ENoSuppression ), + iRefreshInterval( ( TUint32 ) KErrNotFound ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::CMceMsgSIPEvent +// ----------------------------------------------------------------------------- +// +CMceMsgSIPEvent::CMceMsgSIPEvent( + TUint32 aId, + TUint32 aDialogId, + TMceItcEventType aEventType, + HBufC8* aRecipient, + HBufC8* aOriginator, + HBufC8* aEventHeader, + HBufC8* aReferTo, + CMceRefer::TType aReferType, + TUint32 aRefreshInterval, + CDesC8Array* aSIPHeaders, + HBufC8* aContentType ) + : CMceMsgSIPData( EMceItcMsgTypeEvent, + (TUint32)KErrNotFound, + *aSIPHeaders, + *aContentType ), + iId( aId ), + iDialogId( aDialogId ), + iEventType( aEventType ), + iRecipient( aRecipient ), + iOriginator( aOriginator ), + iEventHeader( aEventHeader ), + iReferTo( aReferTo ), + iReferType( aReferType ), + iRefreshInterval( aRefreshInterval ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::CMceMsgSIPEvent +// ----------------------------------------------------------------------------- +// +CMceMsgSIPEvent::CMceMsgSIPEvent( TUint32 aId, + TUint32 aDialogId, + TMceItcEventType aEventType, + CMceRefer::TType aReferType, + TUint32 aRefreshInterval, + CDesC8Array* aSIPHeaders, + HBufC8* aContentType ) + : CMceMsgSIPData( EMceItcMsgTypeEvent, + (TUint32)KErrNotFound, + *aSIPHeaders, + *aContentType ), + iId( aId ), + iDialogId( aDialogId ), + iEventType( aEventType ), + iRecipient( NULL ), + iOriginator( NULL ), + iEventHeader( NULL ), + iReferTo( NULL ), + iReferType( aReferType ), + iRefreshInterval( aRefreshInterval ) + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::~CMceMsgSIPEvent +// ----------------------------------------------------------------------------- +// +CMceMsgSIPEvent::~CMceMsgSIPEvent() + { + MCE_DELETE( iRecipient ); + MCE_DELETE( iOriginator ); + MCE_DELETE( iEventHeader ); + MCE_DELETE( iReferTo ); + MCE_DELETE( iSIPHeaders ); + MCE_DELETE( iContentType ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::EncodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPEvent::EncodeL() + { + delete iEncodeBuf; + iEncodeBuf = NULL; + iEncodeBuf = CBufFlat::NewL( KMceExternalizeBufferExpandSize ); + + RBufWriteStream writeStream( *iEncodeBuf, 0 ); + writeStream.PushL(); + writeStream.WriteUint32L( iId ); + writeStream.WriteUint32L( iDialogId ); + writeStream.WriteUint32L( iEventType ); + MceSerial::EncodeL( iRecipient, writeStream ); + MceSerial::EncodeL( iOriginator, writeStream ); + MceSerial::EncodeL( iEventHeader, writeStream ); + MceSerial::EncodeL( iReferTo, writeStream ); + writeStream.WriteUint32L( iReferType ); + writeStream.WriteUint32L( iRefreshInterval ); + + CMceMsgSIPData::EncodeStreamL( writeStream ); + + CleanupStack::PopAndDestroy(); // writeStream + } + +// ----------------------------------------------------------------------------- +// CMceMsgSipEvent::DoDecodeL +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPEvent::DoDecodeL( RReadStream& aReadStream ) + { + iId = aReadStream.ReadUint32L(); + iDialogId = aReadStream.ReadUint32L(); + iEventType = aReadStream.ReadUint32L(); + MceSerial::DecodeL( iRecipient, aReadStream ); + MceSerial::DecodeL( iOriginator, aReadStream ); + MceSerial::DecodeL( iEventHeader, aReadStream ); + MceSerial::DecodeL( iReferTo, aReadStream ); + iReferType = aReadStream.ReadUint32L(); + iRefreshInterval = aReadStream.ReadUint32L(); + CMceMsgSIPData::DoDecodeL( aReadStream ); + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::Close +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPEvent::Close() + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::LocalClose +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPEvent::LocalClose() + { + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::DoOwnershipRollback +// ----------------------------------------------------------------------------- +// +void CMceMsgSIPEvent::DoOwnershipRollback() + { + iRecipient = 0; + iOriginator = 0; + iEventHeader = 0; + iReferTo = 0; + iSIPHeaders = 0; + iContentType = 0; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::Id +// ----------------------------------------------------------------------------- +// +TUint32 CMceMsgSIPEvent::Id() + { + return iId; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::DialogId +// ----------------------------------------------------------------------------- +// +TUint32 CMceMsgSIPEvent::DialogId() + { + return iDialogId; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::EventType +// ----------------------------------------------------------------------------- +// +TUint32 CMceMsgSIPEvent::EventType() + { + return iEventType; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::Recipient +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPEvent::Recipient() + { + MCE_MOVE_BUFPTR( iRecipient, ret ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::Originator +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPEvent::Originator() + { + MCE_MOVE_BUFPTR( iOriginator, ret ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::EventHeader +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPEvent::EventHeader() + { + MCE_MOVE_BUFPTR( iEventHeader, ret ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::ReferTo +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPEvent::ReferTo() + { + MCE_MOVE_BUFPTR( iReferTo, ret ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::ReferType +// ----------------------------------------------------------------------------- +// +TUint32 CMceMsgSIPEvent::ReferType() + { + return iReferType; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::RefreshInterval +// ----------------------------------------------------------------------------- +// +TUint32 CMceMsgSIPEvent::RefreshInterval() + { + return iRefreshInterval; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::SIPHeaders +// ----------------------------------------------------------------------------- +// +CDesC8Array* CMceMsgSIPEvent::SIPHeaders() + { + MCE_MOVE_ARRPTR( iSIPHeaders, ret ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CMceMsgSIPEvent::ContentType +// ----------------------------------------------------------------------------- +// +HBufC8* CMceMsgSIPEvent::ContentType() + { + MCE_MOVE_BUFPTR( iContentType, ret ); + return ret; + } + + + +// End of File