class Agama::Adapters::TC

Public Class Methods

new(params = {}) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 8
def initialize(params = {})
  @e_lmemb  = params[:lmemb]  || 128
  @e_nmemb  = params[:nmemb]  || 256
  @e_bnum   = params[:bnum]   || 32749
  @e_apow   = params[:apow]   || 8
  @e_fpow   = params[:fpow]   || 10
  @e_opts   = params[:opts]   || 0
end

Public Instance Methods

close() click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 43
def close
  if !@meta.close
    ecode = @meta.ecode
    raise "Error closing meta_db: #{@meta.errmsg(ecode)}"
  end
  if !@nodes.close
    ecode = @nodes.ecode
    raise "Error closing nodes_db: #{@nodes.errmsg(ecode)}"
  end
  if !@edges.close
    ecode = @edges.ecode
    raise "Error closing edges_db: #{@edges.errmsg(ecode)}"
  end
end
e_cursor() click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 127
def e_cursor
  return TCCursor.new(@edges, "edge")
end
e_del(key) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 118
def e_del (key)
  unless @edges.out(key, value)
    ecode = @edges.ecode
    raise "Error deleting from edges_db: #{@edges.errmsg(ecode)}"
  end
  
  true
end
e_get(key) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 114
def e_get (key)
  return @edges.get(key)
end
e_put(key, value) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 105
def e_put (key, value)
  unless @edges.put(key, value)
    ecode = @edges.ecode
    raise "Error inserting into edges_db: #{@edges.errmsg(ecode)}"
  end
  
  true
end
m_del(key) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 72
def m_del (key)
  unless @meta.out(key)
    ecode = @meta.ecode
    raise "Error deleting from meta_db: #{@meta.errmsg(ecode)}"
  end
end
m_get(key) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 68
def m_get (key)
  return @meta.get(key)
end
m_put(key, value) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 61
def m_put (key, value)
  unless @meta.put(key, value)
    ecode = @meta.ecode
    raise "Error inserting meta_db: #{@meta.errmsg(ecode)}"
  end
end
n_del(key) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 95
def n_del (key)
  unless @nodes.out(key)
    ecode = @nodes.ecode
    raise "Error deleting from nodes_db: #{@nodes.errmsg(ecode)}"
  end
  
  true
end
n_get(key) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 91
def n_get (key)
  return @nodes.get(key)
end
n_put(key, value) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 82
def n_put (key, value)
  unless @nodes.put(key, value)
    ecode = @nodes.ecode
    raise "Error inserting into nodes_db: #{@nodes.errmsg(ecode)}"
  end
  
  true
end
open(path) click to toggle source
# File lib/agama/adapters/tokyocabinet.rb, line 17
def open (path)
  @meta = HDB::new        
  # open the meta database
  if !@meta.open(path + "/meta.tch", HDB::OWRITER | HDB::OCREAT)
    ecode = @meta.ecode
    raise "Error opening meta_db: #{@meta.errmsg(ecode)}"
  end

  @nodes = HDB::new        
  # open the nodes database
  if !@nodes.open(path + "/nodes.tch", HDB::OWRITER | HDB::OCREAT)
    ecode = @nodes.ecode
    raise "Error opening nodes_db: #{@nodes.errmsg(ecode)}"
  end
  
  @edges = BDB::new       
  @edges.tune(@e_lmemb, @e_nmemb, @e_bnum, @e_apow, @e_fpow, @e_opts)       
  # open the edges database
  if !@edges.open(path + "/edges.tcb", BDB::OWRITER | BDB::OCREAT)
    ecode = @edges.ecode
    raise "Error opening edges_db: #{@edges.errmsg(ecode)}"
  end
end