AERA
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
r_exec::HLPController Class Referenceabstract
Inheritance diagram for r_exec::HLPController:
r_exec::OController r_exec::Controller core::_Object r_exec::CSTController r_exec::MDLController r_exec::PMDLController r_exec::SecondaryMDLController r_exec::PrimaryMDLController r_exec::TopLevelMDLController

Classes

class  EvidenceEntry
 
class  PredictedEvidenceEntry
 

Public Member Functions

void invalidate () override
 
r_code::Codeget_core_object () const override
 
r_code::Codeget_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)
 
virtual Factget_f_ihlp (HLPBindingMap *bindings, bool wr_enabled) const =0
 
uint16 get_out_group_count () const
 
r_code::Codeget_out_group (uint16 i) const
 
Groupget_host () const
 
bool has_tpl_args () const
 
bool inject_prediction (Fact *prediction, float32 confidence) const
 
- Public Member Functions inherited from r_exec::Controller
std::chrono::microseconds get_tsc ()
 
bool is_invalidated ()
 
void activate (bool a)
 
bool is_activated () const
 
bool is_alive () const
 
r_code::Codeget_object () const
 
r_exec::Viewget_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 *)
 
- Public Member Functions inherited from core::_Object
void incRef ()
 
virtual void decRef ()
 

Protected Member Functions

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 ()
 
virtual void kill_views ()
 
virtual void check_last_match_time (bool match)=0
 
 HLPController (r_code::_View *view)
 
- Protected Member Functions inherited from r_exec::OController
 OController (r_code::_View *view)
 
- Protected Member Functions inherited from r_exec::Controller
virtual void take_input (r_exec::View *)
 
template<class C >
void __take_input (r_exec::View *input)
 
 Controller (r_code::_View *view)
 

Protected Attributes

CriticalSectionList< EvidenceEntryevidences_
 
CriticalSectionList< PredictedEvidenceEntrypredicted_evidences_
 
P< HLPBindingMapbindings_
 
bool has_tpl_args_
 
uint32 ref_count_
 
std::vector< P< HLPController > > controllers_
 
Timestamp last_match_time_
 
- Protected Attributes inherited from r_exec::OController
r_code::list< P< Overlay > > overlays_
 
- Protected Attributes inherited from r_exec::Controller
volatile uint32 invalidated_
 
volatile uint32 activated_
 
std::chrono::microseconds time_scope_
 
r_code::_Viewview_
 
CriticalSection reductionCS_
 
- Protected Attributes inherited from core::_Object
std::atomic_int32_t refCount_
 

Additional Inherited Members

- Static Protected Member Functions inherited from r_exec::Controller
static void push_reduction_job (_ReductionJob *j)
 

Detailed Description

Definition at line 105 of file hlp_controller.h.

Member Function Documentation

◆ evaluate_bwd_guards()

bool r_exec::HLPController::evaluate_bwd_guards ( HLPBindingMap bm,
bool  narrow_fwd_timings = false 
)
protected

Evaluate the backward guards and update the binding map.

Parameters
bmThe binding map to update.
narrow_fwd_timingsIf true and the binding map fwd_after and fwd_before variables are bound, then save them before evaluating the guards and then set the fwd_after and fwd_before variables to the intersection of the previous values and the guard values. If omitted or false, then let the guards overwrite the fwd_after and fwd_before variables.
Returns
True if the guards are successfully evaluated.

Definition at line 168 of file hlp_controller.cpp.

◆ inject_notification_into_out_groups()

void r_exec::HLPController::inject_notification_into_out_groups ( r_code::Code origin,
r_code::Code marker 
) const
protected

For each output group, make a NotificationView and inject into the group.

Parameters
markerThe origin for the NotificationView.
markerThe marker for the NotificationView.

Definition at line 301 of file hlp_controller.cpp.


The documentation for this class was generated from the following files: