jNetPcap перегружает openOffline()

Я ищу способ перегрузить эту функцию в jNetPcap:

Pcap openOffline(String fname, StringBuilder errbuf);

Я хочу реализовать это следующим образом:

Pcap openOffline(InputStraem stream, StringBuilder errbuf);

Я скачал исходный код, но эта функция является функцией native, как я могу перейти к реализации этой функции и попытаться изменить ее?


person Amir Rossert    schedule 27.10.2014    source источник


Ответы (1)


Вы можете объявить свой метод статическим и вызвать исходный нативный метод из своего метода.

Что-то типа

static Pcap openOffline(InputStream stream, StringBuilder errbuf) {
    String fname;
    doSomeThing(); //Extract a string from the inputstream and store it in fname
    return openOffline(fname, errbuf);
}
person aMpeX    schedule 27.10.2014
comment
Привет, это не то, что я ищу. Чего я пытаюсь добиться, так это ИЗБЕГАТЬ сохранения InputStream в файл на диске и работать напрямую с InputStream. Я пытаюсь найти способ увидеть, как openOffline(fname, errbuf) работает с файлом, и перейти на использование InputStream вместо файла. - person Amir Rossert; 29.10.2014
comment
К сожалению, я вижу, что нет прямого способа передать InputStream в JNI, поскольку, похоже, нет соответствующего класса JNI. Передача в качестве задания не даст вам доступа к нему. Я немного погуглил, и инструмент под названием JunC++ion, кажется, способен генерировать код JNI для InputStreams. См. здесь - person aMpeX; 30.10.2014