Index: [Article Count Order] [Thread]

Date:  Thu, 28 Feb 2002 12:22:01 +0900 (JST)
From:  GOTO Kentaro <gotoken@notwork.org>
Subject:  [webrickja:9] (RFC) HTTPServer#attach
To:  webrickja@notwork.org
Message-Id:  <20020228.122201.88563622.gotoken@notwork.org>
X-Mail-Count: 00009

HTTPServer#attach(name, obj) とAPIを考えてみました。server
wide の名前つきオブジェクトを提供するためのもので、セッショ
ン管理する人のようにサーバ内に1つあれば良いものや、ちょうど1 
つであって欲しいものを attach することを想定しています。
mountだとuriと関連させる必要があるので不向きです。

さらに AbstructServlet#attachment(name) で実行時に使っている
サーバオブジェクトに name で attach されているオブジェクトに
参照できるものとします。

実装としては

  class HTTPServer
    ATTACHMENT = {}

    def attatch(name, obj)
      Server::ATTACHMENT[name] = obj
    end

    def service(req, res)
      ...
      si = servlet.get_instance(@config, *options)
      if si.respond_to?(:set_attachment)
        si.set_attachment(ATTCHMENT)
      si.service(req, res)
    end
  end

のような感じを考えています。どうでしょう?

-- Gotoken