--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/centralrepository/src/javacentralrepositoryjni.cpp Thu Sep 02 13:22:59 2010 +0300
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2010 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 <centralrepository.h> // KMaxUnicodeStringLength
+
+#include "com_nokia_mj_impl_cenrep_CentralRepositoryImpl.h"
+#include "cjavacentralrepository.h"
+#include "centrepfunctionserver.h"
+#include "javajniutils.h"
+#include "jstringutils.h"
+#include "s60commonutils.h"
+#include "logger.h"
+#include "fs_methodcall.h"
+
+using namespace java::util;
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _createFunctionSource
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1createFunctionSource
+(JNIEnv *aJni, jobject /*aPeer*/)
+{
+ JELOG2(EJavaCentrep);
+ java::centrep::CentrepFunctionServer* mFunctionServer;
+ mFunctionServer = new java::centrep::CentrepFunctionServer();
+ TInt handle = reinterpret_cast<jint>(mFunctionServer);
+ if (handle < KErrNone)
+ {
+ JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
+ JavaCommonUtils::intToString(handle));
+ }
+ return handle;
+}
+
+/**
+ * CreateCentralRepositoryL
+ */
+void CreateCentralRepositoryL(CJavaCentralRepository*& aCenRep,
+ TUid aRepositoryId)
+{
+ CJavaCentralRepository* cenrep =
+ CJavaCentralRepository::NewL(aRepositoryId);
+ aCenRep = cenrep;
+}
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _createNativePeer
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1createNativePeer
+(JNIEnv *aJni, jobject, jint aFunctionSourceHandle, jint aRepositoryId)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep = NULL;
+
+ TUid uid = TUid::Uid(aRepositoryId);
+ TRAPD(err,CallMethodL(CreateCentralRepositoryL, cenrep, uid, mFunctionServer));
+
+ if (err != KErrNone)
+ {
+ JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
+ JavaCommonUtils::intToString(err));
+ }
+ return reinterpret_cast<jint>(cenrep);
+}
+
+/**
+ * Close
+ */
+void CloseCentralRepository(CJavaCentralRepository* aCenRep)
+{
+ aCenRep->Close();
+}
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _close
+ * Signature: (II)I
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1close
+(JNIEnv *, jobject, jint aFunctionSourceHandle, jint aCenrepHandle)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(
+ aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep =
+ reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
+
+ CallMethod(CloseCentralRepository, cenrep, mFunctionServer);
+}
+
+/**
+ * Dispose
+ */
+void Dispose(CJavaCentralRepository* aCenRep)
+{
+ delete aCenRep;
+ aCenRep = NULL;
+}
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _dispose
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1dispose
+(JNIEnv *, jobject, jint aFunctionSourceHandle, jint aCenrepHandle)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(
+ aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep =
+ reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
+
+ CallMethod(Dispose, cenrep, mFunctionServer);
+ delete mFunctionServer;
+}
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _getString
+ * Signature: (IIJLcom/nokia/mj/impl/cenrep/CentralRepositoryImpl$StringValue;)I
+ */
+JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1getString
+(JNIEnv * aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
+ jlong aKey)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(
+ aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep =
+ reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
+
+ HBufC* buf = NULL;
+
+ TUint32 key = (TUint32)aKey;
+ TRAPD(err, CallMethodL(buf, cenrep, &CJavaCentralRepository::GetStringL, key, mFunctionServer));
+
+ jstring val = NULL;
+ if (err == KErrNone && buf)
+ {
+ val = java::util::S60CommonUtils::NativeToJavaString(*aJni, *buf);
+ }
+ else
+ {
+ JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
+ JavaCommonUtils::intToString(err));
+ }
+
+ delete buf;
+ return val;
+}
+
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _getInt
+ * Signature: (IIJLcom/nokia/mj/impl/cenrep/CentralRepositoryImpl$IntValue;)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1getInt
+(JNIEnv * aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
+ jlong aKey)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(
+ aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep =
+ reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
+
+ TInt val = 0;
+ TUint32 key = (TUint32)aKey;
+
+ TRAPD(err, CallMethodL(val, cenrep, &CJavaCentralRepository::GetIntL, key, mFunctionServer));
+
+ if (err != KErrNone)
+ {
+ JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
+ JavaCommonUtils::intToString(err));
+ }
+ return val;
+}
+
+/**
+ * SetStringL
+ */
+void SetStringL(CJavaCentralRepository* aCenRep, TUint32 aKey, TDesC* aValue)
+{
+ aCenRep->SetL(aKey, *aValue);
+}
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _setString
+ * Signature: (IIJLjava/lang/String;)I
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1setString
+(JNIEnv *aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
+ jlong aKey, jstring aValue)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(
+ aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep =
+ reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
+
+ JStringUtils string(*aJni, aValue);
+ TUint32 key = (TUint32)aKey;
+
+ TDesC* tstring = (TDesC*) &string;
+ TRAPD(err, CallMethodL(SetStringL, cenrep, key, tstring, mFunctionServer));
+
+ if (err != KErrNone)
+ {
+ JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
+ JavaCommonUtils::intToString(err));
+ }
+}
+
+/**
+ * SetIntL
+ */
+void SetIntL(CJavaCentralRepository* aCenRep, TUint32 aKey, TInt aValue)
+{
+ aCenRep->SetL(aKey, aValue);
+}
+
+/*
+ * Class: com_nokia_mj_impl_cenrep_CentralRepositoryImpl
+ * Method: _setInt
+ * Signature: (IIJI)I
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1setInt
+(JNIEnv *aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
+ jlong aKey, jint aValue)
+{
+ java::centrep::CentrepFunctionServer* mFunctionServer =
+ reinterpret_cast< java::centrep::CentrepFunctionServer*>(
+ aFunctionSourceHandle);
+
+ CJavaCentralRepository* cenrep =
+ reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
+
+ TUint32 key = (TUint32)aKey;
+ TInt value = (TInt)aValue;
+
+ TRAPD(err, CallMethodL(SetIntL, cenrep, key, value, mFunctionServer));
+ if (err != KErrNone)
+ {
+ JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
+ JavaCommonUtils::intToString(err));
+ }
+}
+
+