Module: Suzuna::Template
- Defined in:
- lib/suzuna.rb
Overview
I/O 要求処理の基本機能のみを実装したモジュールです。
クラスやモジュールに include することを想定しています。
必要なインスタンスメソッドは include したクラスで再定義して下さい。
Instance Method Summary collapse
-
#cleanup ⇒ Object
このメソッドは geom gate オブジェクトが破棄されたあとに呼ばれます。.
-
#delete(offset, size) ⇒ Object
このメソッドは geom gate オブジェクトに対してセクタの削除(解放)要求があった時に呼ばれます。.
-
#flags ⇒ Object
このメソッドはデバイスの読み書き特性を取得するために呼ばれます。.
-
#info ⇒ Object
このメソッドはデバイスのテキスト情報を取得するために呼ばれます。.
-
#mediasize ⇒ Object
このメソッドはデバイスの大きさを取得するために呼ばれます。.
-
#read(offset, size, buf) ⇒ Object
このメソッドは geom gate オブジェクトに対して読み込み要求があった時に呼ばれます。.
-
#sectorsize ⇒ Object
このメソッドはデバイスのセクタサイズ (読み書きの最小単位) を取得するために呼ばれます。.
-
#timeout ⇒ Object
このメソッドはデバイスの要求処理の最大待機時間を取得するために呼ばれます。.
-
#unit ⇒ Object
このメソッドはデバイスのユニット番号を取得するために呼ばれます。.
-
#write(offset, buf) ⇒ Object
このメソッドは geom gate オブジェクトに対して書き込み要求があった時に呼ばれます。.
Instance Method Details
#cleanup ⇒ Object
このメソッドは geom gate オブジェクトが破棄されたあとに呼ばれます。
仮想デバイスの終了処理などを目的として用意されています。
戻り値は無視されます。
117 118 119 |
# File 'lib/suzuna.rb', line 117 def cleanup nil end |
#delete(offset, size) ⇒ Object
このメソッドは geom gate オブジェクトに対してセクタの削除(解放)要求があった時に呼ばれます。
戻り値として、処理の成否である Errno::EXXX クラスかそのインスタンス、errno の整数値を返して下さい。 正常な場合には、nil を返すことで Errno::NOERROR と認識されます。
151 152 153 |
# File 'lib/suzuna.rb', line 151 def delete(offset, size) raise NotImplementedError, "IMPLEMENT ME! #delete(offset, size) -> errno" end |
#flags ⇒ Object
このメソッドはデバイスの読み書き特性を取得するために呼ばれます。
/dev 以下に geom gate オブジェクトとして作成される前に呼ばれます。
戻り値として G_GATE_FLAG_READWRITE、G_GATE_FLAG_READONLY、G_GATE_FLAG_WRITEONLY のいずれかを返して下さい。
62 63 64 |
# File 'lib/suzuna.rb', line 62 def flags G_GATE_FLAG_READONLY end |
#info ⇒ Object
このメソッドはデバイスのテキスト情報を取得するために呼ばれます。
/dev 以下に geom gate オブジェクトとして作成される前に呼ばれます。
戻り値として nil か 2048 バイト未満の文字列を返して下さい。
84 85 86 |
# File 'lib/suzuna.rb', line 84 def info "#{Suzuna}-#{VERSION} (powered by #{RUBY_ENGINE})" end |
#mediasize ⇒ Object
このメソッドはデバイスの大きさを取得するために呼ばれます。
/dev 以下に geom gate オブジェクトとして作成される前に呼ばれます。
戻り値として 0以上で sectorsize の整数倍となる整数を返して下さい。
51 52 53 |
# File 'lib/suzuna.rb', line 51 def mediasize raise NotImplementedError, "IMPLEMENT ME! #mediasize -> integer" end |
#read(offset, size, buf) ⇒ Object
このメソッドは geom gate オブジェクトに対して読み込み要求があった時に呼ばれます。
文字列オブジェクトである buf に読み込んだデータを転写して下さい。
戻り値として、処理の成否である Errno::EXXX クラスかそのインスタンス、errno の整数値を返して下さい。 正常な場合には、nil を返すことで Errno::NOERROR と認識されます。
129 130 131 |
# File 'lib/suzuna.rb', line 129 def read(offset, size, buf) raise NotImplementedError, "IMPLEMENT ME! #read(offset, size, buf) -> errno" end |
#sectorsize ⇒ Object
このメソッドはデバイスのセクタサイズ (読み書きの最小単位) を取得するために呼ばれます。
/dev 以下に geom gate オブジェクトとして作成される前に呼ばれます。
戻り値として正の整数値を返して下さい。
73 74 75 |
# File 'lib/suzuna.rb', line 73 def sectorsize 512 end |
#timeout ⇒ Object
このメソッドはデバイスの要求処理の最大待機時間を取得するために呼ばれます。
/dev 以下に geom gate オブジェクトとして作成される前に呼ばれます。
戻り値として正の整数値を返して下さい。0 は無制限とみなされます。
95 96 97 |
# File 'lib/suzuna.rb', line 95 def timeout 60 end |
#unit ⇒ Object
このメソッドはデバイスのユニット番号を取得するために呼ばれます。
/dev 以下に geom gate オブジェクトとして作成される前に呼ばれます。
戻り値として正の整数値か、G_GATE_UNIT_AUTO を返して下さい。
106 107 108 |
# File 'lib/suzuna.rb', line 106 def unit G_GATE_UNIT_AUTO end |
#write(offset, buf) ⇒ Object
このメソッドは geom gate オブジェクトに対して書き込み要求があった時に呼ばれます。
文字列オブジェクトである buf を書き込む処理を行って下さい。
戻り値として、処理の成否である Errno::EXXX クラスかそのインスタンス、errno の整数値を返して下さい。 正常な場合には、nil を返すことで Errno::NOERROR と認識されます。
141 142 143 |
# File 'lib/suzuna.rb', line 141 def write(offset, buf) raise NotImplementedError, "IMPLEMENT ME! #write(offset, buf) -> errno" end |