[#5498] postscript — Kikutani Makoto <kikutani@...>

TkCanvasの

23 messages 1997/12/02
[#5499] Re: postscript — matz@... (Yukihiro Matsumoto) 1997/12/02

まつもと ゆきひろです

[#5502] Re: postscript — Kikutani Makoto <kikutani@...> 1997/12/02

きくたにです。

[#5535] wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/05

きくたにです。

[#5536] Re: wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/05

きくたにです。

[#5538] Re: wave viewer (Re: postscript) — matz@... (Yukihiro Matsumoto) 1997/12/05

まつもと ゆきひろです

[#5547] Re: wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/06

きくたにです。

[#5504] cgi-lib.rb — 青山 和光 <PXN11625@...>

cgi-lib.rb, shellwords.rb の新版です。

22 messages 1997/12/02
[#5505] Re: cgi-lib.rb — matz@... (Yukihiro Matsumoto) 1997/12/03

まつもと ゆきひろです

[#5506] Re: cgi-lib.rb — keiju@... (石塚圭樹 ) 1997/12/03

けいじゅ@日本ラショナルソフトウェアです.

[#5508] Re: cgi-lib.rb — matz@... (Yukihiro Matsumoto) 1997/12/03

まつもと ゆきひろです

[#5512] Re: cgi-lib.rb — Shin-ichiro HARA <sinara@...> 1997/12/03

原です。

[#5539] ruby 1.0-971204 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/12/05
[#5542] Re: ruby 1.0-971204 released — Noritsugu Nakamura <nnakamur@...> 1997/12/05

[#5572] Re: ruby 1.0-971204 released — Shoichi OZAWA <ozawa@...> 1997/12/08

こんにちは 小澤@日立 です。

[#5615] bug in String#scan ?? — Yuji Shigehiro <sigehiro@...>

しげひろです.

17 messages 1997/12/10
[#5616] Re: bug in String#scan ?? — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#5668] Re: ObjectDBM — 青山 和光 <PXN11625@...>

石塚さん(B... さんですよね?)、おはようございます。

14 messages 1997/12/13

[ruby-list:5644] Re: [ruby-dev:1035] ObjectDBM [ Re: Object#bind ]

From: keiju@... (石塚圭樹 )
Date: 1997-12-11 15:37:04 UTC
List: ruby-list #5644
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :01035 ] the message: "[ruby-dev:1035] ObjectDBM [ Re:
Object#bind ] ", on Dec/10 20:37(JST) keiju@Rational.Com (石塚圭樹)
writes:

>オブジェクト指向データベース風オブジェクトベースdbmです.

ほとんど完成したみたいなのでリリースします.

  o_dbm-0.1.rb.tgz
  + o_dbm.rb
  + test-o_dbm.rb

test-o_dbm.rbはテストプログラムですがサンプルにもなるかなと...

ObjectDBMとは:

1. DBMでは, 文字列しかstoreできませんでしたが, ほとんど任意(marshal可
   能な)のオブジェクトをstoreできる様にしました. 
2. transactionを採り入れています. commitして始めてデータベースに書き込
   まれます.
3. 入れこのtransactionをサポートしています.
4. transactionとしては, 静的トランザクションと動的トランザクションをサ
   ポートしています.
5. read/write用のキャッシュを持つので, 常にファイルにアクセスしなくて
   も済むようになっています.

機能:

>class ObjectDBM
>  include Enumerable
>
>  def [](key, mode = nil)
>  def update(key, obj = nil)
>  def []=(key, obj)
>  def delete(key)
>  def indexes(*keys)
>  def roots
>  alias keys roots
>  def size
>  def roots(mode = nil)
>  alias values roots
>
>  def has_root_name?(root_name)
>  alias root_name? has_root_name?
>  alias include? has_root_name?
>  def has_root?(root)
>  alias root? has_root?
>
>  def each(mode = nil)
>  alias each_pair each
>  def each_root_name
>  alias each_key each_root_name
>  def each_root(mode = nil)
>  alias each_value each_root
>
>  def transaction(mode = READ_CACHING)
>
>  class Transaction
>  class StaticTransaction < Transaction
>  class DynamicTransaction < Transaction
>end

こんな感じです. DBMが持つ機能+transaction機能って感じです.

使い方:

# データベースを開く
>odbm = ObjectDBM.new(db_name)

# 静的トランザクション開始
>odbm.transaction do
   # データベースへの書き込み
>  odbm["key"] = Foo.new

# コミット(実際にデータベースに書き込む)
>end

>odbm.transaction do
>  foo = odbm["key"]
>  foo.bar = Bar.new
  
   # オブジェクトに変更があったことを伝える.
>  odbm.update("key")
>end


>odbm.transaction do
>  |txn1|
>  odbm["key1"] = Bar.new
   #入れ子トランザクション
>  odbm.transaction do
>    |txn2|
>    odbm["key2"] = Bar.new
     # txn2のアボート
>    txn2.abort
>  end
>end

静的トランザクションをアボートするとそのブロックから抜け出します.

PS.
[ruby-list:5632]の回答もよろしく. 今のままではエラーチェックに抜けが
(;_;

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread

Prev Next