Roxen.git / server / modules / throttling / throttletags.pike

version» Context lines:

Roxen.git/server/modules/throttling/throttletags.pike:1:   // This is a roxen module. Copyright © 1999 - 2000, Roxen IS.      #include <module.h>   inherit "module";   inherit "roxenlib";      constant thread_safe=1; - constant cvs_version="$Id: throttletags.pike,v 1.8 2000/04/14 22:30:31 kuntri Exp $"; + constant cvs_version="$Id: throttletags.pike,v 1.9 2000/04/24 22:40:29 kuntri Exp $";      #ifdef THROTTLING_DEBUG   #undef THROTTLING_DEBUG   #define THROTTLING_DEBUG(X) werror("throttletags: "+X+"\n")   #else   #define THROTTLING_DEBUG(X)   #endif      #define THROW(X) throw( X+"\n" )      constant module_type = MODULE_PARSER;   constant module_name = "Throttling control tags";   constant module_doc = "This module provides a <tt>&lt;THROTTLE&gt;</tt> tag "    "that you can use to determine a request's allocated bandwidth";      TAGDOCUMENTATION;   #ifdef manual   constant tagdoc=(["throttle":#"<desc tag><short>This tag determines a request's allocated bandwidth.</short></desc>    - <attr name=''> + <attr name='not'> + Disables all and any throttling for the current request. Implies the + 'final' arg. + </attr>    -  + <attr name='add' value='rate'> + Adds 'rate' bytes/sec to the current rate for the current request. + </attr> +  + <attr name='subtract' value='rate'> + Subtracts 'rate' bytes/sec from the current rate for the current + request. + </attr> +  + <attr name='multiply' value='float'> + Multiplies this requests' bandwidth by 'float'. + </attr> +  + <attr name='divide' value='float'> + Divides this requests' bandwidth by 'float'. + </attr> +  + <attr name='rate' value='value'> + Sets this request's bandwidth to 'value'. + </attr> +  + <attr name='final' required> + No subsequent modifications will be done to this request's bandwidth + after the current one.   </attr>",      ]);   #endif      string|int tag_throttle(string tag, mapping args, RequestID id) {    mapping t=id->throttle;    string tmp;    if (t->fixed) {    THROTTLING_DEBUG("Fixed. returning");