--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/src/jniarrayutils.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 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 "jniarrayutils.h"
+#include "wchar.h"
+
+
+OS_EXPORT int JNIArrayUtils::CopyToJava(JNIEnv& aJni, const char* aNativeBuffer, int aNativeBufferLength,
+ jbyteArray aJavaBuffer, int aOffset, int aLength)
+{
+
+ int length = (aNativeBufferLength < aLength) ? aNativeBufferLength : aLength;
+
+
+ char* nativeBufferPtr = const_cast<char *>(aNativeBuffer);
+ jbyte* jNativeBufferPtr = reinterpret_cast<jbyte*>(nativeBufferPtr);
+ aJni.SetByteArrayRegion(aJavaBuffer, aOffset, length, jNativeBufferPtr);
+ return length;
+}
+
+
+OS_EXPORT int JNIArrayUtils::CopyToNative(JNIEnv& aJni, jbyteArray aJavaBuffer,
+ int aOffset, int aLength, char* aNativeBuffer)
+{
+ char* nativeBufferPtr = const_cast<char*>(aNativeBuffer);
+ jbyte* jNativeBufferPtr = reinterpret_cast<jbyte*>(nativeBufferPtr);
+ aJni.GetByteArrayRegion(aJavaBuffer, aOffset, aLength, jNativeBufferPtr);
+ return aLength;
+}
+
+
+OS_EXPORT jstring JNIArrayUtils::WStringToJavaString(JNIEnv& aJni, const wchar_t* aString, const int aLength)
+{
+ wchar_t* nativeCharArray = const_cast<wchar_t*>(aString);
+ const jchar* stringPtr = reinterpret_cast<jchar*>(nativeCharArray);
+ const jsize stringLength = aLength;
+ jstring jniString = aJni.NewString(stringPtr, stringLength);
+ return jniString;
+}
+