/* * Class: org_voltdb_jni_ExecutionEngine * Method: nativeActivateTableStream * Signature: (JIII[B)Z */ SHAREDLIB_JNIEXPORT jboolean JNICALL Java_org_voltdb_jni_ExecutionEngine_nativeActivateTableStream( JNIEnv *env, jobject obj, jlong engine_ptr, jint tableId, jint streamType, jbyteArray serialized_predicates) { VOLT_DEBUG("nativeActivateTableStream in C++ called"); VoltDBEngine *engine = castToEngine(engine_ptr); Topend *topend = static_cast<JNITopend*>(engine->getTopend())->updateJNIEnv(env); // deserialize predicates. jsize length = env->GetArrayLength(serialized_predicates); VOLT_DEBUG("deserializing %d predicate bytes ...", (int) length); jbyte *bytes = env->GetByteArrayElements(serialized_predicates, NULL); ReferenceSerializeInput serialize_in(bytes, length); try { try { voltdb::TableStreamType tableStreamType = static_cast<voltdb::TableStreamType>(streamType); bool success = engine->activateTableStream(tableId, tableStreamType, serialize_in); env->ReleaseByteArrayElements(serialized_predicates, bytes, JNI_ABORT); VOLT_DEBUG("deserialized predicates (success=%d)", (int)success); return success; } catch (SerializableEEException &e) { engine->resetReusedResultOutputBuffer(); e.serialize(engine->getExceptionOutputSerializer()); } } catch (const FatalException& e) { topend->crashVoltDB(e); } return false; }
/* * Class: org_voltdb_jni_ExecutionEngine * Method: nativeActivateTableStream * Signature: (JII)Z */ SHAREDLIB_JNIEXPORT jboolean JNICALL Java_org_voltdb_jni_ExecutionEngine_nativeActivateTableStream (JNIEnv *env, jobject obj, jlong engine_ptr, jint tableId, jint streamType) { VOLT_DEBUG("nativeActivateTableStream in C++ called"); VoltDBEngine *engine = castToEngine(engine_ptr); Topend *topend = static_cast<JNITopend*>(engine->getTopend())->updateJNIEnv(env); try { return engine->activateTableStream(tableId, static_cast<voltdb::TableStreamType>(streamType)); } catch (FatalException e) { topend->crashVoltDB(e); } return false; }