Класс: matlab.net.http.io.ContentConsumer
Пакет: matlab.net.http.io
Обработка или сохранение следующего буфера данных для ContentConsumer
[size,stop] = putData(consumer,data)
[ обеспечивает буфер size,stop] = putData(consumer,data)data считывать с сервера на consumer.
Вызовы MATLAB ®putData. Потребители подкласса могут переопределить этот метод для получения потоковых данных. Потребитель должен вернуть объем данных, фактически обработанных в sizeи указание true/false в stop для определения необходимости получения дополнительных данных из этого сообщения.
При вызове MATLAB putData с пустым data аргумент означает, что сообщение или часть сообщения в случае многопутевого сообщения закончилась.
При создании подкласса потребителя, реализующего этот метод, putData метод может вызывать свой суперкласс putData для использования преимуществ любых преобразований или обработки, реализуемых суперклассом.
MATLAB ограничивает размер data буферы в bufsize значение, возвращенное start метод или внутренний размер буфера, если bufsize является []. Кроме того, если сервер посылает сообщение в кодировке блока, то данный вызов putData никогда не предоставляет более одного блока. Это позволяет потребителю своевременно получать медленно поступающие куски, даже если bufsize намного больше, чем размер блока.
Поведение по умолчанию putData() в этом базовом классе:
Потребители подкласса имеют возможность хранения своего, возможно, преобразованного содержимого непосредственно в Response.Body.Data, либо пошагово, либо все сразу, либо утилизация каким-либо другим способом. Потребитель подкласса не должен вызывать это putData способ хранения данных. Для удобства, потребители, которые хотят хранить контент постепенно в Response.Body.Data Для этого можно вызвать этот метод. Этот метод добавляется data кому Response.Body.Data с использованием AppendFcn, пытаясь сделать это эффективно, постепенно распределяя емкость. Фактическая длина сохраненных данных сохраняется в CurrentLength свойство, которое может быть меньше фактической длины Response.Body.Data. В конце передачи (например, когда putData(consumer,[]) или putData(consumer,uint8.empty) называется, Response.Body.Data усечено до CurrentLength. Вы можете определить свой собственный AppendFcn реализовать альтернативный метод добавления.
По умолчанию этот метод всегда возвращает size равно numel(data) и stop равно false.
Если предполагается использовать этот метод для хранения данных и известна максимальная длина сохраняемых данных, то необходимо установить Response.Body.Data к вектору нужного размера, заполненному значениями по умолчанию (например, нулями), перед первым вызовом этого метода. Этот метод начинает сохранять данные в начале области данных, а затем усекает их до длины данных в конце сообщения, сохраняя длину данных, сохраненных в CurrentLength.
Потребители, которые вызывают этот метод в этом базовом классе для инкрементного хранения данных, могут предоставить data любого типа, поддерживающего horzcat или vertcat, включая структуры и массивы ячеек. При предоставлении массива ячеек существующие данные преобразуются в массив ячеек, если он еще не создан, и элементы массива ячеек вставляются в существующий массив ячеек с линейным индексом, начинающимся с CurrentLength+1.
При вызове этого метода в ContentConsumer для хранения данных следует разрешить этому методу управлять Response.Body.Data или CurrentLength и не изменять их напрямую.
ContentConsumers , которые вызывают этот метод в своем суперклассе, должны быть готовы к любой очистке, такой как закрытие окон или удаление временных файлов, если суперкласс создает исключение.
Access | public |
AppendFcn | CurrentLength | matlab.net.http.HTTPException | matlab.net.http.HTTPOptions | matlab.net.http.RequestMessage | matlab.net.http.ResponseMessage | MultipartConsumer | Ответ | start