Я хотел бы предоставить метод доступа к классу, который предоставляет NSInputStream для STDIN, который может содержать несколько сотен мегабайт (или гигабайт, что маловероятно) данных.
Когда вызывающий объект получает этот NSInputStream, он должен иметь возможность читать из него, не беспокоясь об исчерпании содержащихся в нем данных. Другими словами, другой блок кода может запросить NSInputStream и ожидать возможности чтения из него.
Без предварительного копирования всех данных в объект NSData, который (я полагаю) вызовет нехватку памяти, каковы мои варианты обработки этого? Возвращенный NSInputStream не обязательно должен быть одним и тем же экземпляром, он просто должен предоставить те же данные.
Лучшее, что я могу придумать прямо сейчас, это скопировать STDIN во временный файл, а затем вернуть экземпляры NSInputStream, используя этот файл. Это почти единственный способ справиться с этим? Есть ли что-то, с чем я должен быть осторожен, если я пойду по маршруту временного файла?
РЕДАКТИРОВАТЬ | Я должен упомянуть, что это не на самом деле STDIN, это многопоточное приложение FastCGI, и это поток FCGX_Request.in
, который поступил из STDIN.