The DejaVU Framework -- hush 3.0
[.] Papers Tutorials Examples Manuals Interfaces Sources Packages Resources ?

source: kit.c hush-3.1/hush/java/api


[.] - [up] [top] - index make source slides talks
  include <hush/java.h>
  include <hush/kit.h>
  include <hush/session.h>
  
  include <hush/io.h>
  
  #undef string
  
  include <native/hush_dv_api_kit.h>
  
  define method(X) Java_hush_dv_api_kit_##X
  
  JNIEXPORT jint JNICALL method(init)(JNIEnv *env, jobject obj)
  {
    if (env && obj); // Wall
    jint result = (jint) kit::_default; // (jint) new kit();
    if (!result) {
          kit* x = new kit("tk");
          session::_default->_register(x);
          result = (jint) x;
          }
    return result;
  }
  
  JNIEXPORT jint JNICALL method(load)(JNIEnv *env, jobject obj, jstring s)
  {
    java_vm<kit> vm(env,obj);
    const char *str = vm.get(s);
    int r = vm->load(str);
    vm.release(s);
    return (jint) r;
  }
  
  JNIEXPORT void JNICALL method(source)(JNIEnv *env, jobject obj, jstring s)
  {
    java_vm<kit> vm(env,obj);
    const char *str = vm.get(s);
    vm->source(str);
    vm.release(s);
  }
  
  JNIEXPORT void JNICALL method(trace)(JNIEnv *env, jobject obj)
  {
    java_vm<kit> vm(env,obj);
    vm->trace();
  }
  
  JNIEXPORT void JNICALL method(eval)(JNIEnv *env, jobject obj, jstring s)
  {
    java_vm<kit> vm(env,obj);
    const char *str = vm.get(s);
    vm->eval(str);
    vm.release(s);
  }
  
  JNIEXPORT jstring JNICALL method(evaluate)(JNIEnv *env, jobject obj, jstring s)
  {
    java_vm<kit> vm(env,obj);
    const char *str = vm.get(s);
    char* res = vm->evaluate(str);
    vm.release(s);
    return vm.string(res);
  }
  
  JNIEXPORT jstring JNICALL method(getresult)(JNIEnv *env, jobject obj)
  {
    java_vm<kit> vm(env,obj);
    char *s = vm->result();
    if (s) return vm.string(s);
    else return vm.string("-");
  }
  
  JNIEXPORT void JNICALL method(setresult)(JNIEnv *env, jobject obj, jstring s)
  {
    char str[1024];
    java_vm<kit> vm(env,obj);
    char *p = vm.get(s);
    strcpy(str,p);
    vm->result(p);
    //vm.release(s);
  }
  
  JNIEXPORT void JNICALL method(nativeassert)(JNIEnv *env, jobject obj, jstring cl, jstring opts)
  {
    java_vm<kit> vm(env,obj);
    char* _cl = vm.get(cl);
    char* _opts = vm.get(opts);
    vm->_assert(_cl,_opts);
    vm.release(opts,_opts);
    vm.release(cl,_cl);
  }
  
  JNIEXPORT void JNICALL method(nativeretract)(JNIEnv *env, jobject obj, jstring cl, jstring opts)
  {
    java_vm<kit> vm(env,obj);
    char* _cl = vm.get(cl);
    char* _opts = vm.get(opts);
    vm->_retract(_cl,_opts);
    vm.release(opts,_opts);
    vm.release(cl,_cl);
  }
  
  JNIEXPORT void JNICALL method(bind)(JNIEnv *env, jobject obj,
                 jstring s, jobject o)
  {
    java_vm<kit> vm(env,obj);
    java_vm<handler>* vmp = new java_vm<handler>(env,o,"Handler");
    const char *str = vm.get(s);
    handler* h = vmp->self();
    if (h) {
          cerr << "Setting (kit) VM" << endl;
          if (!h->_vmp) h->_vmp = vmp;
    } else {
          cerr << "Creating (kit) VM" << endl;
          h = new handler();
          session::_default->_register(h);
          h->_vmp = vmp;
    }
    h->_register(vmp);
    vm->bind(str,h);
    vm.release(s, str);
  }
  
  JNIEXPORT void JNICALL method(after)(JNIEnv *env, jobject obj,
                 jint msec, jobject o)
  {
    java_vm<kit> vm(env,obj);
    java_vm<handler>* vmp = new java_vm<handler>(env,o,"Handler");
    handler* h = vmp->self();
    if (h) {
          delete vmp;
    } else {
          h = new handler();
          session::_default->_register(h);
          h->_vmp = vmp;
          h->_register(vmp);
    }
    vm->after((int)msec,h);
  }
  
  JNIEXPORT void JNICALL method(wait)(JNIEnv *env, jobject obj,
          jint msecs)
  {
    java_vm<kit> vm(env,obj);
    vm->after(msecs);
  }
  
  JNIEXPORT void JNICALL method(update)(JNIEnv *env, jobject obj)
  {
    java_vm<kit> vm(env,obj);
    vm->update();
  }
  
  JNIEXPORT jint JNICALL method(rootid)(JNIEnv *env, jobject obj)
  {
    java_vm<kit> vm(env,obj);
    return (jint) vm->root();
  }
  
  JNIEXPORT void JNICALL method(pack)(JNIEnv *env, jobject obj, jstring s)
  {
    cerr << "Packing (java)" << endl;
    java_vm<kit> vm(env,obj);
    const char* str = vm.get(s);
    vm->pack(str);
    vm.release(s);
  }
  
  JNIEXPORT void JNICALL method(quit)(JNIEnv *env, jobject obj)
  {
    java_vm<kit> vm(env,obj);
    vm->eval("quit");
  }
  

[.] Papers Tutorials Examples Manuals Interfaces Sources Packages Resources ?
Hush Online Technology
hush@cs.vu.nl
11/03/98