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

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

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

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

使用例

- asyncio.get_running_loop() を使う。

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

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()` | 与えられた時刻に コールバックを実行します。

Thread/Interpreter/Process Pool

`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_recvfrom()` | Receive a datagram from the `socket`.
`await` `loop.sock_recvfrom_into()` | Receive a datagram from the `socket` into a buffer.
`await` `loop.sock_sendall()` | `socket` にデータを送信します。
`await` `loop.sock_sendto()` | Send a datagram via the `socket` to the given address.
`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.new_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()` | Return the current size of the output buffer.
`transport.get_write_buffer_limits()` | 書き込みフロー制御の高水位点と低水位点を取得します。
`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()` | Called when the child process has exited. It can be called before `pipe_data_received()` and `pipe_connection_lost()` methods.

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

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

ポリシーへのアクセス

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