低水準の API インデックス
*************************

このページでは低水準の asyncio API を全てリストしています。


イベントループの取得
====================

+----------------------------------------------------+----------------------------------------------------+
| "asyncio.get_running_loop()"                       | 実行中のイベントループを取得するために **利用が推  |
|                                                    | 奨される** 関数です。                              |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.get_event_loop()"                         | Get an event loop instance (current or via the     |
|                                                    | policy).                                           |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.set_event_loop()"                         | ポリシーに基づいて引数のイベントループを "カレント |
|                                                    | " (current event loop) に設定します。              |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.new_event_loop()"                         | 新しいイベントループのインスタンスを生成します。   |
+----------------------------------------------------+----------------------------------------------------+

-[ 使用例 ]-

* :ref:>>`<<asyncio.get_running_loop() を使う <asyncio_example_future>
  >>`<<。


イベントループのメソッド
========================

See also the main documentation section about the event loop methods.

-[ ライフサイクル ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.run_until_complete()"                        | Future/Task/awaitable が完了するまで実行します。   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.run_forever()"                               | イベントループを永久に実行します。                 |
+----------------------------------------------------+----------------------------------------------------+
| "loop.stop()"                                      | イベントループを停止します。                       |
+----------------------------------------------------+----------------------------------------------------+
| "loop.close()"                                     | イベントループをクローズします。                   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.is_running()"                                | イベントループが実行中の場合 "True" を返します。   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.is_closed()"                                 | イベントループがクローズされている場合 "True" を返 |
|                                                    | します。                                           |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.shutdown_asyncgens()"                | 非同期ジェネレータをクローズします。               |
+----------------------------------------------------+----------------------------------------------------+

-[ デバッグ ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.set_debug()"                                 | デバッグモードを有効化または無効化します。         |
+----------------------------------------------------+----------------------------------------------------+
| "loop.get_debug()"                                 | 現在のデバッグモードを取得します。                 |
+----------------------------------------------------+----------------------------------------------------+

-[ コールバックのスケジューリング ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.call_soon()"                                 | コールバックを即座に実行します。                   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.call_soon_threadsafe()"                      | "loop.call_soon()" のスレッドセーフ版です。        |
+----------------------------------------------------+----------------------------------------------------+
| "loop.call_later()"                                | 与えられた遅延時間の *経過後* にコールバックを実行 |
|                                                    | します。                                           |
+----------------------------------------------------+----------------------------------------------------+
| "loop.call_at()"                                   | *与えられた時刻に* コールバックを実行します。      |
+----------------------------------------------------+----------------------------------------------------+

-[ スレッドプール／プロセスプール ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.run_in_executor()"                   | CPUバウンドなブロッキング関数、またはその他のブロ  |
|                                                    | ッキング関数を "concurrent.futures" 実行オブジェク |
|                                                    | ト (executor) 上で実行します。                     |
+----------------------------------------------------+----------------------------------------------------+
| "loop.set_default_executor()"                      | "loop.run_in_executor()" のデフォルト実行オブジェ  |
|                                                    | クト (executor) を設 定します。                    |
+----------------------------------------------------+----------------------------------------------------+

-[ タスクとフューチャー ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.create_future()"                             | "Future" オブジェクトを生成します。                |
+----------------------------------------------------+----------------------------------------------------+
| "loop.create_task()"                               | コルーチンを "Task" としてスケジュールします。     |
+----------------------------------------------------+----------------------------------------------------+
| "loop.set_task_factory()"                          | "loop.create_task()" が "Tasks" を生成する際に使わ |
|                                                    | れるファクトリを設定 します。                      |
+----------------------------------------------------+----------------------------------------------------+
| "loop.get_task_factory()"                          | "loop.create_task()" が "Tasks" を生成するファクト |
|                                                    | リを取得します。                                   |
+----------------------------------------------------+----------------------------------------------------+

-[ DNS ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.getaddrinfo()"                       | "socket.getaddrinfo()" の非同期版です。            |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.getnameinfo()"                       | "socket.getnameinfo()" の非同期版です。            |
+----------------------------------------------------+----------------------------------------------------+

-[ ネットワークとプロセス間通信 (IPC) ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_connection()"                 | TCP接続を確立します。                              |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_server()"                     | TCPサーバーを起動します。                          |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_unix_connection()"            | Unix のソケット接続を確立します。                  |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_unix_server()"                | Create a Unix socket server.                       |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.connect_accepted_socket()"           | "socket" を "(transport, protocol)" のペアでラップ |
|                                                    | します。                                           |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_datagram_endpoint()"          | データグラム (UDP) 接続を確立します。              |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sendfile()"                          | 確立した接続 (transport) を通じてファイルを送信し  |
|                                                    | ます。                                             |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.start_tls()"                         | 既存の接続を TLS にアップグレードします。          |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.connect_read_pipe()"                 | パイプの読み出し側を "(transport, protocol)" のペ  |
|                                                    | アでラップします。                                 |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.connect_write_pipe()"                | パイプの書き込み側を "(transport, protocol)" のペ  |
|                                                    | アでラップします。                                 |
+----------------------------------------------------+----------------------------------------------------+

-[ ソケット ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_recv()"                         | "socket" からデータを受信します。                  |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_recv_into()"                    | "socket" からデータを受信し、バッファに送信します  |
|                                                    | 。                                                 |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_sendall()"                      | "socket" にデータを送信します。                    |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_connect()"                      | "socket" を接続します。                            |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_accept()"                       | "socket" の接続を受け入れます。                    |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_sendfile()"                     | Send a file over the "socket".                     |
+----------------------------------------------------+----------------------------------------------------+
| "loop.add_reader()"                                | ファイル記述子が読み込み可能かどうかの監視を開始し |
|                                                    | ます。                                             |
+----------------------------------------------------+----------------------------------------------------+
| "loop.remove_reader()"                             | ファイル記述子が読み込み可能かどうかの監視を停止し |
|                                                    | ます。                                             |
+----------------------------------------------------+----------------------------------------------------+
| "loop.add_writer()"                                | ファイル記述子が書き込み可能かどうかの監視を開始し |
|                                                    | ます。                                             |
+----------------------------------------------------+----------------------------------------------------+
| "loop.remove_writer()"                             | ファイル記述子が書き込み可能かどうかの監視を停止し |
|                                                    | ます。                                             |
+----------------------------------------------------+----------------------------------------------------+

-[ Unix シグナル ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.add_signal_handler()"                        | "signal" 用のハンドラーを追加します。              |
+----------------------------------------------------+----------------------------------------------------+
| "loop.remove_signal_handler()"                     | "signal" 用のハンドラーを削除します。              |
+----------------------------------------------------+----------------------------------------------------+

-[ サブプロセス ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.subprocess_exec()"                           | サブプロセスを生成します。                         |
+----------------------------------------------------+----------------------------------------------------+
| "loop.subprocess_shell()"                          | シェルコマンドからサブプロセスを生成します。       |
+----------------------------------------------------+----------------------------------------------------+

-[ エラー処理 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.call_exception_handler()"                    | 例外ハンドラを呼び出します。                       |
+----------------------------------------------------+----------------------------------------------------+
| "loop.set_exception_handler()"                     | 新しい例外ハンドラーを設定します。                 |
+----------------------------------------------------+----------------------------------------------------+
| "loop.get_exception_handler()"                     | 現在の例外ハンドラーを取得します。                 |
+----------------------------------------------------+----------------------------------------------------+
| "loop.default_exception_handler()"                 | デフォルトの例外ハンドラー実装です。               |
+----------------------------------------------------+----------------------------------------------------+

-[ 使用例 ]-

* Using asyncio.get_event_loop() and loop.run_forever().

* loop.call_later() を使う。

* "loop.create_connection()" を使って an echo-client を実装する。

* "loop.create_connection()" を使って ソケットに接続する。

* add_reader() を使ってファイルデスクリプタの読み込みイベントを監視す
  る。

* loop.add_signal_handler() を使う。

* loop.subprocess_exec() を使う。


トランスポート
==============

全てのトランスポートは以下のメソッドを実装します:

+----------------------------------------------------+----------------------------------------------------+
| "transport.close()"                                | トランスポートをクローズします。                   |
+----------------------------------------------------+----------------------------------------------------+
| "transport.is_closing()"                           | トランスポートを閉じている最中か閉じていた場合     |
|                                                    | "True" を返します。                                |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_extra_info()"                       | トランスポートについての情報をリクエストします。   |
+----------------------------------------------------+----------------------------------------------------+
| "transport.set_protocol()"                         | トランスポートに新しいプロトコルを設定します。     |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_protocol()"                         | 現在のプロトコルを返します。                       |
+----------------------------------------------------+----------------------------------------------------+

データを受信できるトランスポート (TCP 接続、 Unix 接続、パイプなど) の
メソッドです。該当するトランスポートは "loop.create_connection()",
"loop.create_unix_connection()", "loop.connect_read_pipe()" などの戻り
値です:

-[ 読み込みトランスポート ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.is_reading()"                           | トランスポートがデータを受信中の場合 "True" を返し |
|                                                    | ます。                                             |
+----------------------------------------------------+----------------------------------------------------+
| "transport.pause_reading()"                        | データの受信を停止します。                         |
+----------------------------------------------------+----------------------------------------------------+
| "transport.resume_reading()"                       | データの受信を再開します。                         |
+----------------------------------------------------+----------------------------------------------------+

データを送信できるトランスポート (TCP 接続、 Unix 接続、パイプなど) の
メソッドです。該当するトランスポートは "loop.create_connection()",
"loop.create_unix_connection()", "loop.connect_write_pipe()" などの戻
り値です:

-[ トランスポートにデータを書き込みます。 ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.write()"                                | トランスポートにデータを書き込みます。             |
+----------------------------------------------------+----------------------------------------------------+
| "transport.writelines()"                           | トランスポートにバッファの内容を書き込みます。     |
+----------------------------------------------------+----------------------------------------------------+
| "transport.can_write_eof()"                        | トランスポートが 終端 (EOF) の送信をサポートしてい |
|                                                    | る場合 "True" を返し ます。                        |
+----------------------------------------------------+----------------------------------------------------+
| "transport.write_eof()"                            | バッファに残っているデータをフラッシュしてから終端 |
|                                                    | (EOF) を送信して、 トランスポートをクローズします  |
|                                                    | 。                                                 |
+----------------------------------------------------+----------------------------------------------------+
| "transport.abort()"                                | トランスポートを即座にクローズします。             |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_write_buffer_size()"                | 書き込みフロー制御の高水位点と低水位点を取得します |
|                                                    | 。                                                 |
+----------------------------------------------------+----------------------------------------------------+
| "transport.set_write_buffer_limits()"              | 書き込みフロー制御の高水位点と低水位点を設定します |
|                                                    | 。                                                 |
+----------------------------------------------------+----------------------------------------------------+

"loop.create_datagram_endpoint()" が返すトランスポート:

-[ データグラムトランスポート ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.sendto()"                               | リモートピアにデータを送信します。                 |
+----------------------------------------------------+----------------------------------------------------+
| "transport.abort()"                                | トランスポートを即座にクローズします。             |
+----------------------------------------------------+----------------------------------------------------+

サブプロセスに対するトランスポートの低レベルな抽象化です。
"loop.subprocess_exec()" や "loop.subprocess_shell()" の戻り値です:

-[ サブプロセス化されたトランスポート ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.get_pid()"                              | サブプロセスのプロセス ID を返します。             |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_pipe_transport()"                   | リクエストされた通信パイプ (標準入力 *stdin*, 標準 |
|                                                    | 出力 *stdout*, また は標準エラー出力 *stderr*) の  |
|                                                    | ためのトランスポートを返します。                   |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_returncode()"                       | サブプロセスの終了ステータスを返します。           |
+----------------------------------------------------+----------------------------------------------------+
| "transport.kill()"                                 | サブプロセスを強制終了 (kill) します。             |
+----------------------------------------------------+----------------------------------------------------+
| "transport.send_signal()"                          | サブプロセスにシグナルを送信します。               |
+----------------------------------------------------+----------------------------------------------------+
| "transport.terminate()"                            | サブプロセスを停止します。                         |
+----------------------------------------------------+----------------------------------------------------+
| "transport.close()"                                | サブプロセスを強制終了 (kill) し、全てのパイプをク |
|                                                    | ローズします。                                     |
+----------------------------------------------------+----------------------------------------------------+


プロトコル
==========

プロトコルクラスは以下の **コールバックメソッド** を実装することができ
ます:

+----------------------------------------------------+----------------------------------------------------+
| "callback" "connection_made()"                     | コネクションが作成されたときに呼び出されます。     |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "connection_lost()"                     | コネクションが失われた、あるいはクローズされたとき |
|                                                    | に呼び出されます。                                 |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "pause_writing()"                       | トランスポートのバッファーサイズが最高水位点       |
|                                                    | (High-Water Mark) を超え たときに呼び出されます。  |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "resume_writing()"                      | トランスポートのバッファーサイズが最低水位点 (Low- |
|                                                    | Water Mark) に達した きに呼び出されます。          |
+----------------------------------------------------+----------------------------------------------------+

-[ ストリーミングプロトコル (TCP, Unix ソケット, パイプ) ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "data_received()"                       | データを受信したときに呼び出されます。             |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "eof_received()"                        | 終端 (EOF) を受信したときに呼び出されます。        |
+----------------------------------------------------+----------------------------------------------------+

-[ バッファリングされたストリーミングプロトコル ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "get_buffer()"                          | 新しい受信バッファを割り当てるために呼び出します。 |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "buffer_updated()"                      | 受信データによりバッファが更新された場合に呼び出さ |
|                                                    | れます。                                           |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "eof_received()"                        | 終端 (EOF) を受信したときに呼び出されます。        |
+----------------------------------------------------+----------------------------------------------------+

-[ データグラムプロトコル ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "datagram_received()"                   | データグラムを受信したときに呼び出されます。       |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "error_received()"                      | 直前の送信あるいは受信が "OSError" を送出したとき  |
|                                                    | に呼び出されます。                                 |
+----------------------------------------------------+----------------------------------------------------+

-[ サブプロセスプロトコル ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "pipe_data_received()"                  | 子プロセスが標準出力 (*stdout*) または標準エラー出 |
|                                                    | 力 (*stderr*) のパイ プにデータを書き込んだときに  |
|                                                    | 呼び出されます。                                   |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "pipe_connection_lost()"                | 子プロセスと通信するパイプのいずれかがクローズされ |
|                                                    | たときに呼び出されま す。                          |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "process_exited()"                      | 子プロセスが終了したときに呼び出されます。         |
+----------------------------------------------------+----------------------------------------------------+


イベントループのポリシー
========================

ポリシーは "asyncio.get_event_loop()" などの関数の振る舞いを変更する低
レベルなメカニズムです。詳細は ポリシーについてのセクション を参照して
ください。

-[ ポリシーへのアクセス ]-

+----------------------------------------------------+----------------------------------------------------+
| "asyncio.get_event_loop_policy()"                  | プロセス全体にわたる現在のポリシーを返します。     |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.set_event_loop_policy()"                  | 新たなプロセス全体にわたるポリシーを設定します。   |
+----------------------------------------------------+----------------------------------------------------+
| "AbstractEventLoopPolicy"                          | ポリシーオブジェクトの基底クラスです。             |
+----------------------------------------------------+----------------------------------------------------+
