--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/inc/javacommonutils.h Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,152 @@
+/*
+* Copyright (c) 2007-2007 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:
+*
+*/
+
+
+#ifndef JAVACOMMONUTILS_H
+#define JAVACOMMONUTILS_H
+
+#include <string>
+#include "javaosheaders.h"
+
+#include <iostream>
+#include <ostream>
+
+namespace java
+{
+namespace util
+{
+
+class JavaCommonUtils
+{
+public:
+ OS_IMPORT static int stringToInt(const std::string& str);
+ OS_IMPORT static long long stringToLongLong(const std::string& str);
+ OS_IMPORT static std::string intToString(const int& value);
+ OS_IMPORT static std::string longLongToString(const long long& value);
+ OS_IMPORT static int wstringToInt(const std::wstring& str);
+ OS_IMPORT static std::wstring intToWstring(const int& value);
+ OS_IMPORT static std::wstring longLongToWstring(const long long& value);
+ OS_IMPORT static long long wstringToLongLong(const std::wstring& str);
+
+ /**
+ * Converts the null terminated UTF-8 string given as parameter
+ * to UTF-16 wstring that is returned.
+ * @param chr the null terminated UTF-8 string to be converted
+ * @return UTF-16 wstring
+ * @throws ExceptionBase if conversion fails
+ */
+ OS_IMPORT static std::wstring utf8ToWstring(const char* chr);
+
+ /**
+ * Converts UTF-16 (UCS-2) wstring to null terminated UTF-8 string
+ * User must note that this method allocates memory for UTF-8 content.
+ * User must delete[] the memory once it is not needed any more.
+ * @param str UTF-16 wstring to be converted
+ * @return new null terminated UTF-8 string
+ * @throws ExceptionBase if conversion fails
+ */
+ OS_IMPORT static char* wstringToUtf8(const std::wstring& str);
+
+ /**
+ * Strips characters at the beginning and end of the string.
+ * @param aStr Stripped string. Output argument.
+ * @param aStrippedChar Character what is stripped away.
+ * <p>
+ * <h3>Example</h3>
+ * <pre>
+ * std::wstring str(L"\n EFFFFFFF \t");
+ * trimWstring(str,L'\n');
+ * trimWstring(str,L'\t');
+ * //Note: For some reason 'space' character must be stripped last.
+ * trimWstring(str,L' ');
+ * //Result is 'EFFFFFFF'.
+ *</pre>
+ */
+ OS_IMPORT static void trimWstring(std::wstring& aStr,const wchar_t& aStrippedChar);
+
+ /**
+ * Encode string to base64 string.
+ *
+ * @param aData to be encoded.
+ * @return base64 encoded string.
+ */
+ OS_IMPORT static std::string base64encode(const std::string& aData);
+
+ /**
+ * Decode base64 string.
+ *
+ * @param aData base64 encoded string.
+ * @return decoded string.
+ */
+ OS_IMPORT static std::string base64decode(const std::string& aData);
+
+ /**
+ * Decodes percent-encoded UTF-8 characters embedded to UCS-2 string.
+ * After the characters has been decoded, they are converted to UCS-2.
+ * When the whole string is in UCS-2 format, it is returned.
+ * @param str UTF-16 (UCS-2) wstring that contains %-encoded UTF-8 characters,
+ * for example "%C3%80%C3%80NEST%C3%80.EXE"
+ * @return UTF-16 wstring, for example "ÄÄNESTÄ.EXE"
+ * @throws ExceptionBase if UTF-8 to UTF-16 conversion fails
+ */
+ OS_IMPORT static std::wstring percentDecode(const std::wstring& str);
+
+public:
+ /**
+ * Decodes one %<X><Y> sequence.
+ * @param first the character <X>
+ * @param sec the character <Y>
+ * @return decoded char value 0-255
+ * @throws ExceptionBase if <X> and <Y> are not hexadecimal characters
+ */
+ static char decodeOnePercentSeq(wchar_t first, wchar_t sec);
+};
+
+// A simple class for storing char array that is deleted automatically
+// when going out of scope.
+class ScopedCharArray
+{
+public:
+ ScopedCharArray(int size) : mBuffer(0)
+ {
+ mBuffer = new char[size];
+ }
+ ~ScopedCharArray()
+ {
+ delete [] mBuffer;
+ }
+
+ char* get()
+ {
+ return mBuffer;
+ }
+
+private:
+ ScopedCharArray(); //No default constructor allowed
+ ScopedCharArray(const ScopedCharArray&); //No copy constructor allowed
+ ScopedCharArray& operator= (const ScopedCharArray&); //No Assignment operator allowed
+
+private:
+ char* mBuffer;
+};
+
+
+} //end namespace util
+} //end namespace java
+
+#endif // JAVACOMMONUTILS_H
+