NPP_NewStream

by 1 contributor:

« Gecko Plugin API Reference « Plug-in Side Plug-in API

概要

プラグインのインスタンスに新しいデータストリームを通知します。

文法

#include <npapi.h>
NPError NPP_NewStream(NPP        instance, 
                      NPMIMEType type,
                      NPStream*  stream,
                      NPBool     seekable,
                      uint16*    stype);
 

パラメータ

この関数は以下のパラメータを取ります:

instance
現在のプラグインのインスタンスへのポインタ。
type
ストリームの MIME タイプへのポインタ。
stream
新しいストリームへのポインタ。
seekable
ストリームがシークできるかどうかを示すブール値:
  • true: シークできる。ストリームは NPN_RequestRead の呼び出しを通してランダムアクセスをサポートします(例えば、ローカルファイルやバイト範囲のリクエストをサポートする HTTP サーバー)。
  • false: シークできない。ブラウザは NPN_RequestRead を通して作られたランダムアクセスのリクエストを満足するためストリーム内のデータをローカルキャッシュにコピーしなければなりません。
stype
新しいストリームのリクエストモード。以下の個々の値に関する更なる情報については、このセクションの使用法を参照してください。
  • NP_NORMAL(デフォルト): NPP_WriteReadyNPP_Write の一連の呼び出しでインスタンスにストリームデータを引き渡します。
  • NP_ASFILEONLY: ローカルキャッシュ内のファイルにストリームデータを保存します。
  • NP_ASFILE: ファイルがダウンロードされます。(モード NP_NORMAL のように)データがファイルに保存すされるときにそれがプラグインへ引き渡されるということを除いて NP_ASFILEONLY に似ています。
  • NP_SEEK: NPN_RequestRead の呼び出しを通して、必要なときにプラグインがストームデータをランダムアクセスできます。

戻り値

  • 成功ならば、この関数は NPERR_NO_ERROR を返します。
  • 失敗ならば、プラグインは読み込まれず、この関数はエラーコードを返します。返しうる値については、エラーコード を参照してください。

説明

ストリームが作成されたときに NPP_NewStream はプラグインに通知します。ストリームが破棄されるまで NPStream* ポインタは有効です。プラグインは stream->pdata 内でプラグインに結びつけられたプラグインのプライベートなデータを保存できます。ストリームの MIME タイプは type パラメータで与えられます。

The data in the stream can be the file specified in the SRC attribute of the EMBED tag, for an embedded instance, or the file itself, for a full-page instance.プラグインは関数 NPN_GetURL でストリームを要求できます。(正常か異常のいずれかで)ストリームが終了したときにブラウザは NPP_DestroyStream を呼びます。プラグインはストリームそれ自体を NPN_DestroyStream の呼び出しによってストームを終了することができます。

パラメータ stype はストリームのモードを定義します。値:

  • NP_NORMAL(デフォルト): NPP_WriteReadyNPP_Write の一連の呼び出しでストリームにデータを引き渡します。データがネットワークやファイルシステムから届いているときにはプラグインはデータを逐次的に処理できます。
  • NP_ASFILEONLY: ブラウザはストリームデータをローカルキャッシュ内のファイルに保存します。ストリームが終了したときに、プラグインにファイルのパスを引き渡すためにブラウザは NPP_StreamAsFile を呼びます。ストリームがローカルファイルに由来するものならば、NPP_WriteNPP_WriteReady 関数は呼ばれません。NPP_StreamAsFile は単にすぐ呼ばれます。このモードではプラットフォーム固有のファイル操作を使用してプラグインは完全にランダムアクセスできます。
  • NP_ASFILE: ファイルがダウンロードされます。(モード NP_NORMAL のように)データがファイルに保存されるときに NPP_WriteReadyNPP_Write の一連の呼び出しを通して、プラグインにデータが引き渡されるという点で NP_ASFILEONLY とは異なります。ストリームが終了したときに、ブラウザはプラグインにファイルのパスを引き渡すために NPP_StreamAsFile を呼びます。ストリーム内のデータがすでにローカルにあるファイルに由来するならば、データは読み込まれ、 NPP_Write を通してプラグインに送られ、ローカルキャッシュ内のファイルに書き込まれます。

注: ファイルにストリームを保存する必要があるほとんどのプラグインでは(上の)より効率的なモード NP_ASFILEONLY を使用すべきです; このモードは互換性のためだけに維持されています。

  • NP_SEEK: ストリームデータは自動的にインスタンスに引き渡されませんが、NPN_RequestRead の呼び出しを通して、必要なときにプラグインがランダムアクセスできます。ストリームがシークできなければ、ストリームを NP_SEEK モードに置くとブラウザはストリーム全体をディスクキャッシュに保存します。 すべてのデータが読み込まれてキャッシュ内に保存されたときだけ NPN_RequestRead リクエストは実行されます。存在しているネットワーク接続から最大の利益を引き出すための最適化として、ブラウザは NPN_RequestRead が呼ばれるまで(モード NP_NORMAL と同様に)ストリーム外からデータを順次的に読み出しつづけます。

注: NP_SEEK 以外のすべてのモードで、一度ストリーム内のすべてのデータがプラグインに書き込まれたらアプリケーションは NPP_DestroyStream を呼ぶべきです。プラグインは NPP_DestroyStream を呼ぶことでいつでもストリームの終了を要求することもできます。

関連項目

NPN_NewStream, NPP_StreamAsFile, NPP_Write, NPP_WriteReady, NPP_DestroyStream, NPN_RequestRead, NPStream, NPN_GetURL

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: Nog
最終更新者: Nog,