class Roma::Storage::DbmStorage
Public Class Methods
new()
click to toggle source
Calls superclass method
Roma::Storage::BasicStorage::new
# File lib/roma/storage/dbm_storage.rb 16 def initialize 17 super 18 @ext_name = 'dbm' 19 end
Public Instance Methods
each_clean_up(t, vnhash) { |k, vn| ... }
click to toggle source
# File lib/roma/storage/dbm_storage.rb 21 def each_clean_up(t, vnhash) 22 @do_clean_up = true 23 nt = Time.now.to_i 24 @hdb.each{ |hdb| 25 delkey = [] 26 hdb.each{ |k, v| 27 return unless @do_clean_up 28 vn, last, clk, expt = unpack_header(v) 29 vn_stat = vnhash[vn] 30 if vn_stat == :primary && ( (expt != 0 && nt > expt) || (expt == 0 && t > last) ) 31 delkey << [vn, k, v] 32 elsif vn_stat == nil && t > last 33 delkey << [vn, k, v] 34 end 35 sleep @each_clean_up_sleep 36 } 37 delkey.each{ |vn, k, v| 38 yield k, vn 39 hdb.out(k) if hdb.get(k) == v 40 } 41 } 42 end
Private Instance Methods
close_db(hdb)
click to toggle source
# File lib/roma/storage/dbm_storage.rb 53 def close_db(hdb); hdb.close; end
open_db(fname)
click to toggle source
# File lib/roma/storage/dbm_storage.rb 46 def open_db(fname) 47 hdb = GDBM::open(fname,0666) 48 raise RuntimeError.new("dbm open error.") unless hdb 49 hdb.extend(Roma::Storage::GDBM_Ext) 50 return hdb 51 end