putData
클래스: 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이 빈 data 인수로 putData를 호출한다는 것은 메시지 또는 multipart 메시지의 메시지 파트가 종료되었음을 의미합니다.
사용자가 이 메서드를 구현하는 소비자 서브클래스를 구현한 경우, putData 메서드는 슈퍼클래스 putData를 호출하여 슈퍼클래스가 구현한 변환이나 처리를 활용할 수 있습니다.
MATLAB은 data 버퍼의 크기를 start 메서드가 반환한 bufsize 값으로 제한하거나, bufsize가 []인 경우 내부 버퍼 크기로 제한합니다. 서버가 청크로 인코딩된 메시지를 전송하는 경우, 기존에 수행한 putData 호출로는 둘 이상의 청크를 수신할 수 없습니다. 따라서 소비자는 bufsize가 청크 크기보다 훨씬 큰 경우에도 천천히 도착하는 청크를 제때에 수신할 수 있습니다.
이 기본 클래스의 putData()의 디폴트 동작은 다음과 같습니다.
서브클래스 소비자는 변환되었거나 변환되었을 가능성이 있는 콘텐츠를 단계적으로 또는 한꺼번에 Response.Body.Data에 직접 저장할 수도 있고, 다른 방식으로 삭제할 수도 있습니다. 서브클래스 소비자는 데이터를 저장하기 위해 이 putData 메서드를 호출할 필요가 없습니다. 콘텐츠를 Response.Body.Data에 단계적으로 저장하고자 하는 소비자는 이 메서드를 호출하면 됩니다. 이 메서드는 AppendFcn을 사용하여 data를 Response.Body.Data에 추가하는데, 용량을 단계적으로 할당하여 효율적인 추가가 이루어지도록 시도합니다. 저장된 데이터의 실제 길이는 CurrentLength 속성에 저장됩니다. 이 값은 Response.Body.Data의 실제 길이보다 작을 수 있습니다. 전송이 완료되면(예를 들어 putData(consumer,[]) 또는 putData(consumer,uint8.empty)가 호출되면) Response.Body.Data는 CurrentLength로 잘립니다. 사용자는 자체 AppendFcn을 정의하여 다른 추가 메서드를 구현할 수 있습니다.
기본적으로 이 메서드는 항상 numel(data)와 동일한 size와 false와 동일한 stop을 반환합니다.
데이터를 저장하기 위해 이 메서드를 사용하고자 하는 사용자가 저장할 데이터의 최대 길이를 알고 있는 경우에는 이 메서드를 최초로 호출하기 전에 먼저 디폴트 값(예: 0)으로 채워진 원하는 크기의 벡터로 Response.Body.Data를 설정해야 합니다. 이 메서드는 데이터 영역의 시작 부분에서 데이터를 저장하기 시작한 다음 메시지의 끝부분에서 데이터를 데이터의 길이에 따라 잘라 CurrentLength에 저장된 데이터의 길이를 유지합니다.
데이터를 단계적으로 저장하기 위해 이 기본 클래스에서 이 메서드를 호출하는 소비자는 구조체와 셀형 배열을 포함하여 horzcat 또는 vertcat을 지원하는 모든 유형의 data를 제공할 수 있습니다. 셀형 배열을 제공하는 경우, 기존 데이터는 셀형 배열이 아닌 경우 셀형 배열로 변환되며, 셀형 배열의 요소는 CurrentLength+1에서 시작하는 기존 셀형 배열의 선형 인덱스에 삽입됩니다.
데이터를 저장하기 위해 ContentConsumer에서 이 메서드를 호출하는 경우, Response.Body.Data나 CurrentLength를 직접 수정하는 대신 이 메서드가 해당 속성을 관리하도록 해야 합니다.
슈퍼클래스에서 이 메서드를 호출하는 ContentConsumers는 슈퍼클래스가 예외를 발생시키는 경우 창 닫기, 임시 파일 삭제하기와 같은 정리 작업을 수행할 준비가 되어 있어야 합니다.
입력 인수
출력 인수
특성
Access | public |
버전 내역
R2018a에 개발됨