/* * IsoTreeNode.c * * Copyright (c) 2007 Vreixo Formoso * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * See COPYING file for details. */ #include "org_pykix_libburnia_libisofs_IsoTreeNode.h" #include "libisofs.h" /* * Class: org_pykix_libburnia_libisofs_IsoTreeNode * Method: iso_tree_add_node * Signature: (JLjava/lang/String;)J */ JNIEXPORT jlong JNICALL Java_org_pykix_libburnia_libisofs_IsoTreeNode_iso_1tree_1add_1node ( JNIEnv *env, jclass cls, jlong parent, jstring path ) { const char *cpath; struct iso_tree_node *node; cpath = (*env)->GetStringUTFChars(env, path, NULL); if ( cpath == NULL ) { return 0; /* OutOfMemoryError already thrown */ } node = iso_tree_add_node( (struct iso_tree_node *) parent, cpath); (*env)->ReleaseStringUTFChars(env, path, cpath); return (jlong) node; } /* * Class: org_pykix_libburnia_libisofs_IsoTreeNode * Method: iso_tree_radd_dir * Signature: (JLjava/lang/String;)J */ JNIEXPORT jlong JNICALL Java_org_pykix_libburnia_libisofs_IsoTreeNode_iso_1tree_1radd_1dir ( JNIEnv *env, jclass cls, jlong parent, jstring path ) { const char *cpath; struct iso_tree_node *node; cpath = (*env)->GetStringUTFChars(env, path, NULL); if ( cpath == NULL ) { return 0; /* OutOfMemoryError already thrown */ } node = iso_tree_radd_dir( (struct iso_tree_node *) parent, cpath); (*env)->ReleaseStringUTFChars(env, path, cpath); return (jlong) node; } /* * Class: org_pykix_libburnia_libisofs_IsoTreeNode * Method: iso_tree_print * Signature: (JI)V */ JNIEXPORT void JNICALL Java_org_pykix_libburnia_libisofs_IsoTreeNode_iso_1tree_1print ( JNIEnv *env, jclass cls, jlong root, jint spaces ) { iso_tree_print( (const struct iso_tree_node *) root, spaces); fflush(stdout); } /* * Class: org_pykix_libburnia_libisofs_IsoTreeNode * Method: iso_tree_node_set_name * Signature: (JLjava/lang/String;)V */ JNIEXPORT void JNICALL Java_org_pykix_libburnia_libisofs_IsoTreeNode_iso_1tree_1node_1set_1name ( JNIEnv *env, jclass cls, jlong file, jstring name ) { const char *cname; cname = (*env)->GetStringUTFChars(env, name, NULL); if ( cname == NULL ) { return; /* OutOfMemoryError already thrown */ } iso_tree_node_set_name( (struct iso_tree_node *) file, cname); (*env)->ReleaseStringUTFChars(env, name, cname); } /* * Class: org_pykix_libburnia_libisofs_IsoTreeNode * Method: iso_tree_add_new_dir * Signature: (JLjava/lang/String;)J */ JNIEXPORT jlong JNICALL Java_org_pykix_libburnia_libisofs_IsoTreeNode_iso_1tree_1add_1new_1dir ( JNIEnv *env, jclass cls, jlong parent, jstring name ) { const char *cname; struct iso_tree_node *node; cname = (*env)->GetStringUTFChars(env, name, NULL); if ( cname == NULL ) { return; /* OutOfMemoryError already thrown */ } node = iso_tree_add_new_dir( (struct iso_tree_node *) parent, cname); (*env)->ReleaseStringUTFChars(env, name, cname); return (jlong) node; }