## Abstracted event loop Abstracted event loop — GCutterで使うイベントループをカスタマイズするための抽象化されたイベントループAPI。 |

## Functions

GQuark | gcut_event_loop_error_quark ()
void | gcut_event_loop_run ()
gboolean | gcut_event_loop_iterate ()
void | gcut_event_loop_quit ()
guint | gcut_event_loop_watch_io ()
guint | gcut_event_loop_watch_child ()
guint | gcut_event_loop_watch_child_full ()
guint | gcut_event_loop_add_timeout ()
guint | gcut_event_loop_add_timeout_full ()
guint | gcut_event_loop_add_idle ()
guint | gcut_event_loop_add_idle_full ()
gboolean | gcut_event_loop_remove ()

## Types and Values

#define | GCUT_EVENT_LOOP_ERROR

## オブジェクト階層

    GObject
        ╰── GCutEventLoop
            ╰── GCutGLibEventLoop

## 説明

GCutEventLoopはイベントループをカプセル化します。イベントループはGCutProcessで使われています。GCutProcessはデフォルトではGLibのデフォルトGMainContextを使います。

ふつうはカスタムGCutEventLoopは必要ありません。必要になるのは特別な場合だけです。例えば、イベントループのバックエンドにGLibのGMainLoopではなく、libevのイベントループに使っている場合です。

GCutterはGLibのGMainContextとGMainLoop用のGCutEventLoopであるGCutGLibEventLoopを提供します。

## Functions

### gcut_event_loop_error_quark ()

    GQuark
    gcut_event_loop_error_quark (void);

### gcut_event_loop_run ()

    GCutGLibEventLoopはGLibのGMainContextとGMainLoop用のGCutEventLoop実装です。

`gcut_event_loop_quit()`が呼ばれるまでイベントループを回します。

#### Parameters

loop | GCutEventLoop。 |

Since: 1.1.6

### gcut_event_loop_iterate ()

    gboolean
    gcut_event_loop_iterate (GCutEventLoop *loop,
                             gboolean may_block);

イベントループを1回だけ回します。もし、イベントがなく`may_block`が`TRUE`なら、イベントがくるまで待ちつづけます。`may_block`が`FALSE`なら、イベントがくるのを待ちません。

#### Parameters

loop | GCutEventLoop。 |
may_block | 呼び出しがブロックするかどうか。 |

#### Returns

イベントを処理したら`TRUE`。

Since: 1.1.6

### gcut_event_loop_quit ()

    GCutGLibEventLoopはGLibのGMainContextとGMainLoop用のGCutEventLoop実装です。

実行中の`loop`を止めます。

#### Parameters

loop | GCutEventLoop。 |

Since: 1.1.6

### gcut_event_loop_watch_io ()

    guint
    gcut_event_loop_watch_io (GCutEventLoop *loop,
                              GIOChannel *channel,
                              GIOCondition condition,
                              GIOFunc function,
                              gpointer data);

`channel`をデフォルトの優先度で`loop`に追加します。`channel`に`condition`イベントが発生したら`function`が呼ばれます。

#### Parameters

loop | GCutEventLoop。 |
channel | GIOChannel。 |
説明 | 監視する状態。 |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_watch_child ()

    guint
    gcut_event_loop_watch_child (GCutEventLoop *loop,
                                 GPid pid,
                                 GChildWatchFunc function,
                                 gpointer data);

`pid`の子プロセスが終了した時に呼ばれる`function`をデフォルトの優先度で`loop`に追加します。

#### Parameters

loop | GCutEventLoop。 |
pid | 監視するプロセスのID |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_watch_child_full ()

    guint
    gcut_event_loop_watch_child_full (GCutEventLoop *loop,
                                      gint priority,
                                      GPid pid,
                                      GChildWatchFunc function,
                                      gpointer data,
                                      GDestroyNotify notify);

`pid`の子プロセスが終了した時に呼ばれる`function`をデフォルトの優先度で`loop`に追加します。

#### Parameters

loop | GCutEventLoop。 |
priority | このイベントの優先度。 |
pid | 監視するプロセスのID |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |
notify | このイベントが削除された時に呼ばれる関数または`NULL`。 |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_add_timeout ()

    guint
    gcut_event_loop_add_timeout (GCutEventLoop *loop,
                                 gdouble interval_in_seconds,
                                 GSourceFunc function,
                                 gpointer data);

一定間隔で呼び出される`function`をデフォルト優先度で追加します。

#### Parameters

loop | GCutEventLoop。 |
interval_in_seconds | `function`を呼び出す感覚。単位は秒。 |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_add_timeout_full ()

    guint
    gcut_event_loop_add_timeout_full (GCutEventLoop *loop,
                                      gint priority,
                                      gdouble interval_in_seconds,
                                      GSourceFunc function,
                                      gpointer data,
                                      GDestroyNotify notify);

定期的に呼び出される関数を優先度`priority`で追加します。

#### Parameters

loop | GCutEventLoop。 |
priority | このイベントの優先度。 |
interval_in_seconds | `function`を呼び出す感覚。単位は秒。 |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |
notify | このイベントが削除された時に呼ばれる関数または`NULL`。 |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_add_idle ()

    guint
    gcut_event_loop_add_idle (GCutEventLoop *loop,
                              GSourceFunc function,
                              gpointer data);

デフォルト優先度より高い優先度がない場合に呼び出される関数`function`を追加します。

#### Parameters

loop | GCutEventLoop。 |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_add_idle_full ()

    guint
    gcut_event_loop_add_idle_full (GCutEventLoop *loop,
                                   gint priority,
                                   GSourceFunc function,
                                   gpointer data,
                                   GDestroyNotify notify);

優先度`priority`より高い優先度のイベントがない場合に呼び出される関数`function`を追加します。

#### Parameters

loop | GCutEventLoop。 |
priority | このイベントの優先度。 |
呼び出される関数 | 呼び出される関数 |
data | `function`に渡されるデータ |
notify | このイベントが削除された時に呼ばれる関数または`NULL`。 |

#### Returns

イベントID。

Since: 1.1.6

### gcut_event_loop_remove ()

    gboolean
    gcut_event_loop_remove (GCutEventLoop *loop,
                            guint tag);

IDが`tag`のイベントを削除します。

#### Parameters

loop | GCutEventLoop。 |
tag | 削除するソースのID。 |

#### Returns

ソースが見つかって削除されたら`TRUE`。

Since: 1.1.6

## Types and Values

### GCUT_EVENT_LOOP_ERROR

    #define GCUT_EVENT_LOOP_ERROR           (gcut_event_loop_error_quark())