19#ifndef CLIPSENVIRONMENT_H
20#define CLIPSENVIRONMENT_H
30#include <sigc++/sigc++.h>
372 long int run(
long int runlimit = -1 );
392 void run_threaded(
long int runlimit = -1,
int priority = 0 );
469 template <
typename T_return >
472 template <
typename T_return,
typename T_arg1 >
473 bool add_function( std::string name,
const sigc::slot1<T_return, T_arg1>&
slot);
475 template <
typename T_return,
typename T_arg1,
typename T_arg2 >
476 bool add_function( std::string name,
const sigc::slot2<T_return, T_arg1, T_arg2>&
slot);
478 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3 >
479 bool add_function( std::string name,
const sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>&
slot);
481 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
482 bool add_function( std::string name,
const sigc::slot4<T_return, T_arg1, T_arg2, T_arg3, T_arg4>&
slot);
484 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
485 bool add_function( std::string name,
const sigc::slot5<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5>&
slot);
487 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
488 bool add_function( std::string name,
const sigc::slot6<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6>&
slot);
490 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
491 bool add_function( std::string name,
const sigc::slot7<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7>&
slot);
561 template <
typename T_arg1 >
564 template <
typename T_arg1,
typename T_arg2 >
567 template <
typename T_arg1,
typename T_arg2,
typename T_arg3 >
570 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
573 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
576 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
579 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
582 template <
typename T_return >
585 template <
typename T_return,
typename T_arg1 >
588 template <
typename T_return,
typename T_arg1,
typename T_arg2 >
591 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3 >
594 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
597 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
600 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
603 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
608 template <
typename T_arg1>
611 template <
typename T_arg1,
typename T_arg2>
614 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
617 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
635 template <
typename T_arg1>
638 template <
typename T_arg1,
typename T_arg2>
641 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
644 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
660 {
return (
int ( * ) (
void* ) ) (
void* ( * ) (
void* ) )
strcallback; }
662 template <
typename T_arg1 >
666 template <
typename T_arg1,
typename T_arg2 >
670 template <
typename T_arg1,
typename T_arg2,
typename T_arg3 >
674 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
675 int ( *
get_callback(
const sigc::slot4<std::string,T_arg1,T_arg2,T_arg3,T_arg4>&
slot ))(
void* )
678 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
679 int ( *
get_callback(
const sigc::slot5<std::string,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>&
slot ))(
void* )
682 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
683 int ( *
get_callback(
const sigc::slot6<std::string,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>&
slot ))(
void* )
686 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
687 int ( *
get_callback(
const sigc::slot7<std::string,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>&
slot ))(
void* )
693 template <
typename T_arg1>
697 template <
typename T_arg1,
typename T_arg2>
701 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
705 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
706 int ( *
get_callback(
const sigc::slot4<Values,T_arg1,T_arg2,T_arg3,T_arg4>&
slot ))(
void* )
709 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5>
710 int ( *
get_callback(
const sigc::slot5<Values,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>&
slot ))(
void* )
713 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6>
714 int ( *
get_callback(
const sigc::slot6<Values,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>&
slot ))(
void* )
717 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7>
718 int ( *
get_callback(
const sigc::slot7<Values,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>&
slot ))(
void* )
725 template <
typename T_arg1>
729 template <
typename T_arg1,
typename T_arg2>
733 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
737 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
738 int ( *
get_callback(
const sigc::slot4<Value,T_arg1,T_arg2,T_arg3,T_arg4>&
slot ))(
void* )
741 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5>
742 int ( *
get_callback(
const sigc::slot5<Value,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>&
slot ))(
void* )
745 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6>
746 int ( *
get_callback(
const sigc::slot6<Value,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>&
slot ))(
void* )
749 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7>
750 int ( *
get_callback(
const sigc::slot7<Value,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>&
slot ))(
void* )
754 template <
typename T_return >
758 template <
typename T_return,
typename T_arg1 >
762 template <
typename T_return,
typename T_arg1,
typename T_arg2 >
766 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3 >
770 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
771 int ( *
get_callback(
const sigc::slot4<T_return,T_arg1,T_arg2,T_arg3,T_arg4>&
slot ))(
void* )
774 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
775 int ( *
get_callback(
const sigc::slot5<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>&
slot ))(
void* )
778 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
779 int ( *
get_callback(
const sigc::slot6<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>&
slot ))(
void* )
782 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
783 int ( *
get_callback(
const sigc::slot7<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>&
slot ))(
void* )
788 template <
typename T_arg1>
791 template <
typename T_arg1,
typename T_arg2>
794 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
797 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
800 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5>
803 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6>
806 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7>
828 template <
typename T_arg1>
837 template <
typename T_arg1,
typename T_arg2>
846 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
856 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
902 template <
typename T_return>
905 sigc::slot0<T_return>*
cb;
909 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 0" );
910 cb =
static_cast<sigc::slot0<T_return>*
>(
cbptr );
916 template <
typename T_return,
typename T_arg1 >
919 sigc::slot1<T_return,T_arg1>*
cb;
924 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 1" );
926 cb =
static_cast<sigc::slot1<T_return,T_arg1>*
>(
cbptr );
932 template <
typename T_return,
typename T_arg1,
typename T_arg2 >
935 sigc::slot2<T_return, T_arg1, T_arg2>*
cb;
941 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 2" );
944 cb =
static_cast<sigc::slot2<T_return, T_arg1, T_arg2>*
>(
cbptr );
950 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3 >
953 sigc::slot3<T_return,T_arg1,T_arg2,T_arg3>*
cb;
960 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 3" );
964 cb =
static_cast<sigc::slot3<T_return, T_arg1, T_arg2,T_arg3>*
>(
cbptr );
970 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
973 sigc::slot4<T_return,T_arg1,T_arg2,T_arg3,T_arg4>*
cb;
981 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 4" );
986 cb =
static_cast<sigc::slot4<T_return, T_arg1, T_arg2,T_arg3,T_arg4>*
>(
cbptr );
992 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
995 sigc::slot5<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>*
cb;
1004 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 5" );
1010 cb =
static_cast<sigc::slot5<T_return, T_arg1, T_arg2,T_arg3,T_arg4,T_arg5>*
>(
cbptr );
1016 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
1019 sigc::slot6<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>*
cb;
1029 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 6" );
1036 cb =
static_cast<sigc::slot6<T_return, T_arg1, T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>*
>(
cbptr );
1042 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
1045 sigc::slot7<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>*
cb;
1056 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 7" );
1064 cb =
static_cast<sigc::slot7<T_return, T_arg1, T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>*
>(
cbptr );
1072 sigc::slot0<Values>*
cb;
1076 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 0" );
1077 cb =
static_cast<sigc::slot0<Values>*
>(
cbptr );
1085 template <
typename T_arg1>
1088 sigc::slot1<Values, T_arg1>*
cb;
1093 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 1" );
1094 cb =
static_cast<sigc::slot1<Values, T_arg1>*
>(
cbptr );
1103 template <
typename T_arg1,
typename T_arg2>
1106 sigc::slot2<Values, T_arg1, T_arg2>*
cb;
1112 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 2" );
1113 cb =
static_cast<sigc::slot2<Values, T_arg1, T_arg2>*
>(
cbptr );
1124 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
1127 sigc::slot3<Values, T_arg1, T_arg2, T_arg3>*
cb;
1134 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 3" );
1135 cb =
static_cast<sigc::slot3<Values, T_arg1, T_arg2, T_arg3>*
>(
cbptr );
1146 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
1149 sigc::slot4<Values, T_arg1, T_arg2, T_arg3, T_arg4>*
cb;
1157 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 4" );
1158 cb =
static_cast<sigc::slot4<Values, T_arg1, T_arg2, T_arg3, T_arg4>*
>(
cbptr);
1174 sigc::slot5<Values, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5>*
cb;
1183 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 5" );
1203 sigc::slot6<Values, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6>*
cb;
1213 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 6" );
1233 sigc::slot7<Values, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7>*
cb;
1244 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 7" );
1266 sigc::slot0<Value>*
cb;
1270 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 0" );
1271 cb =
static_cast<sigc::slot0<Value>*
>(
cbptr );
1279 template <
typename T_arg1>
1282 sigc::slot1<Value, T_arg1>*
cb;
1287 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 1" );
1288 cb =
static_cast<sigc::slot1<Value, T_arg1>*
>(
cbptr );
1297 template <
typename T_arg1,
typename T_arg2>
1300 sigc::slot2<Value, T_arg1, T_arg2>*
cb;
1306 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 2" );
1307 cb =
static_cast<sigc::slot2<Value, T_arg1, T_arg2>*
>(
cbptr );
1318 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
1321 sigc::slot3<Value, T_arg1, T_arg2, T_arg3>*
cb;
1328 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 3" );
1329 cb =
static_cast<sigc::slot3<Value, T_arg1, T_arg2, T_arg3>*
>(
cbptr );
1340 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
1343 sigc::slot4<Value, T_arg1, T_arg2, T_arg3, T_arg4>*
cb;
1351 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 4" );
1352 cb =
static_cast<sigc::slot4<Value, T_arg1, T_arg2, T_arg3, T_arg4>*
>(
cbptr);
1368 sigc::slot5<Value, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5>*
cb;
1377 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 5" );
1397 sigc::slot6<Value, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6>*
cb;
1407 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 6" );
1427 sigc::slot7<Value, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7>*
cb;
1438 throw std::logic_error(
"clipsmm/mf: wrong # args on slot callback; expected 7" );
1460 sigc::slot0<std::string>*
cb;
1464 throw std::logic_error(
"clipsmm/string: wrong # args on slot callback; expected 0" );
1465 cb =
static_cast<sigc::slot0<std::string>*
>(
cbptr );
1471 template <
typename T_arg1 >
1474 sigc::slot1<std::string,T_arg1>*
cb;
1479 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 1" );
1481 cb =
static_cast<sigc::slot1<std::string,T_arg1>*
>(
cbptr );
1487 template <
typename T_arg1,
typename T_arg2 >
1490 sigc::slot2<std::string, T_arg1, T_arg2>*
cb;
1496 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 2" );
1499 cb =
static_cast<sigc::slot2<std::string, T_arg1, T_arg2>*
>(
cbptr );
1505 template <
typename T_arg1,
typename T_arg2,
typename T_arg3 >
1508 sigc::slot3<std::string,T_arg1,T_arg2,T_arg3>*
cb;
1515 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 3" );
1519 cb =
static_cast<sigc::slot3<std::string, T_arg1, T_arg2,T_arg3>*
>(
cbptr );
1525 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
1528 sigc::slot4<std::string,T_arg1,T_arg2,T_arg3,T_arg4>*
cb;
1537 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 4" );
1542 cb =
static_cast<sigc::slot4<std::string, T_arg1, T_arg2,T_arg3,T_arg4>*
>(
cbptr );
1549 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
1552 sigc::slot5<std::string,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>*
cb;
1561 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 5" );
1567 cb =
static_cast<sigc::slot5<std::string, T_arg1, T_arg2,T_arg3,T_arg4,T_arg5>*
>(
cbptr );
1573 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
1576 sigc::slot6<std::string,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>*
cb;
1586 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 6" );
1593 cb =
static_cast<sigc::slot6<std::string, T_arg1, T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>*
>(
cbptr );
1599 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
1602 sigc::slot7<std::string,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>*
cb;
1613 throw std::logic_error(
"clipsmm: wrong # args on slot callback; expected 7" );
1621 cb =
static_cast<sigc::slot7<std::string, T_arg1, T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>*
>(
cbptr );
1627template <
typename T_return >
1632 sigc::slot0<T_return>*
scb =
new sigc::slot0<T_return>(
slot);
1644 template <
typename T_return,
typename T_arg1 >
1649 sigc::slot1<T_return, T_arg1>*
scb =
new sigc::slot1<T_return, T_arg1>(
slot);
1661 template <
typename T_return,
typename T_arg1,
typename T_arg2 >
1666 sigc::slot2<T_return, T_arg1, T_arg2>*
scb =
new sigc::slot2<T_return, T_arg1, T_arg2>(
slot);
1678 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3 >
1683 sigc::slot3<T_return,T_arg1,T_arg2,T_arg3>*
scb =
1684 new sigc::slot3<T_return,T_arg1,T_arg2,T_arg3>(
slot);
1697 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4 >
1702 sigc::slot4<T_return,T_arg1,T_arg2,T_arg3,T_arg4>*
scb =
1703 new sigc::slot4<T_return,T_arg1,T_arg2,T_arg3,T_arg4>(
slot);
1716 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5 >
1719 const sigc::slot5<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>&
slot) {
1722 sigc::slot5<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>*
scb =
1723 new sigc::slot5<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(
slot);
1736 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6 >
1739 const sigc::slot6<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>&
slot) {
1742 sigc::slot6<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>*
scb =
1743 new sigc::slot6<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(
slot);
1756 template <
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7 >
1759 const sigc::slot7<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>&
slot) {
1762 sigc::slot7<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>*
scb =
1763 new sigc::slot7<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(
slot);
CLIPSPointer< Activation > pointer
Definition activation.h:33
CLIPSPointer< DefaultFacts > pointer
Definition defaultfacts.h:33
Definition environment.h:57
Activation::pointer get_activation_list_head()
Definition environment.cpp:520
static void callback_multifield(void *theEnv, void *rv)
Definition environment.h:1071
int load(const std::string &filename)
Loads a set of constructs into the CLIPS data base.
Definition environment.cpp:88
bool use_dynamic_constraint_checking(bool use=true)
Sets the dynamic constraint checking behavior.
Definition environment.cpp:237
Function::pointer get_function(const std::string &function_name)
Definition environment.cpp:679
sigc::signal< void > signal_globals_changed()
Definition environment.cpp:771
bool save(const std::string &filename)
Saves a set of constructs to the specified file.
Definition environment.cpp:98
bool dribble_off()
Turns off the storing of dribble information.
Definition environment.cpp:107
Glib::Mutex m_mutex_threaded_run
Mutex that locks when a threaded run is executing.
Definition environment.h:533
DefaultFacts::pointer get_default_facts_list_head()
Definition environment.cpp:322
std::vector< std::string > get_default_facts_names()
Gets a list of default facts names from all modules.
Definition environment.cpp:295
Glib::Mutex m_mutex_run_signal
Mutex that protects against multiple signal emits.
Definition environment.h:534
~Environment()
Definition environment.cpp:50
static void set_return_values(void *env, void *rv, const Values &v)
Definition environment.cpp:804
Module::pointer get_current_module()
Definition environment.cpp:494
static T_return callback(void *theEnv)
Definition environment.h:904
bool is_dribble_active()
Determines if the storing of dribble information is active.
Definition environment.cpp:103
sigc::signal< void, long int > signal_run()
Signal emitted when the rules are executed.
Definition environment.cpp:183
bool fact_duplication_enabled()
Returns the current state of the fact duplication behavior.
Definition environment.cpp:257
static void * strcallback(void *theEnv)
Definition environment.h:1459
Fact::pointer assert_fact(const std::string &factstring)
Definition environment.cpp:434
long int run(long int runlimit=-1)
Allows rules to execute.
Definition environment.cpp:130
sigc::signal< void, long int > m_signal_run
Signal emitted when a job is run.
Definition environment.h:535
Glib::Mutex m_mutex_run_queue
Mutex that protects access to the run queue.
Definition environment.h:531
bool build(const std::string &construct)
Allows a construct to be defined.
Definition environment.cpp:80
bool remove_function(std::string name)
Definition environment.cpp:621
static void * get_function_context(void *env)
Definition environment.cpp:800
Global::pointer get_global_list_head()
Definition environment.cpp:640
void set_as_current()
Definition environment.cpp:215
bool auto_float_dividend_enabled()
Returns the current state of the auto-float dividend behavior.
Definition environment.cpp:225
bool incremental_reset_enabled()
Definition environment.cpp:474
void reorder_agenda()
Reorders the agenda for all modules.
Definition environment.cpp:544
Rule::pointer get_rule_list_head()
Definition environment.cpp:419
Module::pointer get_focused_module()
Definition environment.cpp:504
Fact::pointer assert_fact_f(const char *format,...)
Definition environment.cpp:454
void clear()
Clears the environment.
Definition environment.cpp:84
static void * add_symbol(void *env, const char *s)
Definition environment.cpp:856
static int get_arg_count(void *env)
Definition environment.cpp:796
Values evaluate(const std::string &expression)
Evaluates and expression and returns a vector of the results.
Definition environment.cpp:595
std::vector< std::string > get_focus_stack()
Definition environment.cpp:514
DefaultFacts::pointer get_default_facts(const std::string &default_facts_name)
Definition environment.cpp:285
bool use_static_constraint_checking(bool use=true)
Sets the static constraint checking behavior.
Definition environment.cpp:253
static std::map< void *, Environment * > m_environment_map
Definition environment.h:551
Function::pointer get_function_list_head()
Definition environment.cpp:687
std::vector< std::string > get_function_names()
Gets a list of function names from all modules.
Definition environment.cpp:697
bool use_fact_duplication(bool use=true)
Sets the static constraint checking behavior.
Definition environment.cpp:261
static void rule_firing_callback(void *end)
Definition environment.cpp:791
Global::pointer get_global(const std::string &global_name)
Definition environment.cpp:632
Glib::Thread * m_run_thread
A pointer to the currently running thread.
Definition environment.h:529
ConflictResolution get_conflict_resolution_strategy()
Gets the current conflict resolution strategy.
Definition environment.cpp:568
static void callback_unknown(void *theEnv, void *rv)
Definition environment.h:1265
Glib::Mutex m_mutex_run
Mutex that protects against multiple executions.
Definition environment.h:532
sigc::signal< void > signal_periodic()
Definition environment.cpp:731
void clear_focus_stack()
Definition environment.cpp:220
Module::pointer get_module(const std::string &module_name)
Definition environment.cpp:484
static void set_return_value(void *env, void *rv, const Value &v)
Definition environment.cpp:851
bool static_constraint_checking_enabled()
Returns the current state of the static constraint checking behavior.
Definition environment.cpp:249
sigc::signal< void > m_signal_rule_firing
Definition environment.h:507
sigc::signal< void > m_signal_globals_changed
Definition environment.h:509
SalienceEvaluation get_salience_evaluation()
Gets the salience evaluation mode.
Definition environment.cpp:558
Module::pointer get_module_list_head()
Definition environment.cpp:585
void remove_rules()
Definition environment.cpp:429
sigc::signal< void > m_signal_reset
Definition environment.h:506
Environment()
Definition environment.cpp:33
bool dribble_on(const std::string &dribble_file)
Allows the dribble function of CLIPS to be turned on.
Definition environment.cpp:111
std::vector< std::string > get_globals_names()
Gets a list of global names from all modules.
Definition environment.cpp:650
bool use_sequence_operator_recognition(bool use=true)
Sets the sequence operator recognition behavior.
Definition environment.cpp:245
Values function(const std::string &function_name, const std::string &arguments=std::string())
Evaluates a CLIPS function.
Definition environment.cpp:606
bool use_auto_float_dividend(bool use=true)
Sets the auto-float dividend behavior.
Definition environment.cpp:229
Fact::pointer get_facts()
TODO Facts.
Definition environment.cpp:275
Rule::pointer get_rule(const std::string &rule_name)
Definition environment.cpp:382
bool dynamic_constraint_checking_enabled()
Returns the current state of the dynamic constraint checking behavior.
Definition environment.cpp:233
int(*)(void *) get_callback(const sigc::slot0< std::string > &slot)
Definition environment.h:659
void threaded_run()
Protected method that does the actual work.
Definition environment.cpp:187
sigc::signal< void > m_signal_periodic
Definition environment.h:505
bool check_agenda_changed()
TODO ListDefmodules.
Definition environment.cpp:746
sigc::signal< void > m_signal_clear
Definition environment.h:504
char * get_function_restriction(std::string &name)
Definition environment.h:821
bool use_global_reset(bool use=true)
Definition environment.cpp:269
std::priority_queue< Job > m_run_queue
A priority queue of jobs to run.
Definition environment.h:530
bool batch_evaluate(const std::string &filename)
Evaluates a series of commands in the specified file.
Definition environment.cpp:68
int is_watched(const std::string &item)
Determine if an item is being watched.
Definition environment.cpp:116
void join_run_thread()
Waits until the execution thread is finished.
Definition environment.cpp:163
CLIPSPointer< Environment > pointer
Definition environment.h:59
void refresh_agenda()
Refreshes the agenda for all modules.
Definition environment.cpp:530
static void clear_callback(void *env)
Definition environment.cpp:776
bool binary_load(const std::string &filename)
Loads a binary image of constructs into the CLIPS data base.
Definition environment.cpp:72
bool sequence_operator_recognition_enabled()
Returns the current state of the sequence operator recognition behavior.
Definition environment.cpp:241
std::vector< std::string > get_module_names()
Definition environment.cpp:578
static void reset_callback(void *env)
Definition environment.cpp:786
Template::pointer get_template(const std::string &template_name)
Definition environment.cpp:332
bool binary_save(const std::string &filename)
Saves a binary image of constructs from the CLIPS data base.
Definition environment.cpp:76
std::vector< std::string > get_rule_names()
Gets a list of rule names from all modules.
Definition environment.cpp:392
std::map< std::string, any > m_slots
Holds any dynamically created slots.
Definition environment.h:502
bool watch(const std::string &item)
Definition environment.cpp:120
bool unwatch(const std::string &item)
Definition environment.cpp:125
bool check_globals_changed()
Definition environment.cpp:761
ConflictResolution set_conflict_resolution_strategy(ConflictResolution cr)
Sets the conflict resolution strategy.
Definition environment.cpp:573
std::map< std::string, char * > m_func_restr
Map from function name to restrictions.
Definition environment.h:546
std::vector< std::string > get_template_names()
Gets a list of template names from all modules.
Definition environment.cpp:345
sigc::signal< void > signal_agenda_changed()
Definition environment.cpp:756
bool global_reset_enable()
Definition environment.cpp:265
static void periodic_callback(void *env)
Definition environment.cpp:781
sigc::signal< void > signal_reset()
Definition environment.cpp:736
void reset()
Resets the CLIPS environment.
Definition environment.cpp:93
bool use_incremental_reset(bool use=true)
Definition environment.cpp:479
sigc::signal< void > signal_rule_firing()
Definition environment.cpp:741
bool add_function(std::string name, const sigc::slot0< T_return > &slot)
Definition environment.h:1629
void run_threaded(long int runlimit=-1, int priority=0)
Executes rules in a separate thread.
Definition environment.cpp:142
sigc::signal< void > m_signal_agenda_changed
Definition environment.h:508
SalienceEvaluation set_salience_evaluation(SalienceEvaluation se)
Sets the salience evaluation mode.
Definition environment.cpp:563
sigc::signal< void > signal_clear()
Definition environment.cpp:726
Template::pointer get_template_list_head()
Definition environment.cpp:372
CLIPSPointer< Fact > pointer
Definition fact.h:36
CLIPSPointer< Function > pointer
Definition function.h:32
CLIPSPointer< Global > pointer
Definition global.h:33
CLIPSPointer< Module > pointer
Definition module.h:31
void * m_cobj
The underlying CLIPS C object.
Definition object.h:45
CLIPSPointer< Rule > pointer
Definition rule.h:31
CLIPSPointer< Template > pointer
Definition template.h:44
int EnvDefineFunction2WithContext(void *, const char *, int, int(*)(void *), const char *, const char *, void *)
Definition activation.cpp:29
void get_argument(void *env, int argposition, void *&value)
Definition utility.cpp:71
std::vector< Value > Values
Definition value.h:278
SalienceEvaluation
Definition enum.h:27
ConflictResolution
Definition enum.h:36
#define CLIPSPointer
Definition pointer.h:28
Encapsulates the concept of a CLIPS job.
Definition environment.h:512
Job(int p, long int rl)
Constructor that takes a priority and a CLIPS runlimit.
Definition environment.h:514
bool operator<(const Job &other) const
Comparison operator that compares the priority member.
Definition environment.h:517
long int runlimit
How many rules should fire.
Definition environment.h:526
int priority
The priority of this job.
Definition environment.h:520