Скрученный канал чтения 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
, Это модули, которые вы должны изучить источник, чтобы понять, как работает реализация.