diff options
| author | Emmanuel Raviart <eraviart@entrouvert.com> | 2004-07-20 12:41:35 +0000 |
|---|---|---|
| committer | Emmanuel Raviart <eraviart@entrouvert.com> | 2004-07-20 12:41:35 +0000 |
| commit | a7c3554f40b6b017a4d4abc396de64ed89342a62 (patch) | |
| tree | 423af9b1f3f794da03455fc6c27347eea9c3e173 /java/doc | |
| parent | ff57e03478b2d6460aa2c60110ddfd976c21ca00 (diff) | |
| download | lasso-a7c3554f40b6b017a4d4abc396de64ed89342a62.tar.gz lasso-a7c3554f40b6b017a4d4abc396de64ed89342a62.tar.xz lasso-a7c3554f40b6b017a4d4abc396de64ed89342a62.zip | |
Added Java binding.
Diffstat (limited to 'java/doc')
| -rw-r--r-- | java/doc/ImplantationMapping.rst | 37 | ||||
| -rw-r--r-- | java/doc/JNIForDummy.rst | 36 |
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 + |
