Zoran Vasiljevic wrote:

Am 30.12.2005 um 19:19 schrieb Gustaf Neumann:


how will be the call, when

   ns_register_filter preauth GET /junk myfilter

is registered? when

  myfilter preauth

Like this.
fine.


is called, this would be pretty much comaptible with the aolserver for the simple cases. this would as well work with xotcl methods in this case. however, this would as well be
the case, when WHY is placed before the passed arguments.

the hyperflexible approach would be to use

  ns_register_filter preauth GET /junk [list myfilter arg1] arg2  arg3

I do not understan why bother with all this arguments (arg2 arg3, etc)
when you can easily construct the script using the [list] command?
...
and if you need to pass arguments to "myfilter" just use ns_register_filter preauth GET /junk [list myfilter $arg1 $arg2 $arg3] Would this be less flexible? I think not.
Flexible, well... Here is a reason: look at the example from my first mail. with xotcl (or other oo approaches) it is the most straightforward to implement the filters as methods.

 Class Filter
 Filter instproc preauth args { .... }
 Filter instproc postauth args { .... }

 Filter myfilter

In such cases it is most conveniant, when the WHY argument is first, without
loosing the ability to pass to the handlers. When appending always the WHY
at the end, the arguments become the "methods", unless one has a zero-argument filter proc.
When one needs an additional argument, one has to change the way to map he
methods.

i would be as happy with

   ns_register_filter preauth GET /junk [list myfilter $arg1 $arg2 $arg3]

calling

  myfilter WHY arg1 arg2 arg3

Certainly, in pure tcl cases, it does not matter much, where the WHY is placed.
When the WHY is always appended to the end - as you suggests - i envision
myself defining the filter like

ns_register_filter preauth GET /junk [list myfilter preauth $arg1 $arg2 $arg3] ns_register_filter postauth GET /junk [list myfilter postauth $arg1 $arg2 $arg3]

and not much caring about the WHY argument. certainly doable, but slightly strange.

as i said before, the most common case it that the filter cmd is used without
arguments. for the other cases, there is always a way to hack around.

decide, whatever you prefer.

all the best

-gustaf




Reply via email to