Condition 代表了一个发生的事件。Condition 接口定义如下:

class Condition{
    virtual bool get_trigger_value() const = 0;
};

当事件发生时,接口返回值为 true。

GuardCondition

GuardCondition 是一个手动控制的 Condition 实现。是用方式是将一个 GuardCondition 添加到 WaitSet 上,在合适的机会调用 set_trigger_value 。GuardCondition 的接口定义如下:

class GuardCondition: public Condition {
    bool get_trigger_value() const;
    ReturnCode_t set_trigger_value(bool value);
};

StatusCondition

StatusCondition 代表了每个 Entity 上发生的事件。接口定义如下:

class StatusCondition: public Condition {
   virtual bool get_trigger_value() const override;
   ReturnCode_t set_enabled_status(const StatusMask& mask);
   const StatusMask& get_enabled_statuses() const;
   Entity* get_entity() const;
};

WaitSet

WaitSet 允许程序等待多个 Condition 发生。接口定义如下:

class WaitSet {
    ReturnCode_t attach_condition(const Condition& cond);
    ReturnCode_t detach_condition(const Condition& cond);
    // [IN] active_conditions
    ReturnCode_t wait(std::vector<Condition&> &active_conditions, Time: timeout) const;
    // [IN] attached_conditions
    ReturnCode_t get_conditions(vector<Condition&>& attached_conditions) const;
};
Last moify: 2023-07-01 00:26:25
Build time:2025-07-18 09:41:42
Powered By asphinx