Как создать несколько оболочек для одной C функции? - PullRequest
1 голос
/ 19 января 2020

У меня есть C функция, подобная этой.

void useData(char* buf) {
   // TODO.....
}

С помощью swig мне удалось получить это сгенерированное.

public static void useData(SWIGTYPE_p_char buf) {
    // SWIG stuff....
}

Теперь это работает, но иногда я хочу передать ByteBuffer вместо SWIGTYPE_p_char. С помощью другой карты типов мне удалось ее сгенерировать.

public static void useData(ByteBuffer buf) {
    // SWIG stuff....
}

Это работает, но моя новая карта типов заменяет старую карту типов, и я больше не могу вызывать функцию с SWIGTYPE_p_char.

Моя цель - создать две точки входа в мою функцию useData, одну из которых принимает ByteBuffer, а другую - SWIGTYPE_p_char.

Я гуглял и читал документы в течение нескольких дней. сейчас, и я ничего не могу найти.

Это то, чего я могу достичь с помощью SWIG? Или мне чего-то не хватает? Я был бы очень признателен за указатели, указав c документы или альтернативные условия поиска.

РЕДАКТИРОВАТЬ: С помощью ByteBuffer карты типов SWIG генерирует только ByteBuffer, но не генерирует SWIGTYPE_p_char. Я пытаюсь заставить его генерировать оба.

1 Ответ

0 голосов
/ 19 января 2020

Вы можете просто сохранить обе сгенерированные функции. Это совершенно верно со стороны java.

...