* \brief Negated Boolean view * * A negated Boolean view \f$n\f$ for a Boolean view \f$b\f$ * provides operations such that \f$n\f$ * behaves as \f$\neg b\f$. * \ingroup TaskActorIntView */
| 1572 | * \ingroup TaskActorIntView |
| 1573 | */ |
| 1574 | class NegBoolView : public DerivedView<BoolView> { |
| 1575 | protected: |
| 1576 | using DerivedView<BoolView>::x; |
| 1577 | public: |
| 1578 | /// \name Constructors and initialization |
| 1579 | //@{ |
| 1580 | /// Default constructor |
| 1581 | NegBoolView(void); |
| 1582 | /// Initialize with Boolean view \a y |
| 1583 | explicit NegBoolView(const BoolView& y); |
| 1584 | //@} |
| 1585 | |
| 1586 | /// \name Domain status access |
| 1587 | //@{ |
| 1588 | /// How many bits does the status have |
| 1589 | static const int BITS = BoolView::BITS; |
| 1590 | /// Status of domain assigned to zero |
| 1591 | static const BoolStatus ZERO = BoolView::ONE; |
| 1592 | /// Status of domain assigned to one |
| 1593 | static const BoolStatus ONE = BoolView::ZERO; |
| 1594 | /// Status of domain not yet assigned |
| 1595 | static const BoolStatus NONE = BoolView::NONE; |
| 1596 | /// Return current domain status |
| 1597 | BoolStatus status(void) const; |
| 1598 | //@} |
| 1599 | |
| 1600 | /// \name Boolean domain tests |
| 1601 | //@{ |
| 1602 | /// Test whether view is assigned to be zero |
| 1603 | bool zero(void) const; |
| 1604 | /// Test whether view is assigned to be one |
| 1605 | bool one(void) const; |
| 1606 | /// Test whether view is not yet assigned |
| 1607 | bool none(void) const; |
| 1608 | //@} |
| 1609 | |
| 1610 | /// \name Boolean assignment operations |
| 1611 | //@{ |
| 1612 | /// Try to assign view to one |
| 1613 | ModEvent one(Space& home); |
| 1614 | /// Try to assign view to zero |
| 1615 | ModEvent zero(Space& home); |
| 1616 | /// Assign not yet assigned view to one |
| 1617 | ModEvent one_none(Space& home); |
| 1618 | /// Assign not yet assigned view to zero |
| 1619 | ModEvent zero_none(Space& home); |
| 1620 | //@} |
| 1621 | |
| 1622 | /// \name Domain update by value |
| 1623 | //@{ |
| 1624 | /// Restrict domain values to be less or equal than \a n |
| 1625 | ModEvent lq(Space& home, int n); |
| 1626 | /// Restrict domain values to be less or equal than \a n |
| 1627 | ModEvent lq(Space& home, long long int n); |
| 1628 | |
| 1629 | /// Restrict domain values to be less than \a n |
| 1630 | ModEvent le(Space& home, int n); |
| 1631 | /// Restrict domain values to be less than \a n |
no outgoing calls
no test coverage detected