--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/Parser2/SrcXmlSerializer/TPEngWriter.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2004 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: Content writer for the XML Serializer.
+*
+*/
+
+#ifndef __TPENGWRITER_H__
+#define __TPENGWRITER_H__
+
+// INCLUDES
+#include <e32base.h>
+
+
+
+// CLASS DECLARATION
+/**
+ * Content writer for the XML Serializer.
+ *
+ * Simple class encapsulating the overflow
+ * safe handling of the write buffer.
+ *
+ * @lib PEngParser.lib
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( TPEngWriter )
+ {
+
+public: // Constructor and destructor
+
+ /**
+ * C++ constructor.
+ * @param aBuffer Reference to buffer where
+ * to write.
+ */
+ TPEngWriter( TDes8& aBuffer );
+
+
+public: //New buffer handling methods
+
+
+ /**
+ * Writes text to destination
+ * buffer. Leaves with KErrOverflow
+ * if the passed aText doesn't fit in the
+ * buffer. Returns TPtrC8 pointing to text
+ * just wrote to the buffer.
+ * (Returned pointer descriptor stays valid
+ * untill the text is reversed beoynd the
+ * start position of current write operation.)
+ *
+ * @since 2.1
+ * @param aText Text to write.
+ * @return Pointer descriptor pointing to
+ * just written text. (Pointer descriptor
+ * stays valid until the buffer is reversed
+ * beyond the text's start position.)
+ */
+ const TPtrC8 WriteL( const TDesC8& aText );
+
+
+ /**
+ * Writes a character to destination
+ * buffer. Leaves with KErrOverflow
+ * if the character doesn't fit in the
+ * buffer.
+ *
+ * @since 2.1
+ * @param aCharacter Character to write.
+ */
+ void WriteL( TUint8 aCharacter );
+
+
+
+ /**
+ * Gets the write buffers current length.
+ *
+ * @since 2.1
+ * @return Write buffers current length.
+ */
+ TInt CurrentLength();
+
+
+ /**
+ * Reverses the write buffer to required
+ * length.
+ *
+ * If required length aLength is greater
+ * than current buffer length,
+ * returns KErrUnderflow. Else returns KErrNone.
+ *
+ * @since 2.1
+ * @param aLength Length to reverse to.
+ * @return KErrNone or KErrUnderflow.
+ */
+ TInt ReverseTo( TInt aLength );
+
+
+
+protected: // Data
+
+ ///<Reference to buffer to write to.
+ TDes8& iBuffer;
+ };
+
+#endif // __TPENGWRITER_H__
+
+// End of File