--- /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 <msvstore.h>
+
+#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<CSendAsTestAddress>& CSendAsTestMessage::Addresses() const
+ {
+ return iAddresses;
+ }
+
+EXPORT_C RPointerArray<CSendAsTestAddress>& 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; i<count; ++i)
+ iAddresses[i]->ExternalizeL(aStream);
+
+ aStream << Subject();
+ aStream << iBioType;
+ }