diff -r 000000000000 -r 8e480a14352b messagingfw/sendas/test/sendastestmtm/src/csendastestmessage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/sendas/test/sendastestmtm/src/csendastestmessage.cpp Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,130 @@ +// Copyright (c) 2004-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: +// + +#include "csendastestmessage.h" + +#include + +#include "csendastestaddress.h" + +const TUid KUidSendAsTestMessageStream = {0x10204289}; +const TInt KSendAsTestMessageVersion = 1; + +EXPORT_C CSendAsTestMessage* CSendAsTestMessage::NewL() + { + CSendAsTestMessage* self = new (ELeave) CSendAsTestMessage(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +EXPORT_C CSendAsTestMessage::~CSendAsTestMessage() + { + iAddresses.ResetAndDestroy(); + delete iSubject; + } + +CSendAsTestMessage::CSendAsTestMessage() +: CBase() + { + } + +void CSendAsTestMessage::ConstructL() + { + } + +EXPORT_C const RPointerArray& CSendAsTestMessage::Addresses() const + { + return iAddresses; + } + +EXPORT_C RPointerArray& CSendAsTestMessage::Addresses() + { + return iAddresses; + } + +EXPORT_C void CSendAsTestMessage::SetSubjectL(const TDesC& aSubject) + { + HBufC* temp = aSubject.AllocL(); + delete iSubject; + iSubject = temp; + } + +EXPORT_C const TDesC& CSendAsTestMessage::Subject() const + { + return iSubject == NULL ? KNullDesC() : *iSubject; + } + +EXPORT_C void CSendAsTestMessage::SetBioTypeL(const TUid aBioType) + { + iBioType = aBioType; + } + +EXPORT_C TUid CSendAsTestMessage::BioType() const + { + return iBioType; + } + +EXPORT_C void CSendAsTestMessage::RestoreL(CMsvStore& aStore) + { + RMsvReadStream in; + in.OpenLC(aStore, KUidSendAsTestMessageStream); + InternalizeL(in); + CleanupStack::PopAndDestroy(&in); + } + +EXPORT_C void CSendAsTestMessage::StoreL(CMsvStore& aStore) const + { + RMsvWriteStream out; + out.AssignLC(aStore, KUidSendAsTestMessageStream); + ExternalizeL(out); + out.CommitL(); + CleanupStack::PopAndDestroy(&out); + } + +void CSendAsTestMessage::InternalizeL(RReadStream& aStream) + { + aStream.ReadInt16L(); //version. Not used yet + + iAddresses.ResetAndDestroy(); + TInt count = aStream.ReadInt32L(); + while(count--) + { + CSendAsTestAddress* addressee = CSendAsTestAddress::NewL(); + CleanupStack::PushL(addressee); + addressee->InternalizeL(aStream); + iAddresses.AppendL(addressee); + CleanupStack::Pop(addressee); + } + HBufC* subject = HBufC::NewL(aStream, KMaxTInt); + delete iSubject; + iSubject = subject; + aStream >> iBioType; + } + +void CSendAsTestMessage::ExternalizeL(RWriteStream& aStream) const + { + aStream.WriteInt16L(KSendAsTestMessageVersion); + + TInt count = iAddresses.Count(); + aStream.WriteInt32L(count); + + for (TInt i=0; iExternalizeL(aStream); + + aStream << Subject(); + aStream << iBioType; + }