man-to-opt.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 namespace Gecode { namespace Int {
00035
00036 template<class ManTask>
00037 forceinline
00038 ManToOptTask<ManTask>::ManToOptTask(void) {}
00039
00040 template<class ManTask>
00041 forceinline bool
00042 ManToOptTask<ManTask>::mandatory(void) const {
00043 return _m.one();
00044 }
00045 template<class ManTask>
00046 forceinline bool
00047 ManToOptTask<ManTask>::excluded(void) const {
00048 return _m.zero();
00049 }
00050 template<class ManTask>
00051 forceinline bool
00052 ManToOptTask<ManTask>::optional(void) const {
00053 return _m.none();
00054 }
00055
00056 template<class ManTask>
00057 forceinline bool
00058 ManToOptTask<ManTask>::assigned(void) const {
00059 return ManTask::assigned() && _m.assigned();
00060 }
00061
00062 template<class ManTask>
00063 forceinline ModEvent
00064 ManToOptTask<ManTask>::mandatory(Space& home) {
00065 return _m.one(home);
00066 }
00067 template<class ManTask>
00068 forceinline ModEvent
00069 ManToOptTask<ManTask>::excluded(Space& home) {
00070 return _m.zero(home);
00071 }
00072
00073 template<class ManTask>
00074 forceinline void
00075 ManToOptTask<ManTask>::update(Space& home, ManToOptTask<ManTask>& t) {
00076 ManTask::update(home, t);
00077 _m.update(home,t._m);
00078 }
00079
00080 template<class ManTask>
00081 forceinline void
00082 ManToOptTask<ManTask>::subscribe(Space& home, Propagator& p, PropCond pc) {
00083 ManTask::subscribe(home, p, pc);
00084 _m.subscribe(home, p, PC_BOOL_VAL);
00085 }
00086 template<class ManTask>
00087 forceinline void
00088 ManToOptTask<ManTask>::cancel(Space& home, Propagator& p, PropCond pc) {
00089 _m.cancel(home, p, PC_BOOL_VAL);
00090 ManTask::cancel(home, p, pc);
00091 }
00092
00093 template<class ManTask>
00094 forceinline void
00095 ManToOptTask<ManTask>::reschedule(Space& home, Propagator& p, PropCond pc) {
00096 _m.reschedule(home, p, PC_BOOL_VAL);
00097 ManTask::reschedule(home, p, pc);
00098 }
00099
00100 }}
00101
00102