1.1 --- a/docs/wiki/Resources Tue Feb 09 12:19:13 2016 +0100
1.2 +++ b/docs/wiki/Resources Tue Feb 09 14:17:52 2016 +0100
1.3 @@ -17,92 +17,6 @@
1.4
1.5 <<TableOfContents(2,4)>>
1.6
1.7 -== Confirmation and Retraction Functions ==
1.8 -
1.9 -Confirmation and retraction functions are used to update other resources and
1.10 -systems with the details of scheduled events. When an event is successfully
1.11 -scheduled (according to the scheduling functions), all registered confirmation
1.12 -functions are invoked to perform such notifications. Similarly, when an event
1.13 -is cancelled, all registered retraction functions are invoked to inform other
1.14 -components of the removal of the event from schedules.
1.15 -
1.16 -The [[../Preferences#confirmation_function|confirmation_function]] and
1.17 -[[../Preferences#retraction_function|retraction_function]] settings indicate
1.18 -the behaviour of a resource when such circumstances arise. By themselves,
1.19 -these settings do no more than keep a kind of journal of scheduling events,
1.20 -but certain scheduling functions may build upon such journals to make
1.21 -scheduling decisions. For example:
1.22 -
1.23 -{{{{#!table
1.24 -'''All Functions''' || '''Decision Process'''
1.25 -==
1.26 -<style="vertical-align: top;">
1.27 -
1.28 -Scheduling functions:
1.29 -
1.30 -{{{
1.31 -check_quota
1.32 -}}}
1.33 -
1.34 -Confirmation functions:
1.35 -
1.36 -{{{
1.37 -add_to_quota
1.38 -}}}
1.39 -
1.40 -Retraction functions:
1.41 -
1.42 -{{{
1.43 -remove_from_quota
1.44 -}}}
1.45 -
1.46 -||
1.47 -
1.48 -{{{#!graphviz
1.49 -//format=svg
1.50 -//transform=notugly
1.51 -digraph scheduling_decisions {
1.52 - node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Scheduling decisions"];
1.53 - edge [tooltip="Scheduling decisions"];
1.54 -
1.55 - subgraph {
1.56 - rank=same;
1.57 - mail [label="Incoming mail\nfrom vincent.vole@example.com",shape=folder,style=filled,fillcolor=cyan];
1.58 - cancel [label="Incoming cancellation",shape=folder,style=filled,fillcolor=cyan];
1.59 - }
1.60 -
1.61 - subgraph {
1.62 - rank=same;
1.63 - check_quota [label="Is allowed by quota?",shape=ellipse,style=filled,fillcolor=gold];
1.64 - quota [label="Quota for resource",shape=folder];
1.65 - quota_for_vole [label="...applying to\nvincent.vole@example.com",shape=folder];
1.66 - }
1.67 -
1.68 - schedule [label="Schedule event for resource",shape=ellipse,style=filled,fillcolor=gold];
1.69 -
1.70 - subgraph {
1.71 - rank=same;
1.72 - accept [label="Accept",shape=folder,style=filled,fillcolor=cyan];
1.73 - decline [label="Decline",shape=folder,style=filled,fillcolor=cyan];
1.74 - }
1.75 -
1.76 - add_to_quota [label="Add to quota",shape=ellipse,style=filled,fillcolor=darkorange];
1.77 - remove_from_quota [label="Remove from quota",shape=ellipse,style=filled,fillcolor=darkorange];
1.78 -
1.79 - mail -> check_quota -> schedule -> accept;
1.80 - check_quota -> decline [style=dashed];
1.81 - schedule -> add_to_quota -> quota;
1.82 - quota -> quota_for_vole -> check_quota;
1.83 -
1.84 - cancel -> remove_from_quota -> quota;
1.85 -}
1.86 -}}}
1.87 -
1.88 -}}}}
1.89 -
1.90 -See the [[#Quota_Controls|quota controls]] documentation for more information
1.91 -about applying quotas to resources.
1.92 -
1.93 == Scheduling Functions ==
1.94
1.95 The [[../Preferences#scheduling_function|scheduling_function]] setting
1.96 @@ -441,10 +355,6 @@
1.97
1.98 === Quota Controls ===
1.99
1.100 -The [[#Confirmation_and_Retraction_Functions|confirmation and retraction functions]]
1.101 -section provides an example of applying quotas to event participants. However,
1.102 -this section describes the operation of the quota system in more detail.
1.103 -
1.104 In contrast to each user's stored information which consolidates information
1.105 related to that user's own schedule, the quota system consolidates information
1.106 related to the schedules of one or more resources, thus enabling observations
1.107 @@ -515,9 +425,60 @@
1.108
1.109 The trivial case of applying quotas is to give a resource its own quota. This
1.110 is achieved by not specifying any arguments to the `check_quota` scheduling
1.111 -function or to the `add_to_quota` and `remove_from_quota` functions. See the
1.112 -[[#Confirmation_and_Retraction_Functions|confirmation and retraction functions]]
1.113 -section for an example of this.
1.114 +function or to the `add_to_quota` and `remove_from_quota` functions.
1.115 +
1.116 +{{{{#!table
1.117 +'''Scheduling Functions''' || '''Decision Process'''
1.118 +==
1.119 +<style="vertical-align: top;">
1.120 +
1.121 +{{{
1.122 +check_quota
1.123 +}}}
1.124 +
1.125 +||
1.126 +
1.127 +{{{#!graphviz
1.128 +//format=svg
1.129 +//transform=notugly
1.130 +digraph scheduling_decisions {
1.131 + node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Scheduling decisions"];
1.132 + edge [tooltip="Scheduling decisions"];
1.133 +
1.134 + subgraph {
1.135 + rank=same;
1.136 + mail [label="Incoming mail\nfrom vincent.vole@example.com",shape=folder,style=filled,fillcolor=cyan];
1.137 + cancel [label="Incoming cancellation",shape=folder,style=filled,fillcolor=cyan];
1.138 + }
1.139 +
1.140 + subgraph {
1.141 + rank=same;
1.142 + check_quota [label="Is allowed by quota?",shape=ellipse,style=filled,fillcolor=gold];
1.143 + quota [label="Quota for resource",shape=folder];
1.144 + quota_for_vole [label="...applying to\nvincent.vole@example.com",shape=folder];
1.145 + }
1.146 +
1.147 + schedule [label="Schedule event for resource",shape=ellipse,style=filled,fillcolor=gold];
1.148 +
1.149 + subgraph {
1.150 + rank=same;
1.151 + accept [label="Accept",shape=folder,style=filled,fillcolor=cyan];
1.152 + decline [label="Decline",shape=folder,style=filled,fillcolor=cyan];
1.153 + }
1.154 +
1.155 + add_to_quota [label="Add to quota",shape=ellipse,style=filled,fillcolor=darkorange];
1.156 + remove_from_quota [label="Remove from quota",shape=ellipse,style=filled,fillcolor=darkorange];
1.157 +
1.158 + mail -> check_quota -> schedule -> accept;
1.159 + check_quota -> decline [style=dashed];
1.160 + schedule -> add_to_quota -> quota;
1.161 + quota -> quota_for_vole -> check_quota;
1.162 +
1.163 + cancel -> remove_from_quota -> quota;
1.164 +}
1.165 +}}}
1.166 +
1.167 +}}}}
1.168
1.169 ==== Common Resource Quotas ====
1.170
1.171 @@ -526,28 +487,14 @@
1.172 function invocations to pool their knowledge about their schedules.
1.173
1.174 {{{{#!table
1.175 -'''All Functions''' || '''Decision Process'''
1.176 +'''Scheduling Functions''' || '''Decision Process'''
1.177 ==
1.178 <style="vertical-align: top;">
1.179
1.180 -Scheduling functions:
1.181 -
1.182 {{{
1.183 check_quota cars
1.184 }}}
1.185
1.186 -Confirmation functions:
1.187 -
1.188 -{{{
1.189 -add_to_quota cars
1.190 -}}}
1.191 -
1.192 -Retraction functions:
1.193 -
1.194 -{{{
1.195 -remove_from_quota cars
1.196 -}}}
1.197 -
1.198 ||
1.199
1.200 {{{#!graphviz
1.201 @@ -611,28 +558,14 @@
1.202 scheduling decisions and are employed as follows:
1.203
1.204 {{{{#!table
1.205 -'''All Functions''' || '''Decision Process'''
1.206 +'''Scheduling Functions''' || '''Decision Process'''
1.207 ==
1.208 <style="vertical-align: top;">
1.209
1.210 -Scheduling functions:
1.211 -
1.212 {{{
1.213 schedule_within_quota cars
1.214 }}}
1.215
1.216 -Confirmation functions:
1.217 -
1.218 -{{{
1.219 -add_to_quota_freebusy cars
1.220 -}}}
1.221 -
1.222 -Retraction functions:
1.223 -
1.224 -{{{
1.225 -remove_from_quota_freebusy cars
1.226 -}}}
1.227 -
1.228 ||
1.229
1.230 {{{#!graphviz