class Labcom::DBstorer

Authors

S.imazu

Version

25.0.0

Date

2023-06-06

Comment

Deprecated labcom module

[クラス名] DBstorer

[説 明]

  1. 汎用データを保存する制御クラス

[メンバー]

[クラスメソッド]

[インスタンスメソッド]

[UPDATE履歴]

18.0.0

初版

19.0.0

変更

25.0.0

変更 require(Labcom.rb)

[DEPRECATED]

This class is scheduled to be removed in the next version 26.0.0.

Public Class Methods

new( ) click to toggle source
引 数

なし

説 明

コンストラクタ

# File lib/labcom/DBstorer.rb, line 79
def initialize( ) 
  ObjectSpace.define_finalizer( self, DBstorer.del_callback() )
end
version() click to toggle source
引 数

なし

返 値

バージョン番号(String)

説 明

共有ライブラリのバージョン番号(String)を戻す

# File lib/labcom/DBstorer.rb, line 50
def self.version()
  return DBstore.version()
end

Public Instance Methods

puts( shot, sub_shot, diag, mail_address, data_type, arc_data_array) click to toggle source
引 数
shot (int)

ショット番号

sub_shot (int)

サブショット番号

diag (string)

データ名(計測名)

mail_address (string)

メールアドレス

data_type (string)

データ種別 ‘RAW’,‘ANA’

arc_data_array (Array( ArcData ))

チャネルデータ配列

返 値

なし

例 外

DBstore::DBstoreError, RuntimeError

説 明

汎用データを保存する。

# File lib/labcom/DBstorer.rb, line 100
  def puts( shot, sub_shot, diag, mail_address, data_type, arc_data_array)
    
      dd = 0
      return if arc_data_array == nil         # データがない。
      if( arc_data_array.is_a?(Array) ) then
         return if 0 == arc_data_array.length # データがない。
         data_array = arc_data_array
      elsif( arc_data_array.is_a?(ArcData) ) then
            data_array = [arc_data_array]
      else 
        raise RuntimeError, 'Illegal type of arc_data'
      end
      data_array.each {|data|
          if( !data.is_a?(ArcData) ) then
              raise RuntimeError, 'Illegal type of arc_data_array'
          end
        } 

      begin     # begin_1
        dd = DBstore.open(mail_address, diag, shot, sub_shot, data_type.upcase())
            
        ch_no = 0
        for arc_data in data_array do
          ch_no = ch_no + 1
          if arc_data.is_frame() then
            DBstore.open_frame(dd, ch_no, arc_data.samples.x_size, \
                                 arc_data.samples.y_size, arc_data.samples.image_type)
            fr = 0
            for fr_data in arc_data.samples.frames do
              fr = fr+1
              DBstore.write_frame(dd, ch_no, fr, fr_data.block_bin_str)
            end # end of for-fr
            DBstore.close_frame(dd, ch_no, arc_data.parameters)
             
          else # samples
            DBstore.write(dd, ch_no, arc_data.parameters, 
                            arc_data.samples.block_bin_str, arc_data.samples.image_type)
            
          end # end of if
           
        end # end of for-arc_data
        
        DBstore.close(dd)
        dd = 0
            
#      rescue DBstore::DBstoreError => ex
      rescue => ex
        if( dd !=  0 )then
          DBstore.abort(dd)
        end
        raise ex
      end # end of begin_1

    return
      
  end