Можно ли создавать ссылки в реальном времени для одного файла, который открывается в двух разных приложениях? - PullRequest
1 голос
/ 21 марта 2020

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

Одним из примеров, который я могу придумать, является плагин Cineware для Cinema4D и AfterEffects. Вы можете открыть 3D-модель между Cinema4D и AfterEffects, если вы внесете изменение в Cinema4D, оно автоматически применит это изменение в AfterEffects без необходимости снова экспортировать и импортировать файл.

Я специально собираюсь сделать такое связь между Rhino и ArtCAM с файлами .dxf. Я хотел бы открыть файл в Rhino и ArtCAM одновременно, и если я внесу изменения в Rhino, эти изменения будут применяться к ArtCAM без необходимости экспортировать и импортировать файл.

На этой странице -> https://developer.rhino3d.com/guides/rhinopython/what-is-rhinopython/ говорится, что Rhino. Python можно использовать для «создания ссылок в реальном времени на другие приложения», но я даже не знаю, как к этому подойти проблема.

1 Ответ

1 голос
/ 22 марта 2020

Проблема не в том, что вам нужно читать один и тот же файл одновременно ... а в том, что вам нужен доступ к буферу чтения и записи из двух отдельных приложений.

Я бы создал третье приложение. Синхронный файловый сервер (SFS). Когда вам нужно прочитать файл, приложение отправляет запрос в SFS, чтобы открыть файл. Второе приложение может отправить запрос на открытие того же файла. SFS будет содержать только один экземпляр файла, но буферизует данные в 2 или более отдельных потоков сокетов, когда приложения запрашивают чтение или запись.

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

...