textrendering/texthandling/sfields/FLDBASE.CPP
changeset 0 1fb32624e06b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textrendering/texthandling/sfields/FLDBASE.CPP	Tue Feb 02 02:02:46 2010 +0200
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 1997-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 "FLDBASE.H"
+#include "FLDSTD.H"
+
+
+///////////////////////////////////////
+// CTextField
+///////////////////////////////////////
+
+ 
+EXPORT_C TStreamId CTextField::StoreL(CStreamStore& aStore) const
+// Assumes everything goes into the head stream.
+// (Must be replaced by concrete pictures that have components)
+/** Stores the field data to a stream store. Concrete field types with no persistent 
+data should override this function to return KNullStreamId.
+
+@param aStore Stream store to which the field data is written. 
+@return The ID of the stream store. */
+	{
+	RStoreWriteStream stream;
+	TStreamId id=stream.CreateLC(aStore);
+    stream<< *this;  // provided by the concrete field
+    stream.CommitL();
+	CleanupStack::PopAndDestroy();
+	return id;
+	}
+
+ 
+EXPORT_C void CTextField::RestoreL(const CStreamStore& aStore,TStreamId aStreamId)
+// Creates a read-stream over aStore, and opens it over the specified stream ID.
+//
+	/** Restores the field data from a stream store. Concrete field types with no persistent 
+	data should override this function to do nothing.
+	
+	@param aStore Stream store containing the field data to restore. 
+	@param aId The ID of the stream store in which the field data was previously 
+	stored. */
+	{
+	RStoreReadStream stream;
+	stream.OpenLC(aStore,aStreamId);
+	stream>> *this;
+	CleanupStack::PopAndDestroy();
+	}
+
+
+
+EXPORT_C void CTextField::ExternalizeL(RWriteStream& /*aStream*/)const
+//
+	/** Externalises the field data. Called by StoreL().
+	
+	Calling this default implementation raises a panic. Concrete field classes 
+	with persistent data must provide their own implementation of this function. 
+	Concrete field classes with no persistent data must provide a StoreL() implementation 
+	that just returns KNullStreamId.
+	
+	@param aStream Not used. */
+	{Panic(EDefaultFieldExternalizeCalled);}
+