2013年8月24日土曜日

【なでしこ】プラグインを作ってみる ~設計編 その10~

最後はハンドル自体に対する関数です。

------ここから------

・ハンドルタイプ取得
    書式:ハンドルタイプ([int]ハンドル)
    戻値:[int]ハンドルタイプ
    説明:指定ハンドルの種別を取得する。戻り値は以下のとおり。
      
       -1 :エラー(使われてない、など)
        1 :バイト
        2 :バッファ(リングバッファ)
        4 :ファイル
        8 :キュー
       16 :スタック
       32 :ソケット
       64 :シリアルポート
      
・ハンドル解放
    書式:ハンドル解放([int]ハンドル)
    戻値:なし
    説明:取得したハンドルを解放する。対象がメモリの場合はメモリ
       が解放され、バイナリ(ファイル)やソケットの場合は
          それらがクローズされる。

------ここまで------

キューとかスタックにハンドルをつないだ場合、取得した際のタイプが
分からないのでそれを取得できる関数を用意します。

各関数群で「ハンドルを確保」した場合は、それを使わなくなった時点で
「ハンドル解放」します。ガーベージコレクトの様な高度な処理は内部で
持ってませんのでヾ(;´▽`A``。

尚、解放時、ハンドルのタイプによって実施する処理は違ってるんですが
それはこの関数内部で判断して実施してるので、とにかくいらなくなったら
解放してください(^^;。