Передача данных между 32- и 64-битными приложениями какао

У меня есть 64-битный проект какао, в котором необходимо использовать 32-битную библиотеку рендеринга, которую я не могу перенести на 64-битную.

Я решил разделить его на сервис рендеринга, который будет скомпилирован в 32-битном режиме и предоставит интерфейс для библиотеки, и основной проект, который будет скомпилирован в 64-битном режиме и будет иметь доступ к сервису рендеринга.

Мне интересно, как лучше всего организовать межпроцессное взаимодействие. Я ищу решение, которое обеспечит быструю связь и простой API.

Кажется, что XPC (и, в частности, NSXPCConnection) в настоящее время является рекомендуемым решением. Однако я не уверен - реализовано ли это для 32-битных приложений?

Кроме того, мне нужно передать довольно большое количество данных (максимум ~ 5 МБ), поэтому я беспокоюсь о производительности и скорости XPC. Возможно ли/рекомендуется ли отображение разделяемой памяти в этой ситуации? может ли он работать в связке с xpc?


person Niv    schedule 17.06.2014    source источник


Ответы (1)


Для 32-битных API-интерфейсов Apple использует службы XPC в своих собственных приложениях, таких как Pages, для переноса старых данных в более новый API.

Хотя мне еще предстоит заставить его работать с помощью NSXPCConnection, а собственные приложения Apple используют функции, найденные в xpc/xpc.h.

person MaddTheSane    schedule 08.08.2014
comment
С тех пор я успешно использовал NSXPCConnection для этой задачи. Это довольно просто. - person Niv; 03.09.2014