callback-procs.tcl

XOTcl request monitor - Callback procs Procs to support a simple callback mechanism that allows other applications to register callbacks triggered when objects, like groups, in the subsite application are created.

Location:
packages/xotcl-request-monitor/tcl/callback-procs.tcl
Created:
2020-11-20
Author:
Gustaf Neumann

Procedures in this file

Detailed information

callback::subsite::parameter_changed::impl::xotcl-request-monitor (private)

 callback::subsite::parameter_changed::impl::xotcl-request-monitor \
    -package_id package_id -parameter parameter -value value

Implementation of subsite::parameter_changed for xotcl-request-monitor

Switches:
-package_id
(required)
the package_id of the package the parameter was changed for
-parameter
(required)
the parameter name
-value
(required)
the new value
Author:
Nima Mazloumi <nima.mazloumi@gmx.de>
Created:
2005-08-17
See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 apm_package_id_from_key apm_package_id_from_key (public) callback::subsite::parameter_changed::impl::xotcl-request-monitor callback::subsite::parameter_changed::impl::xotcl-request-monitor callback::subsite::parameter_changed::impl::xotcl-request-monitor->apm_package_id_from_key

Testcases:
No testcase defined.

request_monitor::upgrade_callback (private)

 request_monitor::upgrade_callback -from_version_name from_version_name \
    -to_version_name to_version_name

Callback for upgrading

Switches:
-from_version_name
(required)
-to_version_name
(required)
Author:
Gustaf Neumann <neumann@wu-wien.ac.at>

Partial Call Graph (max 5 caller/called nodes):
%3 apm_version_names_compare apm_version_names_compare (public) request_monitor::upgrade_callback request_monitor::upgrade_callback request_monitor::upgrade_callback->apm_version_names_compare

Testcases:
No testcase defined.
[ hide source ]

Content File Source

::xo::library doc {
  XOTcl request monitor - Callback procs

  Procs to support a simple callback mechanism that allows other
  applications to register callbacks triggered when objects, like
  groups, in the subsite application are created.

  @creation-date 2020-11-20
  @author Gustaf Neumann
}

d_proc -public -callback subsite::parameter_changed -impl xotcl-request-monitor {
  -package_id:required
  -parameter:required
  -value:required
} {
  Implementation of subsite::parameter_changed for xotcl-request-monitor

  @author Nima Mazloumi (nima.mazloumi@gmx.de)
  @creation-date 2005-08-17

  @param package_id the package_id of the package the parameter was changed for
  @param parameter  the parameter name
  @param value      the new value

  @see package::set_value
} {

  if {$package_id == [apm_package_id_from_key "xotcl-request-monitor"]} {
    ns_log debug "subsite::parameter_changed -impl xotcl-request-monitor changing $parameter to $value"
    #
    # Just update these parameters, which are defined in the throttle thread.
    #
    if {[throttle do info commands $parameter] ne ""} {
      throttle do $parameter update $value
    }
  }
}

namespace eval ::request_monitor {
  d_proc -private upgrade_callback {
    {-from_version_name:required}
    {-to_version_name:required}
  } {

    Callback for upgrading

    @author Gustaf Neumann (neumann@wu-wien.ac.at)
  } {
    ns_log notice "-- UPGRADE xotcl-request-monitor $from_version_name -> $to_version_name"

    set v 0.60
    if {[apm_version_names_compare $from_version_name $v] == -1 &&
        [apm_version_names_compare $to_version_name $v] > -1} {
      ns_log notice "-- upgrading to $v"

      foreach parameter_id [xo::dc list get_old_parameter {
        select parameter_id
        from apm_parameters
        where package_key = 'xotcl-request-monitor'
        and parameter_name not in (
                                   'do_double_click_prevention',
                                   'do_slowdown_overactive',
                                   'do_slowdown_overactive',
                                   'do_throttle',
                                   'do_track_activity',
                                   'hide-requests',
                                   'max-stats-elements',
                                   'max-url-stats',
                                   'monitor_urls',
                                   'peer-groups',
                                   'time-window',
                                   'trend-elements'
                                   )
      }] {
        xo::dc dml delete_value {
          delete from apm_parameter_values where parameter_id = :parameter_id
        }
        xo::dc dml delete_parameter {
          delete from apm_parameters where parameter_id = :parameter_id
        }
      }
    }
  }
}

::xo::library source_dependent

# Local variables:
#    mode: tcl
#    tcl-indent-level: 2
#    indent-tabs-mode: nil
# End: