Main Content

matlab.net.http.ProgressMonitor 클래스

네임스페이스: matlab.net.http
슈퍼클래스: handle

HTTP 메시지 교환에 대한 진행률 모니터

설명

ProgressMonitor 클래스를 사용하여 HTTP 요청 메시지에 대한 진행률 모니터를 구현할 수 있습니다. 진행률 모니터는 이 클래스 속성의 변경 사항을 수신 대기(Listen)하여 선택한 항목에 대한 표시나 업데이트를 구현합니다.

진행률 모니터를 구현하려면 이 클래스의 서브클래스를 생성하십시오. 그런 다음 HTTPOptions 객체를 생성하고, 서브클래스를 ProgressMonitorFcn 속성으로 지정하고, UseProgressMonitor 속성을 true로 설정하십시오.

HTTP 요청은 RequestMessage.send 메서드를 호출할 때 시작됩니다. 이 과정에서 리디렉션 및 인증이 발생할 경우 양쪽 방향으로 전송되는 여러 메시지가 포함될 수 있습니다. 모든 전송이 완료되면 MATLAB®done 메서드를 호출합니다.

전송 중 수행되는 작업과 지침은 다음과 같습니다.

  • RequestMessage.send를 호출하면 MATLAB이 Max, CancelFcn, Direction 속성을 설정합니다.

  • 요청 메시지의 본문이 전송될 때마다 MATLAB이 Value 속성을 전송된 바이트 수로 나타냅니다.

  • ResponseMessage 수신이 시작되면 MATLAB은 DirectionResponse로 설정하고 다시 Value를 반복적으로 설정합니다.

  • 언제든지 전송을 취소하려면 CancelFcn 함수를 호출하십시오. 이 동작은 명령 창에서 send 함수를 중단하는 것과 동일합니다.

DirectionResponse로 변경되면 진행률 표시기나 기타 진행률이 시각적으로 표시되도록 할 수 있습니다. 각 후속 Value에 대해 표시기를 현재 Value로 업데이트하십시오. 이 메커니즘을 사용하면 진행률을 프로그래밍 방식으로도 모니터링할 수 있습니다.

matlab.net.http.ProgressMonitor 클래스는 handle 클래스입니다.

생성

obj = matlab.net.http.ProgressMonitor(Name,Value)는 하나 이상의 이름-값 쌍 인수로 추가 속성이 지정된 진행률 모니터를 만듭니다. Name은 속성 이름이고 Value는 해당 속성의 값입니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다. 지정되지 않은 속성은 디폴트 값으로 설정됩니다.

속성

모두 확장

첫 번째 호출까지의 시간(초)과 두 호출 간의 최대 간격으로, double형으로 지정됩니다.

Interval은 전송이 시작된 후 Value 속성을 처음 설정하기 전까지의 시간(초)입니다. Interval은 진행률에 상관없으며 Value 설정 간의 최대 시간 간격이며, 제안값입니다. 총 데이터 전송 시간이 Interval 시간(초)보다 작은 경우에는 Value가 설정되지 않습니다. Value가 마지막으로 설정된 이후 Interval 시간(초) 동안 전송된 데이터가 없을 경우, Value가 동일한 값으로 다시 설정될 수 있습니다. 이런 방법으로, 진행 상황이 없는 경우에도 ProgressMonitor 객체가 CancelFcn 호출을 통해 전송을 취소할 수 있습니다.

Interval 값은 제안 값입니다. 진행 상황이 없는 경우 MATLAB이 Interval 시간(초) 이내로 Value를 설정하지 못할 수 있습니다.

디폴트 간격은 2초입니다. 다른 값을 지정하려면 구문 생성 시 Interval을 설정하십시오. 진행 상황이 없는 경우 Value를 연속으로 설정한 시점 사이의 최소 간격은 0.1초가 됩니다. 그러나, Value가 변경되면 이 간격보다 더 자주 설정될 수도 있습니다.

Value를 처음 설정한 후에는 동일한 교환에서 후속 메시지에 대해 Value를 설정하는 데 지연이 발생하지 않습니다.

모니터가 사용 중임 표시자로, true 또는 false로 지정됩니다. MATLAB은 이 속성을 설정하여 전송 과정에서 이 ProgressMonitor 객체가 사용되고 있는지 여부를 나타냅니다. InUse는 한 번에 둘 이상의 전송에 대해 이 객체를 재사용하지 않도록 방지합니다.

데이터형: logical

전송을 취소하기 위해 호출할 함수로, 함수 핸들로 지정됩니다. MATLAB은 CancelFcnProgressMonitor가 전송을 취소하기 위해 호출해야 하는 함수로 설정합니다. 이 함수를 호출하는 것은 명령 창에서 전송을 중단하는 것과 효과가 동일합니다.

최대 전송 길이로, uint64형으로 지정됩니다. 최대 길이를 알 수 없는 경우 Max[]이 됩니다. Max는 표시되는 진행률 표시기에 대한 최댓값입니다.

MATLAB은 각 전송 및 수신 작업의 초기에 Max를 전송해야 할 바이트 수로 설정하며 이때 Content-Length 헤더 필드를 기반으로 합니다.

메시지에 Content-Length 필드가 없는 경우, Max[]이 됩니다. 이 경우, 전송 완료율을 확인할 수 없습니다. 그러나 Value 속성의 변경 사항은 여전히 모니터링할 수 있습니다.

전송 방향으로, matlab.net.http.MessageType 객체로 지정됩니다. MATLAB은 Direction을 설정하여 요청 메시지나 응답 메시지에 대해 진행률이 모니터링되는지 여부를 나타냅니다. 전송이 발생되지 않으면 Direction은 비어 있게 됩니다.

지금까지 전송된 바이트 수로, uint64형으로 지정됩니다. MATLAB은 Value를 현재 메시지에 대해 전송된 총 바이트 수로 반복적으로 설정합니다. 그러나, 메시지 시작 이후 최소 Interval 시간(초)이 경과될 때까지 교환에서 이 속성의 최초 설정을 지연시킵니다.

이 속성에 대해 set.Value 메서드를 구현하여 전송 진행률을 모니터링하십시오. set.Value 메서드로 진행률 모니터 내에서 전송을 취소할 수 있는 기능을 구현할 수도 있습니다.

MATLAB은 지정된 전송이 끝나면 Value를 빈 값으로 설정하여 현재 방향의 전송이 끝났음을 나타낼 수 있습니다. MATLAB은 done 메서드를 호출하기 전에 모든 전송의 마지막에서 항상 Value를 빈 값으로 설정합니다.

MATLAB이 Value 속성을 업데이트하는 빈도는 제어할 수 없습니다. 그러나, MATLAB은 진행 상황이 없는 경우에도 최소한 Interval 시간(초)마다 Value를 설정할 수 있습니다. 전송이 제대로 진행되지 않는 이런 상황에서는 사용자가 CancelFcn을 호출할 수 있습니다. 전송이 시작된 이후 Interval 시간(초) 동안 전송된 바이트가 없는 경우 Value는 0일 수 있습니다.

메서드

모두 확장

버전 내역

R2016b에 개발됨

참고 항목