Эрланг: Взаимодействие с Xalan: драйвер порта или nif? - PullRequest
3 голосов
/ 26 мая 2010

Я бы хотел, чтобы настоящий процессор XSLT работал с erlang. Какой будет лучший интерфейс, NIF или драйвер порта? Согласно документации nif, вызовы nif блокируют время выполнения, поэтому они не должны занимать много времени. Является ли обработка длинного XML-документа слишком длинной?

Кроме того, я хотел бы разрешить обратные вызовы erlang во время преобразования. Это кажется возможным? Возможно с nif, но не с драйверами портов или наоборот?

Я никогда не писал C, так что я подумал, что это было бы хорошим введением. Xalan - это C ++. Я полагаю, что NIF может работать с этим, верно?

1 Ответ

3 голосов
/ 26 мая 2010

Я бы порекомендовал построить драйвер порта.

Средство NIF - это способ добавления новых встроенных функций в язык. и ускорить то, что было бы слишком медленно для реализации в чистом Эрланге. В любом случае NIF считаются экспериментальными, поэтому интерфейс может радикально измениться в будущих выпусках.

Написание драйвера порта означает реализацию разделяемая библиотека C (или C ++), которая ведет себя как целый процесс Это обеспечивает большую гибкость, так как вы можете общаться с другие процессы при преобразовании документа (обратные вызовы ...) и т. д.

Это даже не должен быть водитель. Если вы не пройдете много данные между вашей программой порта и другим кодом Erlang, который вы можете вместо этого подумайте о написании простого порта (это проще).

...