def initialize
@ds = DataSource.new
+ @byids_db = {}
end
def location() @ds.location; end
def load_feature(n, cid) @ds.load_feature(n, cid) end
def each_feature() @ds.each_feature {|f| yield f } end
def each_ccs() @ds.each_ccs {|c| yield c } end
+
+ def get_by_ids_db(n)
+ @byids_db[n] = ByIDS_DB.new(@ds, n) if @byids_db[n].nil?
+ @byids_db[n]
+ end
+ end
+
+ class ByIDS_DB
+ include ChiseValue
+ include TableAccessModule
+
+ def initialize(ds, name)
+ @ds, @name = ds, name
+ @category, @keyvalue = "character", "by_ids"
+ reset
+ end
+
+ def decode(ids)
+ setup_db
+ return nil if @db.nil?
+ parse_c_string(@db.get(ids))
+ end
+
+ def set_decoded_char(ids, cid)
+ setup_db(true)
+ raise "@db is nil." if @db.nil?
+ @db.put(ids, format_char_id(cid))
+ end
+
+ def each
+ setup_db
+ raise "@db is nil." if @db.nil?
+ @db.each {|k, v|
+ yield(parse_value(k), parse_c_string(v))
+ }
+ end
end
end