Скрученный канал чтения ProcessProtocol

При использовании processor.spawnProcess, как это присоединяется к переданному в канале чтения протокола? то есть я могу передать SSHProcessProtocol и порождать Bash и отправить ls и получить ответ. Я понимаю, что сбросить информацию через вызов childDataReceived и т. Д., Но как это получилось ls? Отсюда я не вижу, как реактор подключает стандартный ввод http://twistedmatrix.com/documents/12.1.0/api/twisted.internet.interfaces.IProcessProtocol.html

1 ответ

Решение

Это звучит как вопрос о том, как работает реализация. Интерфейсы явно не о реализации. Они описывают API и оставляют все детали того, как заставить этот API работать, другому коду. Таким образом, определение / документация для IProcessProtocol интерфейс не расскажет вам ничего о том, как работает реализация.

Там бывает примерно две реализации транспорта для IProcessProtocol, который IProcessTransport, Транспорты несут ответственность за выполнение операций ввода-вывода в мире Twisted. Протоколы - это та логика синтаксического анализа и сериализации, которая предоставляет приложениям интерфейсы более высокого уровня, чем разбрасывание байтовых строк.

Одна реализация для POSIX находится в twisted.internet.process, Другой, для Windows, находится в twisted.internet._dumbwin32proc, Это модули, которые вы должны изучить источник, чтобы понять, как работает реализация.

Другие вопросы по тегам