![]() |
![]() |
![]() |
Cutterリファレンスマニュアル | ![]() |
---|---|---|---|---|
Top | 説明 | オブジェクト階層 |
#define GCUT_EVENT_LOOP_ERROR struct GCutEventLoop; struct GCutEventLoopClass; guint gcut_event_loop_add_idle (GCutEventLoop *loop
,GSourceFunc function
,gpointer data
); guint gcut_event_loop_add_idle_full (GCutEventLoop *loop
,gint priority
,GSourceFunc function
,gpointer data
,GDestroyNotify notify
); guint gcut_event_loop_add_timeout (GCutEventLoop *loop
,gdouble interval_in_seconds
,GSourceFunc function
,gpointer data
); guint gcut_event_loop_add_timeout_full (GCutEventLoop *loop
,gint priority
,gdouble interval_in_seconds
,GSourceFunc function
,gpointer data
,GDestroyNotify notify
); GQuark gcut_event_loop_error_quark (void
); gboolean gcut_event_loop_iterate (GCutEventLoop *loop
,gboolean may_block
); void gcut_event_loop_quit (GCutEventLoop *loop
); gboolean gcut_event_loop_remove (GCutEventLoop *loop
,guint tag
); void gcut_event_loop_run (GCutEventLoop *loop
); guint gcut_event_loop_watch_child (GCutEventLoop *loop
,GPid pid
,GChildWatchFunc function
,gpointer data
); guint gcut_event_loop_watch_child_full (GCutEventLoop *loop
,gint priority
,GPid pid
,GChildWatchFunc function
,gpointer data
,GDestroyNotify notify
); guint gcut_event_loop_watch_io (GCutEventLoop *loop
,GIOChannel *channel
,GIOCondition condition
,GIOFunc function
,gpointer data
);
GCutEventLoopはイベントループをカプセル化します。イベントループはGCutProcessで使われています。GCutProcessはデフォルトではGLibのデフォルトGMainContextを使います。
ふつうはカスタムGCutEventLoopは必要ありません。必要になるのは特別な場合だけです。例えば、イベントループのバックエンドにGLibのGMainLoopではなく、libevのイベントループに使っている場合です。
GCutterはGLibのGMainContextとGMainLoop用のGCutEventLoopであるGCutGLibEventLoopを提供します。
struct GCutEventLoopClass { GObjectClass parent_class; void (*run) (GCutEventLoop *loop); gboolean (*iterate) (GCutEventLoop *loop, gboolean may_block); void (*quit) (GCutEventLoop *loop); guint (*watch_io) (GCutEventLoop *loop, GIOChannel *channel, GIOCondition condition, GIOFunc function, gpointer data); guint (*watch_child_full) (GCutEventLoop *loop, gint priority, GPid pid, GChildWatchFunc function, gpointer data, GDestroyNotify notify); guint (*add_timeout_full) (GCutEventLoop *loop, gint priority, gdouble interval_in_seconds, GSourceFunc function, gpointer data, GDestroyNotify notify); guint (*add_idle_full) (GCutEventLoop *loop, gint priority, GSourceFunc function, gpointer data, GDestroyNotify notify); gboolean (*remove) (GCutEventLoop *loop, guint tag); };
guint gcut_event_loop_add_idle (GCutEventLoop *loop
,GSourceFunc function
,gpointer data
);
デフォルト優先度より高い優先度がない場合に呼び出される関数function
を追加します。
|
GCutEventLoop。 |
|
呼び出される関数 |
|
function に渡されるデータ |
戻り値 : |
イベントID。 |
1.1.6から
guint gcut_event_loop_add_idle_full (GCutEventLoop *loop
,gint priority
,GSourceFunc function
,gpointer data
,GDestroyNotify notify
);
優先度priority
より高い優先度のイベントがない場合に呼び出される関数function
を追加します。
|
GCutEventLoop。 |
|
このイベントの優先度。 |
|
呼び出される関数 |
|
function に渡されるデータ |
|
このイベントが削除された時に呼ばれる関数またはNULL 。 |
戻り値 : |
イベントID。 |
1.1.6から
guint gcut_event_loop_add_timeout (GCutEventLoop *loop
,gdouble interval_in_seconds
,GSourceFunc function
,gpointer data
);
一定間隔で呼び出されるfunction
をデフォルト優先度で追加します。
|
GCutEventLoop。 |
|
function を呼び出す感覚。単位は秒。 |
|
呼び出される関数 |
|
function に渡されるデータ |
戻り値 : |
イベントID。 |
1.1.6から
guint gcut_event_loop_add_timeout_full (GCutEventLoop *loop
,gint priority
,gdouble interval_in_seconds
,GSourceFunc function
,gpointer data
,GDestroyNotify notify
);
定期的に呼び出される関数を優先度priority
で追加します。
|
GCutEventLoop。 |
|
このイベントの優先度。 |
|
function を呼び出す感覚。単位は秒。 |
|
呼び出される関数 |
|
function に渡されるデータ |
|
このイベントが削除された時に呼ばれる関数またはNULL 。 |
戻り値 : |
イベントID。 |
1.1.6から
gboolean gcut_event_loop_iterate (GCutEventLoop *loop
,gboolean may_block
);
イベントループを1回だけ回します。もし、イベントがなくmay_block
がTRUE
なら、イベントがくるまで待ちつづけます。may_block
がFALSE
なら、イベントがくるのを待ちません。
|
GCutEventLoop。 |
|
呼び出しがブロックするかどうか。 |
戻り値 : |
イベントを処理したらTRUE 。 |
1.1.6から
void gcut_event_loop_quit (GCutEventLoop *loop
);
実行中のloop
を止めます。
|
GCutEventLoop。 |
1.1.6から
gboolean gcut_event_loop_remove (GCutEventLoop *loop
,guint tag
);
IDがtag
のイベントを削除します。
|
GCutEventLoop。 |
|
削除するソースのID。 |
戻り値 : |
ソースが見つかって削除されたらTRUE 。 |
1.1.6から
void gcut_event_loop_run (GCutEventLoop *loop
);
gcut_event_loop_quit()
が呼ばれるまでイベントループを回します。
|
GCutEventLoop。 |
1.1.6から
guint gcut_event_loop_watch_child (GCutEventLoop *loop
,GPid pid
,GChildWatchFunc function
,gpointer data
);
pid
の子プロセスが終了した時に呼ばれるfunction
をデフォルトの優先度でloop
に追加します。
|
GCutEventLoop。 |
|
監視するプロセスのID |
|
呼び出される関数 |
|
function に渡されるデータ |
戻り値 : |
イベントID。 |
1.1.6から
guint gcut_event_loop_watch_child_full (GCutEventLoop *loop
,gint priority
,GPid pid
,GChildWatchFunc function
,gpointer data
,GDestroyNotify notify
);
pid
の子プロセスが終了した時に呼ばれるfunction
をデフォルトの優先度でloop
に追加します。
|
GCutEventLoop。 |
|
このイベントの優先度。 |
|
監視するプロセスのID |
|
呼び出される関数 |
|
function に渡されるデータ |
|
このイベントが削除された時に呼ばれる関数またはNULL 。 |
戻り値 : |
イベントID。 |
1.1.6から
guint gcut_event_loop_watch_io (GCutEventLoop *loop
,GIOChannel *channel
,GIOCondition condition
,GIOFunc function
,gpointer data
);
channel
をデフォルトの優先度でloop
に追加します。channel
にcondition
イベントが発生したらfunction
が呼ばれます。
|
GCutEventLoop。 |
|
GIOChannel。 |
|
監視する状態。 |
|
呼び出される関数 |
|
function に渡されるデータ |
戻り値 : |
イベントID。 |
1.1.6から