<divclass="textblock"><p>A <aclass="el"href="classoperations__research_1_1_demon.html"title="A Demon is the base element of a propagation queue.">Demon</a> is the base element of a propagation queue. </p>
<p>It is the main object responsible for implementing the actual propagation of the constraint and pruning the inconsistent values in the domains of the variables. The main concept is that demons are listeners that are attached to the variables and listen to their modifications. There are two methods:</p><ul>
<li><aclass="el"href="classoperations__research_1_1_demon.html#aff915cd1c182d7e7ce5c9d15e9ae1da7"title="This is the main callback of the demon.">Run()</a> is the actual method called when the demon is processed.</li>
<li><aclass="el"href="classoperations__research_1_1_demon.html#ae47aecad15d101db52a7d6bd114565d3"title="This method returns the priority of the demon.">priority()</a> returns its priority. Standard priorities are slow, normal or fast. "immediate" is reserved for variables and is treated separately. </li>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8h_source.html#l03342">3342</a> of file <aclass="el"href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
<trclass="memdesc:a18542ce967b086b67c5b0e2b1c025bcf"><tdclass="mdescLeft"> </td><tdclass="mdescRight">This indicates the priority of a demon. <ahref="classoperations__research_1_1_demon.html#a18542ce967b086b67c5b0e2b1c025bcf">More...</a><br/></td></tr>
<trclass="memdesc:aff915cd1c182d7e7ce5c9d15e9ae1da7"><tdclass="mdescLeft"> </td><tdclass="mdescRight">This is the main callback of the demon. <ahref="classoperations__research_1_1_demon.html#aff915cd1c182d7e7ce5c9d15e9ae1da7">More...</a><br/></td></tr>
<trclass="memdesc:ae47aecad15d101db52a7d6bd114565d3"><tdclass="mdescLeft"> </td><tdclass="mdescRight">This method returns the priority of the demon. <ahref="classoperations__research_1_1_demon.html#ae47aecad15d101db52a7d6bd114565d3">More...</a><br/></td></tr>
<trclass="memdesc:a0c1ff1e86b1eb08d0f87eab2943dac2a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">This method inhibits the demon in the search tree below the current position. <ahref="classoperations__research_1_1_demon.html#a0c1ff1e86b1eb08d0f87eab2943dac2a">More...</a><br/></td></tr>
<trclass="memdesc:a2baabc490b7cd5aa80136e07b358cb21"><tdclass="mdescLeft"> </td><tdclass="mdescRight">This method un-inhibits the demon that was previously inhibited. <ahref="classoperations__research_1_1_demon.html#a2baabc490b7cd5aa80136e07b358cb21">More...</a><br/></td></tr>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8h_source.html#l03346">3346</a> of file <aclass="el"href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8h_source.html#l03347">3347</a> of file <aclass="el"href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
<p>Reimplemented in <aclass="el"href="classoperations__research_1_1_call_method0.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod0< T ></a>, <aclass="el"href="classoperations__research_1_1_call_method1.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod1< T, P ></a>, <aclass="el"href="classoperations__research_1_1_call_method2.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod2< T, P, Q ></a>, <aclass="el"href="classoperations__research_1_1_call_method3.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod3< T, P, Q, R ></a>, <aclass="el"href="classoperations__research_1_1_delayed_call_method0.html#aed804747c45a7e1caf81461f9e45dd91">DelayedCallMethod0< T ></a>, <aclass="el"href="classoperations__research_1_1_delayed_call_method1.html#aed804747c45a7e1caf81461f9e45dd91">DelayedCallMethod1< T, P ></a>, and <aclass="el"href="classoperations__research_1_1_delayed_call_method2.html#aed804747c45a7e1caf81461f9e45dd91">DelayedCallMethod2< T, P, Q ></a>.</p>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8cc_source.html#l00201">201</a> of file <aclass="el"href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8cc_source.html#l00209">209</a> of file <aclass="el"href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8cc_source.html#l00203">203</a> of file <aclass="el"href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
<p>Reimplemented in <aclass="el"href="classoperations__research_1_1_delayed_call_method0.html#a0a34701cff1b1ac2fabd11e27c7cebc9">DelayedCallMethod0< T ></a>, <aclass="el"href="classoperations__research_1_1_delayed_call_method1.html#a0a34701cff1b1ac2fabd11e27c7cebc9">DelayedCallMethod1< T, P ></a>, and <aclass="el"href="classoperations__research_1_1_delayed_call_method2.html#a0a34701cff1b1ac2fabd11e27c7cebc9">DelayedCallMethod2< T, P, Q ></a>.</p>
<pclass="definition">Definition at line <aclass="el"href="constraint__solver_8cc_source.html#l00197">197</a> of file <aclass="el"href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
<p>Implemented in <aclass="el"href="classoperations__research_1_1_call_method0.html#ac863f0fdd6a476ca003c99f58f14e623">CallMethod0< T ></a>, <aclass="el"href="classoperations__research_1_1_call_method1.html#ac863f0fdd6a476ca003c99f58f14e623">CallMethod1< T, P ></a>, <aclass="el"href="classoperations__research_1_1_call_method2.html#ac863f0fdd6a476ca003c99f58f14e623">CallMethod2< T, P, Q ></a>, <aclass="el"href="classoperations__research_1_1_call_method3.html#ac863f0fdd6a476ca003c99f58f14e623">CallMethod3< T, P, Q, R ></a>, <aclass="el"href="classoperations__research_1_1_delayed_call_method0.html#ac863f0fdd6a476ca003c99f58f14e623">DelayedCallMethod0< T ></a>, <aclass="el"href="classoperations__research_1_1_delayed_call_method1.html#ac863f0fdd6a476ca003c99f58f14e623">DelayedCallMethod1< T, P ></a>, and <aclass="el"href="classoperations__research_1_1_delayed_call_method2.html#ac863f0fdd6a476ca003c99f58f14e623">DelayedCallMethod2< T, P, Q ></a>.</p>