Chciałbym zbudować aplikację systemu plików w głębi lądu w wersji FUSE, w Javie. Istnieje kilka bibliotek powiązań dostępnych w Internecie, Fuse-J, jnetfs, Fuseforjava, javafuse.Czy istnieje szansa, że javafuse działa?
Żadne z nich nie wydaje się być tak żywe jak na dzień dzisiejszy, więc podjąłem pierwszą próbę uzyskania JavaFuse
.
Interfejs musimy wdrożyć istnieje: http://code.google.com/p/javafuse/source/browse/fs/JavaFS.java
i chciałem odtworzyć ten fuse helloworld example.
Pytanie: Czy jest jakaś szansa, że w ten sposób:
static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi)
{
(void) offset;
(void) fi;
if(strcmp(path, "/") != 0)
return -ENOENT;
filler(buf, ".", NULL, 0);
filler(buf, "..", NULL, 0);
filler(buf, hello_path + 1, NULL, 0);
return 0;
}
mogą być realizowane za pomocą tej funkcji Java:
public int readdir_pre(String path, long buf, long filler, int offset, Fuse_file_info info);
public int readdir_post(String path, long buf, long filler, int offset, Fuse_file_info info, int result);
Może coś przeoczyłem, ale nie mogę zobaczyć, jak korzystać filler
do wypełnienia zawartości katalogów ...
Istnieją inne osobliwości tylko dla tego przykładu helloworld, jak:
public int read_post(String path, String buf, int size, int offset, Fuse_file_info info, int result);
który jest ma być wypełnićbuf
z size
bajtów danych, natomiast Java String
ma być niezmienna.
Sugerowałbym, używając https://github.com/EtiennePerot/fuse-jna – user629926
tak, to wygląda interesująco. Ale już przerzuciłem się na [JNetFs] (https://code.launchpad.net/jnetfs), które do tej pory spełniało wszystkie moje wymagania! (chociaż niektórych wiązań wciąż brakowało w bibliotece C, musiałem je samemu związać) – Kevin
+1 za posiadanie listy implementacji FUSE-Java. –