replicode
Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
r_exec::Group Class Reference

#include <group.h>

Inheritance diagram for r_exec::Group:
Inheritance graph
Collaboration diagram for r_exec::Group:
Collaboration graph

Classes

class  Equal
 
class  GroupState
 
class  Hash
 
class  Mod
 
class  ModSet
 
class  Operation
 
class  Set
 

Public Member Functions

 Group (r_code::Mem *m=NULL)
 
 Group (r_code::SysObject *source)
 
virtual ~Group ()
 
bool invalidate ()
 
bool all_views_cond (uint8_t &selector, std::unordered_map< uint64_t, P< View > >::const_iterator &it, std::unordered_map< uint64_t, P< View > >::const_iterator &end)
 
bool views_with_inputs_cond (uint8_t &selector, std::unordered_map< uint64_t, P< View > >::const_iterator &it, std::unordered_map< uint64_t, P< View > >::const_iterator &end)
 
bool non_ntf_views_cond (uint8_t &selector, std::unordered_map< uint64_t, P< View > >::const_iterator &it, std::unordered_map< uint64_t, P< View > >::const_iterator &end)
 
Viewget_view (uint64_t OID)
 
uint32_t get_upr () const
 
float get_sln_thr () const
 
float get_act_thr () const
 
float get_vis_thr () const
 
float get_c_sln () const
 
float get_c_act () const
 
float get_c_sln_thr () const
 
float get_c_act_thr () const
 
void mod_sln_thr (double value)
 
void set_sln_thr (double value)
 
void mod_act_thr (double value)
 
void set_act_thr (double value)
 
void mod_vis_thr (double value)
 
void set_vis_thr (double value)
 
void mod_c_sln (double value)
 
void set_c_sln (double value)
 
void mod_c_act (double value)
 
void set_c_act (double value)
 
void mod_c_sln_thr (double value)
 
void set_c_sln_thr (double value)
 
void mod_c_act_thr (double value)
 
void set_c_act_thr (double value)
 
double update_sln_thr ()
 
double update_act_thr ()
 
double update_vis_thr ()
 
double update_c_sln ()
 
double update_c_act ()
 
double update_c_sln_thr ()
 
double update_c_act_thr ()
 
float get_sln_chg_thr ()
 
float get_sln_chg_prd ()
 
float get_act_chg_thr ()
 
float get_act_chg_prd ()
 
float get_avg_sln ()
 
float get_high_sln ()
 
float get_low_sln ()
 
float get_avg_act ()
 
float get_high_act ()
 
float get_low_act ()
 
float get_high_sln_thr ()
 
float get_low_sln_thr ()
 
float get_sln_ntf_prd ()
 
float get_high_act_thr ()
 
float get_low_act_thr ()
 
float get_act_ntf_prd ()
 
float get_low_res_thr ()
 
float get_ntf_new ()
 
uint16_t get_ntf_grp_count ()
 
Groupget_ntf_grp (uint16_t i)
 
double update_res (View *v)
 
double update_sln (View *v)
 
double update_act (View *v)
 
void mod (uint16_t member_index, float value)
 
void set (uint16_t member_index, float value)
 
void reset_stats ()
 
void update_stats ()
 
bool load (View *view, Code *object)
 
void update (uint64_t planned_time)
 
void inject_new_object (View *view)
 
void inject_existing_object (View *view)
 
void inject_group (View *view)
 the view holds a group. More...
 
void inject_notification (View *view, bool lock)
 
void inject_hlps (std::vector< View * > &views)
 
void inject_reduction_jobs (View *view)
 group is assumed to be c-salient, already protected More...
 
void cov ()
 
void delete_view (View *v)
 
void delete_view (std::unordered_map< uint64_t, P< View > >::const_iterator &v)
 
Groupget_secondary_group ()
 
void load_secondary_mdl_controller (View *view)
 
void inject_secondary_mdl_controller (View *view)
 
uint64_t get_next_upr_time (uint64_t now) const
 
uint64_t get_prev_upr_time (uint64_t now) const
 
- Public Member Functions inherited from r_exec::LObject
 LObject (r_code::Mem *mem=NULL)
 
 LObject (r_code::SysObject *source)
 
virtual ~LObject ()
 
- Public Member Functions inherited from r_exec::Object< r_code::LObject, LObject >
virtual ~Object ()
 
r_code::Viewbuild_view (SysView *source)
 
virtual bool is_invalidated ()
 
void compute_hash_value ()
 
double get_psln_thr ()
 
void acq_views ()
 
void rel_views ()
 
void acq_markers ()
 
void rel_markers ()
 
void set (uint16_t member_index, double value)
 
