Skip to content

Commit 85d2f87

Browse files
Aniket392borrrden
authored andcommitted
Hashmap update and initating the C4BtSocketFactory
1 parent c5c9b8f commit 85d2f87

4 files changed

Lines changed: 19 additions & 6 deletions

File tree

common/main/cpp/MetadataHelper.cc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,16 @@ namespace litecore::jni {
5050
// Create HashMap
5151
jclass hashMapClass = env->FindClass("java/util/HashMap");
5252
jmethodID hashMapInit = env->GetMethodID(hashMapClass, "<init>", "(I)V");
53-
jobject hashMap = env->NewObject(hashMapClass, hashMapInit);
53+
54+
55+
size_t rawSize = metadata.size();
56+
jint size = (rawSize > 10000) ? 0 : static_cast<jint>(rawSize);
57+
58+
jobject hashMap = env->NewObject(hashMapClass, hashMapInit, size);
59+
if (env->ExceptionCheck()) {
60+
env->ExceptionClear();
61+
return env->NewObject(hashMapClass, hashMapInit, 0);
62+
}
5463

5564
// Put method for HashMap
5665
jmethodID hashMapPut = env->GetMethodID(

common/main/cpp/com_couchbase_lite_internal_core_impl_NativeC4PeerDiscoveryProvider.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#define COUCHBASE_LITE_JAVA_EE_ROOT_COM_COUCHBASE_LITE_INTERNAL_CORE_IMPL_NATIVEC4PEERDISCOVERYPROVIDER_H
55

66
#ifdef __cplusplus
7-
extern "C++" {
7+
extern "C" {
88
#endif
99

1010
JNIEXPORT jlong JNICALL
@@ -50,7 +50,7 @@ JNIEXPORT jlongArray JNICALL
5050
Java_com_couchbase_lite_internal_core_impl_NativeC4PeerDiscoveryProvider_peersWithProvider(
5151
JNIEnv *env, jclass thiz, jlong providerPtr);
5252

53-
JNIEXPORT jstring JNICALL
53+
JNIEXPORT jbyteArray JNICALL
5454
Java_com_couchbase_lite_internal_core_impl_NativeC4PeerDiscoveryProvider_serviceUuidFromPeerGroup(
5555
JNIEnv* env, jclass, jstring peerGroup);
5656

common/main/cpp/native_c4peerdiscoveryprovider.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ namespace litecore::jni {
127127
jint envState = attachJVM(&env, "startBrowsing");
128128
if ((envState != JNI_OK) && (envState != JNI_EDETACHED))
129129
return;
130+
jniLog("Start Browsing");
130131

131132
// Call Java BLE service to start scanning
132133
env->CallStaticVoidMethod(
@@ -162,6 +163,7 @@ namespace litecore::jni {
162163
return;
163164

164165
jstring jDisplayName = UTF8ToJstring(env, displayName.data(), displayName.size());
166+
jniLog("Start Publishing");
165167
jobject jMetadata = metadataToJavaMap(env, metadata);
166168

167169
env->CallStaticVoidMethod(
@@ -253,6 +255,7 @@ namespace litecore::jni {
253255
if ((envState != JNI_OK) && (envState != JNI_EDETACHED))
254256
return;
255257

258+
jniLog("Update Metadata");
256259
jobject jMetadata = metadataToJavaMap(env, metadata);
257260

258261
env->CallStaticVoidMethod(
@@ -360,21 +363,21 @@ namespace litecore::p2p {
360363

361364

362365
#ifdef __cplusplus
363-
extern "C++" {
366+
extern "C" {
364367
#endif
365368

366369
//-------------------------------------------------------------------------
367370
// com.couchbase.lite.internal.core.impl.NativeC4MultipeerReplicator
368371
//-------------------------------------------------------------------------
369372

370373

371-
JNIEXPORT jstring JNICALL
374+
JNIEXPORT jbyteArray JNICALL
372375
Java_com_couchbase_lite_internal_core_impl_NativeC4PeerDiscoveryProvider_serviceUuidFromPeerGroup(
373376
JNIEnv* env, jclass, jstring peerGroup) {
374377
std::string pg = JstringToUTF8(env, peerGroup);
375378
auto uuid = litecore::p2p::btle::ServiceUUIDFromPeerGroup(pg);
376379
C4Slice s = {&uuid, sizeof(uuid)};
377-
return toJString(env, s);
380+
return toJByteArray(env, s);
378381
}
379382

380383
JNIEXPORT jlong JNICALL

common/main/cpp/native_glue.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ JNI_OnLoad(JavaVM *jvm, void *ignore) {
163163
#ifdef __ANDROID__
164164
&& initC4MultipeerReplicator(env)
165165
&& initC4PeerDiscoveryProvider(env)
166+
&& initC4BTSocketFactory(env)
166167
#endif
167168
#endif
168169
&& initC4Socket(env)) {

0 commit comments

Comments
 (0)