landmarks/locationlandmarks/converter/src/EPos_CPosLmOutput.cpp
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/landmarks/locationlandmarks/converter/src/EPos_CPosLmOutput.cpp	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2005 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: Abstract base class for encoder output.
+*
+*
+*/
+
+
+// INCLUDE FILES
+#include    <s32strm.h>
+#include    <utf.h>
+#include    "EPos_CPosLmOutput.h"
+#include    "EPos_PosLmConverterUtils.h"
+
+// CONSTANTS
+const TInt KPosUtf8StringLength = 40;
+const TInt KPosTUintMaxStringLength = 10;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::CPosLmOutput
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CPosLmOutput::CPosLmOutput()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::BaseConstructL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPosLmOutput::BaseConstructL(RWriteStream& aWriteStream)
+    {
+    iWriteStream = &aWriteStream;
+    }
+
+// Destructor
+CPosLmOutput::~CPosLmOutput()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::WriteL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPosLmOutput::WriteL(const TDesC16& aDes)
+    {
+    CheckLowDiskL(aDes);
+
+    TBuf8<KPosUtf8StringLength> utf8;
+    TPtrC16 unicode(aDes);
+
+    while (unicode.Length() != 0)
+        {
+        TInt returnValue =
+            CnvUtfConverter::ConvertFromUnicodeToUtf8(utf8, unicode);
+        User::LeaveIfError(returnValue);
+
+        iWriteStream->WriteL(utf8);
+
+        // Remove the converted source text part
+        unicode.Set(unicode.Right(returnValue));
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::WriteAndDeleteL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPosLmOutput::WriteAndDeleteL(TDesC16* aDes)
+    {
+    WriteL(*aDes);
+    CleanupStack::PopAndDestroy(aDes);
+    }
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::WriteTRealL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPosLmOutput::WriteTRealL(TReal aValue)
+    {
+    TBuf<KDefaultRealWidth> buf;
+    PosLmConverterUtils::RealToDesL(aValue, buf);
+
+    WriteL(buf);
+    }
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::WriteTUintL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPosLmOutput::WriteTUintL(TUint aValue)
+    {
+    TBuf<KPosTUintMaxStringLength> buf;
+    buf.Num(aValue);
+
+    WriteL(buf);
+    }
+
+// -----------------------------------------------------------------------------
+// CPosLmOutput::CommitL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPosLmOutput::CommitL()
+    {
+    iWriteStream->CommitL();
+    }
+
+//  End of File