PECengine/Parser2/SrcXmlSerializer/TPEngWriter.h
changeset 0 094583676ce7
--- /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