Esempio n. 1
0
/*
 * Class:     mesos_MesosExecutorDriver
 * Method:    join
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_mesos_MesosExecutorDriver_join
  (JNIEnv *env, jobject thiz)
{
  jclass clazz = env->GetObjectClass(thiz);

  jfieldID __driver = env->GetFieldID(clazz, "__driver", "J");
  MesosExecutorDriver *driver = (MesosExecutorDriver *)
    env->GetLongField(thiz, __driver);

  return driver->join();
}
/*
 * Class:     org_apache_mesos_MesosExecutorDriver
 * Method:    join
 * Signature: ()Lorg/apache/mesos/Protos/Status;
 */
JNIEXPORT jobject JNICALL Java_org_apache_mesos_MesosExecutorDriver_join
  (JNIEnv* env, jobject thiz)
{
  jclass clazz = env->GetObjectClass(thiz);

  jfieldID __driver = env->GetFieldID(clazz, "__driver", "J");
  MesosExecutorDriver* driver =
    (MesosExecutorDriver*) env->GetLongField(thiz, __driver);

  Status status = driver->join();

  return convert<Status>(env, status);
}
Esempio n. 3
0
/*
 * Class:     mesos_MesosExecutorDriver
 * Method:    sendFrameworkMessage
 * Signature: (Lmesos/FrameworkMessage;)I
 */
JNIEXPORT jint JNICALL Java_mesos_MesosExecutorDriver_sendFrameworkMessage
  (JNIEnv *env, jobject thiz, jobject jmessage)
{
  // Construct a C++ FrameworkMessage from the Java FrameworkMessage.
  FrameworkMessage message = construct<FrameworkMessage>(env, jmessage);

  // Now invoke the underlying driver.
  jclass clazz = env->GetObjectClass(thiz);

  jfieldID __driver = env->GetFieldID(clazz, "__driver", "J");
  MesosExecutorDriver *driver = (MesosExecutorDriver *)
    env->GetLongField(thiz, __driver);

  return driver->sendFrameworkMessage(message);
}
Esempio n. 4
0
/*
 * Class:     mesos_MesosExecutorDriver
 * Method:    sendStatusUpdate
 * Signature: (Lmesos/TaskStatus;)I
 */
JNIEXPORT jint JNICALL Java_mesos_MesosExecutorDriver_sendStatusUpdate
  (JNIEnv *env, jobject thiz, jobject jstatus)
{
  // Construct a C++ TaskStatus from the Java TaskStatus.
  TaskStatus status = construct<TaskStatus>(env, jstatus);

  // Now invoke the underlying driver.
  jclass clazz = env->GetObjectClass(thiz);

  jfieldID __driver = env->GetFieldID(clazz, "__driver", "J");
  MesosExecutorDriver *driver = (MesosExecutorDriver *)
    env->GetLongField(thiz, __driver);

  return driver->sendStatusUpdate(status);
}
/*
 * Class:     org_apache_mesos_MesosExecutorDriver
 * Method:    sendFrameworkMessage
 * Signature: ([B)I
 */
JNIEXPORT jint JNICALL Java_org_apache_mesos_MesosExecutorDriver_sendFrameworkMessage
  (JNIEnv* env, jobject thiz, jbyteArray jdata)
{
  // Construct a C++ string from the Java byte array.
  jbyte* data = env->GetByteArrayElements(jdata, NULL);
  jsize length = env->GetArrayLength(jdata);

  string temp((char*) data, (size_t) length);

  env->ReleaseByteArrayElements(jdata, data, 0);

  // Now invoke the underlying driver.
  jclass clazz = env->GetObjectClass(thiz);

  jfieldID __driver = env->GetFieldID(clazz, "__driver", "J");
  MesosExecutorDriver* driver =
    (MesosExecutorDriver*) env->GetLongField(thiz, __driver);

  return driver->sendFrameworkMessage(temp);
}
/*
 * Class:     org_apache_mesos_MesosExecutorDriver
 * Method:    finalize
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_org_apache_mesos_MesosExecutorDriver_finalize
  (JNIEnv* env, jobject thiz)
{
  jclass clazz = env->GetObjectClass(thiz);

  jfieldID __driver = env->GetFieldID(clazz, "__driver", "J");
  MesosExecutorDriver* driver =
    (MesosExecutorDriver*) env->GetLongField(thiz, __driver);

  // Call stop just in case.
  driver->stop();
  driver->join();

  delete driver;

  jfieldID __exec = env->GetFieldID(clazz, "__exec", "J");
  JNIExecutor* exec = (JNIExecutor*) env->GetLongField(thiz, __exec);

  env->DeleteWeakGlobalRef(exec->jdriver);

  delete exec;
}