Main Content

matlab.net.http.ProgressMonitor クラス

パッケージ:matlab.net.http
スーパークラス:handle

HTTP メッセージ交換の進行状況モニター

説明

ProgressMonitorクラスは、HTTP 要求メッセージの進行状況モニターを実装するために使用します。進行状況モニターは、このクラスのプロパティ内の変更をリッスンしてユーザーが選択する表示または更新を行います。

進行状況モニターを実装するには、このクラスのサブクラスを作成します。次に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)は 1 つ以上の名前と値のペアの引数で指定された追加のプロパティを使用して、進行状況モニターを作成します。Nameはプロパティ名で,Valueは対応する値です。Name1,Value1,...,NameN,ValueNのように、複数の名前と値のペアの引数を任意の順番で指定できます。未指定のプロパティは既定値に設定されます。

プロパティ

すべて展開する

最初の呼び出しまでの時間 (秒) と呼び出し間の最大間隔。double として指定します。

Intervalは,転送が開始されてからValueプロパティが最初に設定されるまでの時間 (秒単位) です。Intervalは、進行状況にかかわらず、Valueの設定間隔の推奨最大時間です。データの合計転送時間がInterval秒未満の場合、Valueは設定されません。Valueが最後に設定されてからInterval秒後にデータの転送が行われない場合、Valueが同じ値で再設定されることがあります。これにより、進行がない場合でも、ProgressMonitorオブジェクトはCancelFcnを呼び出して転送をキャンセルすることができます。

Interval値は推奨値です。進行が見られない場合、MATLAB がValueInterval秒以内に設定するという保証はありません。

既定の間隔は 2 秒です。異なる値を指定するには、コンストラクターでIntervalを設定します。進行が見られない場合、Valueの連続設定の最小間隔は 0.1 秒です。ただし、Valueが変わると、この間隔よりも頻繁に設定されることがあります。

最初にValueが設定された後、同じ交換内の後続メッセージについてValueがすぐに設定されます。

モニター使用中インジケーター。trueまたはfalseとして指定します。MATLAB は、このプロパティを設定して転送中にこのProgressMonitorオブジェクトを使用しているかどうかを示します。InUseにより、このオブジェクトを一度に複数の転送で再使用できなくなります。

データ型:logical

転送をキャンセルするために呼び出す関数。関数ハンドルとして指定します。MATLAB は、転送をキャンセルするためにProgressMonitorが呼び出すべき関数にCancelFcnを設定します。この関数の呼び出しは、コマンド ウィンドウで転送を中断するのと同じ効果があります。

転送の最大長。uint64として指定します。最大長が不明な場合、Max[]になります。Maxは表示される進行状況インジケーターの最大値です。

MATLAB は各送受信操作の開始時に、Content-Length ヘッダー フィールドに基づいてMaxを転送すべきバイト数に設定します。

メッセージに 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がゼロになることがあります。

メソッド

すべて展開する

バージョン履歴

R2016b で導入