Public Member Functions | |
SecondaryMDLController (r_code::_View *view) | |
void | set_primary (PrimaryMDLController *primary) |
void | take_input (r_exec::View *input) override |
void | reduce (r_exec::View *input) |
void | reduce_batch (Fact *f_p_f_imdl, MDLController *controller) |
void | store_requirement (_Fact *f_p_f_imdl, MkRdx *mk_rdx, MDLController *controller, bool chaining_was_allowed) override |
void | predict (HLPBindingMap *bm, _Fact *input, Fact *f_imdl, bool chaining_was_allowed, RequirementsPair &r_p, Fact *ground, MkRdx *ground_mk_rdx, std::vector< P< _Fact > > &already_predicted) override |
void | register_pred_outcome (Fact *f_pred, r_code::Code *mk_rdx, bool success, _Fact *evidence, float32 confidence, bool rate_failures) override |
void | register_req_outcome (Fact *f_pred, bool success, bool rate_failures) override |
![]() | |
void | add_monitor (PMonitor *m) |
void | remove_monitor (PMonitor *m) |
_Fact * | get_lhs () const |
_Fact * | get_rhs () const |
Fact * | get_f_ihlp (HLPBindingMap *bindings, bool wr_enabled) const override |
ChainingStatus | retrieve_imdl_fwd (const HLPBindingMap *bm, Fact *f_imdl, RequirementsPair &r_p, std::vector< BindingResult > &results, MDLController *req_controller, bool &wr_enabled) |
ChainingStatus | retrieve_imdl_bwd (HLPBindingMap *bm, Fact *f_imdl, Fact *&ground, Fact *&strong_requirement_ground) |
ChainingStatus | retrieve_simulated_imdl_fwd (const HLPBindingMap *bm, Fact *f_imdl, Sim *sim, std::vector< BindingResult > &results) |
ChainingStatus | retrieve_simulated_imdl_bwd (HLPBindingMap *bm, Fact *f_imdl, Sim *prediction_sim, Fact *&ground, Fact *&strong_requirement_ground) |
void | add_requirement_to_rhs () |
void | remove_requirement_from_rhs () |
bool | is_requirement () const |
bool | is_reuse () const |
bool | is_cmd () const |
void | register_requirement (_Fact *f_pred, RequirementsPair &r_p) |
![]() | |
void | invalidate () override |
r_code::Code * | get_core_object () const override |
r_code::Code * | get_unpacked_object () const |
void | add_requirement (bool strong) |
void | remove_requirement (bool strong) |
uint32 | get_requirement_count (uint32 &weak_requirement_count, uint32 &strong_requirement_count) |
uint32 | get_requirement_count () |
void | store_evidence (_Fact *evidence) |
void | store_predicted_evidence (_Fact *evidence) |
uint16 | get_out_group_count () const |
r_code::Code * | get_out_group (uint16 i) const |
Group * | get_host () const |
bool | has_tpl_args () const |
bool | inject_prediction (Fact *prediction, float32 confidence) const |
![]() | |
std::chrono::microseconds | get_tsc () |
bool | is_invalidated () |
void | activate (bool a) |
bool | is_activated () const |
bool | is_alive () const |
r_code::Code * | get_object () const |
r_exec::View * | get_view () const |
void | _take_input (r_exec::View *input) |
virtual void | gain_activation () |
virtual void | lose_activation () |
void | set_view (View *view) |
void | debug (View *) |
![]() | |
void | incRef () |
virtual void | decRef () |
Additional Inherited Members | |
![]() | |
static MDLController * | New (View *view, bool &inject_in_secondary_group) |
static bool | get_imdl_template_timings (r_code::Code *imdl, Timestamp &after, Timestamp &before, uint16 *after_ts_index=NULL, uint16 *before_ts_index=NULL) |
![]() | |
enum | RequirementType { NOT_A_REQUIREMENT = 0, WEAK_REQUIREMENT = 1, STRONG_REQUIREMENT = 2 } |
![]() | |
void | _store_requirement (r_code::list< RequirementEntry > *cache, RequirementEntry &e) |
float32 | get_success_rate () const |
template<class C > | |
void | reduce_cache (Fact *f_p_f_imdl, MDLController *controller) |
template<class E > | |
void | reduce_cache (CriticalSectionList< E > *cache, Fact *f_p_f_imdl, MDLController *controller) |
bool | monitor_predictions (_Fact *input) |
MDLController (r_code::_View *view) | |
![]() | |
template<class E > | |
void | _store_evidence (CriticalSectionList< E > *cache, _Fact *evidence) |
bool | evaluate_bwd_guards (HLPBindingMap *bm, bool narrow_fwd_timings=false) |
MatchResult | check_evidences (_Fact *target, _Fact *&evidence) |
MatchResult | check_predicted_evidences (_Fact *target, _Fact *&evidence) |
void | inject_notification_into_out_groups (r_code::Code *origin, r_code::Code *marker) const |
bool | is_orphan () |
bool | become_invalidated () |
HLPController (r_code::_View *view) | |
![]() | |
OController (r_code::_View *view) | |
![]() | |
template<class C > | |
void | __take_input (r_exec::View *input) |
Controller (r_code::_View *view) | |
![]() | |
static void | push_reduction_job (_ReductionJob *j) |
![]() | |
RequirementCache | requirements_ |
RequirementCache | simulated_requirements_ |
CriticalSection | p_monitorsCS_ |
r_code::list< P< PMonitor > > | p_monitors_ |
P< r_code::Code > | lhs_ |
P< r_code::Code > | rhs_ |
RequirementType | requirement_type_ |
bool | is_reuse_ |
bool | is_cmd_ |
CriticalSection | active_requirementsCS_ |
std::unordered_map< P< _Fact >, RequirementsPair, r_code::PHash< _Fact > > | active_requirements_ |
![]() | |
CriticalSectionList< EvidenceEntry > | evidences_ |
CriticalSectionList< PredictedEvidenceEntry > | predicted_evidences_ |
P< HLPBindingMap > | bindings_ |
bool | has_tpl_args_ |
uint32 | ref_count_ |
std::vector< P< HLPController > > | controllers_ |
Timestamp | last_match_time_ |
![]() | |
r_code::list< P< Overlay > > | overlays_ |
![]() | |
volatile uint32 | invalidated_ |
volatile uint32 | activated_ |
std::chrono::microseconds | time_scope_ |
r_code::_View * | view_ |
CriticalSection | reductionCS_ |
![]() | |
std::atomic_int32_t | refCount_ |
![]() | |
static const uint32 | LHSController = 0 |
static const uint32 | RHSController = 1 |
Definition at line 529 of file mdl_controller.h.
|
overridevirtual |
If f_p_f_imdl->get_pred()->is_simulation(), then this is for a simulation.
Implements r_exec::MDLController.
Definition at line 2810 of file mdl_controller.cpp.