void mod (uint16_t member_index, double value)
 
Viewget_view (Code *group, bool lock)
 
void kill ()
 
- Public Member Functions inherited from r_code::LObject
 LObject ()
 
 LObject (SysObject *source)
 
Viewbuild_view (SysView *source)
 
uint64_t get_oid () const
 
void set_oid (uint64_t oid)
 
Atomcode (uint16_t i)
 
Atomcode (uint16_t i) const
 
uint16_t code_size () const
 
void resize_code (uint16_t new_size)
 
void set_reference (uint16_t i, Code *object)
 
Codeget_reference (uint16_t i) const
 
uint16_t references_size () const
 
void clear_references ()
 
void set_references (std::vector< P< Code > > &new_references)
 
void add_reference (Code *object) const
 
- Public Member Functions inherited from r_code::Code
void set_stroage_index (int64_t i)
 
bool is_registered () const
 
int64_t get_storage_index () const
 
virtual bool is_compact () const
 
 Code ()
 
virtual ~Code ()
 
virtual Viewget_view (Code *group, bool lock)
 
void remove_marker (Code *m)
 
void trace () const
 
- Public Member Functions inherited from core::_Object
virtual ~_Object ()
 
void incRef ()
 
virtual void decRef ()
 

Public Attributes

std::mutex mutex
 
std::unordered_map< uint64_t, P< View > > ipgm_views
 
std::unordered_map< uint64_t, P< View > > anti_ipgm_views
 
std::unordered_map< uint64_t, P< View > > input_less_ipgm_views
 
std::unordered_map< uint64_t, P< View > > notification_views
 
std::unordered_map< uint64_t, P< View > > group_views
 
std::unordered_map< uint64_t, P< View > > other_views
 
std::unordered_map< Group *, bool > viewing_groups
 
std::multiset< P< View >, r_code::View::Lessnewly_salient_views
 
std::vector< Controller * > new_controllers
 
std::vector< Operation * > pending_operations
 
- Public Attributes inherited from r_code::Code
r_code::list< Code * > markers
 
std::unordered_set< View *, View::Hash, View::Equalviews
 

Private Member Functions

void reset_ctrl_values ()
 
void reset_decay_values ()
 
void _mod_0_positive (uint16_t member_index, float value)
 
void _mod_0_plus1 (uint16_t member_index, float value)
 
void _mod_minus1_plus1 (uint16_t member_index, float value)
 
void _set_0_positive (uint16_t member_index, float value)
 
void _set_0_plus1 (uint16_t member_index, float value)
 
void _set_minus1_plus1 (uint16_t member_index, float value)
 
void _set_0_1 (uint16_t member_index, float value)
 
bool is_active_pgm (View *view)
 
bool is_eligible_input (View *view)
 
void inject (View *view)
 the view can hold anything but groups and notifications. More...
 
void notifyNew (View *view)
 
void cov (View *view)
 
void _update_saliency (GroupState *state, View *view)
 
void _update_activation (GroupState *state, View *view)
 
void _update_visibility (GroupState *state, View *view)
 
void _initiate_sln_propagation (Code *object, double change, double source_sln_thr) const
 
void _initiate_sln_propagation (Code *object, double change, double source_sln_thr, std::vector< Code * > &path) const
 
void _propagate_sln (Code *object, double change, double source_sln_thr, std::vector< Code * > &path) const
 

Private Attributes

uint64_t sln_thr_changes
 
double acc_sln_thr
 
uint64_t act_thr_changes
 
double acc_act_thr
 
uint64_t vis_thr_changes
 
double acc_vis_thr
 
uint64_t c_sln_changes
 
double acc_c_sln
 
uint64_t c_act_changes
 
double acc_c_act
 
uint64_t c_sln_thr_changes
 
double acc_c_sln_thr
 
uint64_t c_act_thr_changes
 
double acc_c_act_thr
 
double avg_sln
 
double high_sln
 
double low_sln
 
double avg_act
 
double high_act
 
double low_act
 
uint64_t sln_updates
 
uint64_t act_updates
 
double sln_decay
 
double sln_thr_decay
 
int64_t decay_periods_to_go
 
double decay_percentage_per_period
 
double decay_target
 
int64_t sln_change_monitoring_periods_to_go = 0
 
int64_t act_change_monitoring_periods_to_go = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from r_exec::LObject
static bool RequiresPacking ()
 
static LObjectPack (Code *object, r_code::Mem *mem)
 
- Static Public Attributes inherited from r_code::Code
static const int64_t null_storage_index = -1
 
static const uint64_t CodeMarkersInitialSize = 8
 
- Protected Member Functions inherited from r_exec::Object< r_code::LObject, LObject >
 Object ()
 
 Object (r_code::Mem *mem)
 
- Protected Member Functions inherited from r_code::Code
void load (SysObject *source)
 
template<class V >
Viewbuild_view (SysView *source)
 
- Protected Member Functions inherited from core::_Object
 _Object ()
 
- Protected Attributes inherited from r_code::LObject
uint64_t _oid
 
r_code::vector< Atom_code
 
r_code::vector< P< Code > > _references
 
- Protected Attributes inherited from r_code::Code
int64_t storage_index
 
- Protected Attributes inherited from core::_Object
std::atomic_int_fast64_t refCount
 

Constructor & Destructor Documentation

r_exec::Group::Group ( r_code::Mem m = NULL)

Here is the call graph for this function:

r_exec::Group::Group ( r_code::SysObject source)

Here is the call graph for this function:

r_exec::Group::~Group ( )
virtual

Here is the call graph for this function:

Member Function Documentation

void r_exec::Group::_initiate_sln_propagation ( Code object,
double  change,
double  source_sln_thr 
) const
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_initiate_sln_propagation ( Code object,
double  change,
double  source_sln_thr,
std::vector< Code * > &  path 
) const
private

Here is the call graph for this function:

void r_exec::Group::_mod_0_plus1 ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_mod_0_positive ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_mod_minus1_plus1 ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_propagate_sln ( Code object,
double  change,
double  source_sln_thr,
std::vector< Code * > &  path 
) const
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_set_0_1 ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_set_0_plus1 ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_set_0_positive ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_set_minus1_plus1 ( uint16_t  member_index,
float  value 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_update_activation ( GroupState state,
View view 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_update_saliency ( GroupState state,
View view 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::_update_visibility ( GroupState state,
View view 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::Group::all_views_cond ( uint8_t &  selector,
std::unordered_map< uint64_t, P< View > >::const_iterator &  it,
std::unordered_map< uint64_t, P< View > >::const_iterator &  end 
)
inline
void r_exec::Group::cov ( View view)
private

Here is the call graph for this function:

void r_exec::Group::cov ( )

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::delete_view ( View v)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::delete_view ( std::unordered_map< uint64_t, P< View > >::const_iterator &  v)
float r_exec::Group::get_act_chg_prd ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_act_chg_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_act_ntf_prd ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_act_thr ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_avg_act ( )

Here is the call graph for this function:

float r_exec::Group::get_avg_sln ( )

Here is the call graph for this function:

float r_exec::Group::get_c_act ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_c_act_thr ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_c_sln ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_c_sln_thr ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_high_act ( )

Here is the call graph for this function:

float r_exec::Group::get_high_act_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_high_sln ( )

Here is the call graph for this function:

float r_exec::Group::get_high_sln_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_low_act ( )

Here is the call graph for this function:

float r_exec::Group::get_low_act_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_low_res_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_low_sln ( )

Here is the call graph for this function:

float r_exec::Group::get_low_sln_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

uint64_t r_exec::Group::get_next_upr_time ( uint64_t  now) const

Here is the call graph for this function:

Here is the caller graph for this function:

Group * r_exec::Group::get_ntf_grp ( uint16_t  i)

Here is the call graph for this function:

Here is the caller graph for this function:

uint16_t r_exec::Group::get_ntf_grp_count ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_ntf_new ( )

Here is the call graph for this function:

Here is the caller graph for this function:

uint64_t r_exec::Group::get_prev_upr_time ( uint64_t  now) const

Here is the call graph for this function:

Here is the caller graph for this function:

Group * r_exec::Group::get_secondary_group ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_sln_chg_prd ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_sln_chg_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_sln_ntf_prd ( )

Here is the call graph for this function:

Here is the caller graph for this function:

float r_exec::Group::get_sln_thr ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t r_exec::Group::get_upr ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

View * r_exec::Group::get_view ( uint64_t  OID)

Here is the caller graph for this function:

float r_exec::Group::get_vis_thr ( ) const

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject ( View view)
private

the view can hold anything but groups and notifications.

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_existing_object ( View view)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_group ( View view)

the view holds a group.

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_hlps ( std::vector< View * > &  views)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_new_object ( View view)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_notification ( View view,
bool  lock 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_reduction_jobs ( View view)

group is assumed to be c-salient, already protected

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::inject_secondary_mdl_controller ( View view)

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::Group::invalidate ( )
virtual

Reimplemented from r_exec::Object< r_code::LObject, LObject >.

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::Group::is_active_pgm ( View view)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::Group::is_eligible_input ( View view)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::Group::load ( View view,
Code object 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::load_secondary_mdl_controller ( View view)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::mod ( uint16_t  member_index,
float  value 
)

Here is the call graph for this function:

void r_exec::Group::mod_act_thr ( double  value)

Here is the caller graph for this function:

void r_exec::Group::mod_c_act ( double  value)

Here is the caller graph for this function:

void r_exec::Group::mod_c_act_thr ( double  value)

Here is the caller graph for this function:

void r_exec::Group::mod_c_sln ( double  value)

Here is the caller graph for this function:

void r_exec::Group::mod_c_sln_thr ( double  value)

Here is the caller graph for this function:

void r_exec::Group::mod_sln_thr ( double  value)

Here is the caller graph for this function:

void r_exec::Group::mod_vis_thr ( double  value)

Here is the caller graph for this function:

bool r_exec::Group::non_ntf_views_cond ( uint8_t &  selector,
std::unordered_map< uint64_t, P< View > >::const_iterator &  it,
std::unordered_map< uint64_t, P< View > >::const_iterator &  end 
)
inline
void r_exec::Group::notifyNew ( View view)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::reset_ctrl_values ( )
private

Here is the caller graph for this function:

void r_exec::Group::reset_decay_values ( )
private

Here is the caller graph for this function:

void r_exec::Group::reset_stats ( )

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set ( uint16_t  member_index,
float  value 
)

Here is the call graph for this function:

void r_exec::Group::set_act_thr ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set_c_act ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set_c_act_thr ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set_c_sln ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set_c_sln_thr ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set_sln_thr ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::set_vis_thr ( double  value)

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::update ( uint64_t  planned_time)

Here is the call graph for this function:

double r_exec::Group::update_act ( View v)

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_act_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_c_act ( )

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_c_act_thr ( )

Here is the call graph for this function:

double r_exec::Group::update_c_sln ( )

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_c_sln_thr ( )

Here is the call graph for this function:

double r_exec::Group::update_res ( View v)

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_sln ( View v)

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_sln_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::Group::update_stats ( )

Here is the call graph for this function:

Here is the caller graph for this function:

double r_exec::Group::update_vis_thr ( )

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::Group::views_with_inputs_cond ( uint8_t &  selector,
std::unordered_map< uint64_t, P< View > >::const_iterator &  it,
std::unordered_map< uint64_t, P< View > >::const_iterator &  end 
)
inline

Member Data Documentation

double r_exec::Group::acc_act_thr
private
double r_exec::Group::acc_c_act
private
double r_exec::Group::acc_c_act_thr
private
double r_exec::Group::acc_c_sln
private
double r_exec::Group::acc_c_sln_thr
private
double r_exec::Group::acc_sln_thr
private
double r_exec::Group::acc_vis_thr
private
int64_t r_exec::Group::act_change_monitoring_periods_to_go = 0
private
uint64_t r_exec::Group::act_thr_changes
private
uint64_t r_exec::Group::act_updates
private
std::unordered_map<uint64_t, P<View> > r_exec::Group::anti_ipgm_views
double r_exec::Group::avg_act
private
double r_exec::Group::avg_sln
private
uint64_t r_exec::Group::c_act_changes
private
uint64_t r_exec::Group::c_act_thr_changes
private
uint64_t r_exec::Group::c_sln_changes
private
uint64_t r_exec::Group::c_sln_thr_changes
private
double r_exec::Group::decay_percentage_per_period
private
int64_t r_exec::Group::decay_periods_to_go
private
double r_exec::Group::decay_target
private
std::unordered_map<uint64_t, P<View> > r_exec::Group::group_views
double r_exec::Group::high_act
private
double r_exec::Group::high_sln
private
std::unordered_map<uint64_t, P<View> > r_exec::Group::input_less_ipgm_views
std::unordered_map<uint64_t, P<View> > r_exec::Group::ipgm_views
double r_exec::Group::low_act
private
double r_exec::Group::low_sln
private
std::mutex r_exec::Group::mutex
std::vector<Controller *> r_exec::Group::new_controllers
std::multiset<P<View>, r_code::View::Less> r_exec::Group::newly_salient_views
std::unordered_map<uint64_t, P<View> > r_exec::Group::notification_views
std::unordered_map<uint64_t, P<View> > r_exec::Group::other_views
std::vector<Operation *> r_exec::Group::pending_operations
int64_t r_exec::Group::sln_change_monitoring_periods_to_go = 0
private
double r_exec::Group::sln_decay
private
uint64_t r_exec::Group::sln_thr_changes
private
double r_exec::Group::sln_thr_decay
private
uint64_t r_exec::Group::sln_updates
private
std::unordered_map<Group *, bool> r_exec::Group::viewing_groups
uint64_t r_exec::Group::vis_thr_changes
private

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