summaryrefslogtreecommitdiffstats
path: root/java/doc
diff options
context:
space:
mode:
authorEmmanuel Raviart <eraviart@entrouvert.com>2004-07-20 12:41:35 +0000
committerEmmanuel Raviart <eraviart@entrouvert.com>2004-07-20 12:41:35 +0000
commita7c3554f40b6b017a4d4abc396de64ed89342a62 (patch)
tree423af9b1f3f794da03455fc6c27347eea9c3e173 /java/doc
parentff57e03478b2d6460aa2c60110ddfd976c21ca00 (diff)
downloadlasso-a7c3554f40b6b017a4d4abc396de64ed89342a62.tar.gz
lasso-a7c3554f40b6b017a4d4abc396de64ed89342a62.tar.xz
lasso-a7c3554f40b6b017a4d4abc396de64ed89342a62.zip
Added Java binding.
Diffstat (limited to 'java/doc')
-rw-r--r--java/doc/ImplantationMapping.rst37
-rw-r--r--java/doc/JNIForDummy.rst36
2 files changed, 73 insertions, 0 deletions
diff --git a/java/doc/ImplantationMapping.rst b/java/doc/ImplantationMapping.rst
new file mode 100644
index 00000000..92b39f65
--- /dev/null
+++ b/java/doc/ImplantationMapping.rst
@@ -0,0 +1,37 @@
+============================
+Implantation du mapping Java
+============================
+
+:author: Benjamin Poussin <poussin@codelutin.com>
+
+La même hierarchie d'objet à été faite dans la mesure du possible entre
+l'implantation C et Java.
+
+Conservation de l'objet C associé à l'objet Java
+================================================
+
+Chaque objet Java hérite d'un objet LassoNode qui contient un champs
+*long c_lasso_object* qui permet de stocker la référence du pointer de
+l'objet C associé à cet objet Java.
+
+Destruction des objets
+======================
+
+L'objet LassoNode contient aussi une méthode finalize qui permet l'appel au
+destructeur de l'objet C, lorsque l'objet java est libéré.
+
+Si une méthode destroy particulière doit-être utilisé pour un objet C, il
+suffit dans l'objet Java de redéfinir la méthode
+*native protected void destroy();* et de l'implanter différement dans
+l'implantation C de la méthode native.
+
+Acces au attribut des objets C
+==============================
+
+Chaque attribut des objets C est accessible par une méthode d'acces. Cette
+méthode se charge de demander la construction de l'objet de représentation
+Java du champs. Ceci est fait par une méthode *init<FieldName>Field*. Cette
+méthode ne modifie l'attribut que si l'objet C et l'objet Java ne sont plus
+synchronisé, c'est à dire si la valeur dans l'objet C à été modifié ou que
+l'objet Java la représentant n'a jamais été créer.
+
diff --git a/java/doc/JNIForDummy.rst b/java/doc/JNIForDummy.rst
new file mode 100644
index 00000000..4f8cd315
--- /dev/null
+++ b/java/doc/JNIForDummy.rst
@@ -0,0 +1,36 @@
+================
+JNI for dummy :)
+================
+
+Sous Linux le nom de la librairie compilée doit obligatoirement commencer par **lib** et
+finir par **.so**.
+
+Pour charger à l'éxécution la librairie elle doit-être dans le
+LD_LIBRAIRY_PATH et en Java il faut la charger avec **System.loadLibrary**::
+
+Par exemple si vous avec généré la librairie libjlasso.so, on la chargera
+avec::
+
+ System.loadLibrary("jlasso");
+
+Pour connaitre le nom de la librairie que le système attend, on peut
+utiliser::
+
+ System.out.println(System.mapLibraryName("jlasso"));
+
+Comment ajouter des fonctions JNI
+=================================
+
+:ref: http://java.sun.com/docs/books/jni/html/jniTOC.html
+:ref: http://gbm.esil.univ-mrs.fr/~tourai/Java/node48.html
+
+Il faut créer les classes Java, et marquer les méthodes qui doivent être
+écrite en C, avec le mot cle native. Ces méthodes n'ont pas de corps en
+Java.
+
+Il faut ensuite exécuter le Makefile se trouvant dans lasso/java pour qu'il
+génère les fichiers d'entête JNI.
+
+Il ne reste plus qu'a reprendre la signature de la méthode et de la coder
+dans le .c
+