デリゲート

C内の抽象関数ポインタ
今すぐダウンロード

デリゲート ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Other/Proprietary Li...
  • 価格:
  • FREE
  • 出版社名:
  • William Ahern
  • 出版社のWebサイト:
  • http://25thandclement.com/william/projects/

デリゲート タグ


デリゲート 説明

Cの抽象関数ポインタ Cライブラリとアプリケーションコンポーネントはしばしば他のコードとインターフェースするための関数コールバックを使用します。時々関数コールバックの必要な署名は厄介であり、/または不明瞭さと間接的なものを導入し、これはこれまでに黙って苦しむ必要がありました。簡単なインターフェイス(Invoke())を介してそれを公開します。それはラムダ表現に緩やかに近似する何かを提供します。またはさらに類似した、C#代理人。実装は、GCCのIntrospection Buildins、およびlibffiに依存します。どちらも広くPortableです。このコードの概要libevent APIを抽象化することでした。コアの実装は完全に一般的です。この一般的な実装は、event_set()/ event_add()ラッパー:event_delegate()を提供するために使用されます。典型的なvoid(*)(int、short、void *)コールバックはEvent_Delegate()によって静的に検出されます。そのような場合、3番目の引数のみが必要です。最初の2つは暗黙的です。この場合、libffiは完全にバイパスされ、ランタイムのペナルティを導入しません。これは、すべてのtrafficを取得するいくつかのコールバックを最適化するのに役立ちます.usage:/ * delegate()とinvoke()の単純な例。 * / struct delegate del = delegate_initializer; delegate(del、my_func、arg0、arg1、...); Invoke(DEL); / * sigtermでexit(exit_success)を実行するか60秒後に実行します。 * / struct event_delegateイベント= event_delegate_initializer; int sig = sigterm;短いイベント= ev_signal | ev_persist; struct timeval timeout = {60,0}; event_delegate(イベント、sig、イベント、タイムアウト、終了、exit_success); a小さな回帰ユーティリティはソースから構築できます。 delegate_mainの定義はmain()定義を公開します。このリリースの新機能: ・既に保留中であってもイベントを継続的に再追加するバグを修正してください。


デリゲート 関連ソフトウェア