ExecStatus NaryEqv::propagate(Space& home, const ModEventDelta&) { resubscribe(home,x0); resubscribe(home,x1); if (x.size() == 0) { if (x0.assigned() && x1.assigned()) { return (pm2 == 1) ? home.ES_SUBSUMED(*this) : ES_FAILED; } else if (x0.assigned()) { GECODE_ME_CHECK(x1.eq(home,1^pm2)); return home.ES_SUBSUMED(*this); } else if (x1.assigned()) { GECODE_ME_CHECK(x0.eq(home,1^pm2)); return home.ES_SUBSUMED(*this); } } return ES_FIX; }
void AdStreamSubscriber::retry_failed_subscriber() { resubscribe(retry_sub_list_, false); }
void AdStreamSubscriber::resubscribe_all() { resubscribe(subscriber_list_, true); }