diff -r f5050f1da672 -r 04becd199f91 javaextensions/pim/framework/inc.s60/pimjnitools.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/pim/framework/inc.s60/pimjnitools.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,108 @@ +/* +* Copyright (c) 2008 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: Tools for PIM JNI wrappers. + * +*/ + + +#ifndef PIMJNITOOLS_H +#define PIMJNITOOLS_H + +// INCLUDE FILES +#include +#include +#include "pimcommon.h" + +// FORWARD DECLARATIONS +class CPIMItem; + + + +/** + * Creates a new Java integer array from the elements in given native integer + * array. + * + * @param aSourceArray Array of integers. + * + * @return A Java integer array with exactly the same elements as in + * \a aSourceArray or \c NULL in error, which can be taken as + * an out-of-memory situation. + */ +jintArray ConvertToJavaIntArray(JNIEnv& aJniEnv, + const CArrayFix& aSourceArray); + +/** + * Extracts the handles from given items. + * + * @param aJniEnv JNI environment. + * @param aItems Array of items. + * + * @return Java integer array of item handles constructed from the handles + * of \a aItems; or NULL on error, which can be taken as out-of-memory + * situation. + */ +jintArray GetJavaItemHandles(JNIEnv& aJniEnv, + const RPointerArray& aItems); + +/** + * Converts given TPIMDate array to Java int array, splitting each + * source date element to contiguous two target int elements in + * even-odd pairs. + * @li High 32 bits go to even elements (0, 2, 4, ...) + * @li Low 32 bits go to odd elements (1, 3, 5, ...) + * + * @param aDates Source array of dates. + * + * @return New array of Java ints, or \c NULL in error. The length + * of the returned array is 2 * length of \a aDates. + */ +jintArray NativeDatesToJavaInts(JNIEnv& aJniEnv, + const CArrayFix& aDates); + +/** + * Creates native string array from Java string array. + * NULL elements are converted to KPIMNullArrayElement descriptors. + * + * @param aJniEnv JNI environment. + * @param aJavaArray Java string array. + * + * @return Native string array, elements converted from \a aJavaArray. + * + * @par Notes: + * @li It is assumed that the object array contains only jstring objects or + * NULL pointers. Object type is \b not checked. + * + * @par Leaving: + * @li Any - internal error (probably OOM). + */ +CDesCArray* CreateNativeStringArrayL(JNIEnv* aJniEnv, jobjectArray aJavaArray); + +/** + * Creates Java string array from native string array. + * + * @param aJniEnv JNI environment. + * @param aNativeArray Native string array. + * @param aConvertPIMNullArrayElements If ETrue, KPIMNullArrayElement + * elements are converted to NULL elements; otherwise they + * are not handled specially. + * + * @return Java string array, elements converted from \a aNativeArray + * or NULL on error (probably OOM). + */ +jobjectArray CreateJavaStringArray(JNIEnv* aJniEnv, + const CDesCArray& aNativeArray, TBool aConvertPIMNullArrayElements); + +#endif // PIMJNITOOLS_H +// End of File +