-
Notifications
You must be signed in to change notification settings - Fork 56
/
stream-filter-prepend.xml
151 lines (145 loc) · 5.88 KB
/
stream-filter-prepend.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: hirokawa Status: ready -->
<!-- Credits: mumumu -->
<refentry xml:id="function.stream-filter-prepend" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>stream_filter_prepend</refname>
<refpurpose>フィルタをストリームに付加する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>stream_filter_prepend</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam><type>string</type><parameter>filtername</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>read_write</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>params</parameter></methodparam>
</methodsynopsis>
<para>
<parameter>filtername</parameter> で指定されたフィルタを、
<parameter>stream</parameter> に付加されているフィルタのリストに加えます。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stream</parameter></term>
<listitem>
<para>
対象となるストリーム。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>filtername</parameter></term>
<listitem>
<para>
フィルタ名。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>read_write</parameter></term>
<listitem>
<para>
デフォルトでは、 <function>stream_filter_prepend</function> は
ストリームが読み込み用に開かれている場合は (つまり、オープンモードが
<literal>r</literal> あるいは <literal>+</literal> を伴う場合は)、
フィルタを <literal>リードフィルタチェイン</literal> に追加し、
ストリームが書き出し用に開かれている場合は(つまり、オープンモードが
<literal>w</literal> か <literal>a</literal>か、あるいは<literal>+</literal> を伴う場合は)、
<literal>ライトフィルターチェィン</literal>にも追加します。
<constant>STREAM_FILTER_READ</constant>・
<constant>STREAM_FILTER_WRITE</constant>・
<constant>STREAM_FILTER_ALL</constant> を <parameter>read_write</parameter>パラメータに渡すことで、この挙動を変えることができます。
このパラメータを使った例については、
<function>stream_filter_append</function> を参照ください。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>
このフィルタは、指定された <parameter>params</parameter> と共に、
リストの<emphasis>先頭</emphasis>に追加され、ストリームに対する操作の中で最初に呼び出されます。
フィルタをリストの末尾に加えたいときは、<function>stream_filter_append</function>
を使ってください。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
成功した場合にリソース、失敗した場合に &false; を返します。
このリソースは、<function>stream_filter_remove</function>
をコールする際にこのフィルタインスタンスを参照するために使用可能です。
</para>
<para>
&false; が返されるのは、<parameter>stream</parameter> がリソースではない場合や
<parameter>filtername</parameter> が見つからない場合です。
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>カスタム(ユーザー)フィルタを使うには</title>
<simpara>
カスタムフィルタを <parameter>filtername</parameter> に指定するためには、
まず <function>stream_filter_register</function> 関数でそれを登録しておく
必要があります。
</simpara>
</note>
<note>
<simpara>
ストリームデータは(ローカルおよびリモートの)リソースからチャンク単位で
読み込まれ、内部バッファに保持されます。新しいフィルタがストリームに
追加されても、内部バッファにあるデータのうち既に他のフィルタの処理が
終わっているものは新しいフィルタでは<emphasis>処理されません</emphasis>。
これは <function>stream_filter_apppend</function> の挙動とは違います。
</simpara>
</note>
<note>
<simpara>
フィルタが読み込み用および書き込み用に追加されると、フィルタのインスタンスが
2 つ作成されます。両方のフィルタリソースを取得するには、
<constant>STREAM_FILTER_READ</constant> と
<constant>STREAM_FILTER_WRITE</constant> で
<function>stream_filter_prepend</function> を 2 回コールしなければなりません。
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>stream_filter_register</function></member>
<member><function>stream_filter_append</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->