replicode
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
r_exec::MemVolatile Class Reference

#include <mem.h>

Inheritance diagram for r_exec::MemVolatile:
Inheritance graph
Collaboration diagram for r_exec::MemVolatile:
Collaboration graph

Public Member Functions

virtual ~MemVolatile ()
 
void delete_object (r_code::Code *object)
 
r_comp::Imageget_objects ()
 
- Public Member Functions inherited from r_exec::_Mem
virtual ~_Mem ()
 
void init (uint64_t base_period, uint64_t reduction_core_count, uint64_t time_core_count, double mdl_inertia_sr_thr, uint64_t mdl_inertia_cnt_thr, double tpx_dsr_thr, uint64_t min_sim_time_horizon, uint64_t max_sim_time_horizon, double sim_time_horizon, uint64_t tpx_time_horizon, uint64_t perf_sampling_period, double float_tolerance, uint64_t time_tolerance, uint64_t primary_thz, uint64_t secondary_thz, bool debug, uint64_t ntf_mk_res, uint64_t goal_pred_success_res, uint64_t probe_level, uint64_t traces)
 
uint64_t get_probe_level () const
 
double get_mdl_inertia_sr_thr () const
 
uint64_t get_mdl_inertia_cnt_thr () const
 
double get_tpx_dsr_thr () const
 
uint64_t get_min_sim_time_horizon () const
 
uint64_t get_max_sim_time_horizon () const
 
uint64_t get_sim_time_horizon (uint64_t horizon) const
 
uint64_t get_tpx_time_horizon () const
 
uint64_t get_primary_thz () const
 
uint64_t get_secondary_thz () const
 
bool get_debug () const
 
uint64_t get_ntf_mk_res () const
 
uint64_t get_goal_pred_success_res (Group *host, uint64_t now, uint64_t time_to_live) const
 
Codeget_root () const
 
Codeget_stdin () const
 
Codeget_stdout () const
 
Codeget_self () const
 
State check_state ()
 
void start_core ()
 
void shutdown_core ()
 
bool load (std::vector< r_code::Code * > *objects, uint64_t stdin_oid, uint64_t stdout_oid, uint64_t self_oid)
 
uint64_t start ()
 
void stop ()
 
_ReductionJobpopReductionJob ()
 
void pushReductionJob (_ReductionJob *j)
 
TimeJobpopTimeJob ()
 
void pushTimeJob (TimeJob *j)
 
void inject (View *view)
 
void inject_async (View *view)
 
void inject_new_object (View *view)
 
void inject_existing_object (View *view, Code *object, Group *host)
 
void inject_null_program (Controller *c, Group *group, uint64_t time_to_live, bool take_past_inputs)
 
void inject_hlps (std::vector< View * > views, Group *destination)
 
void inject_notification (View *view, bool lock)
 
virtual Codecheck_existence (Code *object)=0
 
void propagate_sln (Code *object, double change, double source_sln_thr)
 
void inject_copy (View *view, Group *destination)
 
void register_reduction_job_latency (uint64_t latency)
 
void register_time_job_latency (uint64_t latency)
 
void inject_perf_stats ()
 
virtual void eject (View *view, uint16_t nodeID)
 
virtual void eject (Code *command)
 
virtual r_code::Code_build_object (Atom head) const =0
 
virtual r_code::Codebuild_object (Atom head) const =0
 
void unpack_hlp (Code *hlp) const
 
Codeunpack_fact (Code *hlp, uint16_t fact_index) const
 
Codeunpack_fact_object (Code *hlp, uint16_t fact_object_index) const
 
void pack_hlp (Code *hlp) const
 
void pack_fact (Code *fact, Code *hlp, uint16_t &write_index, std::vector< P< Code > > *references) const
 
void pack_fact_object (Code *fact_object, Code *hlp, uint16_t &write_index, std::vector< P< Code > > *references) const
 
Codeclone (Code *original) const
 
r_comp::Imageget_models ()
 
- Public Member Functions inherited from r_code::Mem
virtual Codebuild_object (SysObject *source) const =0
 

Protected Member Functions

 MemVolatile ()
 
- Protected Member Functions inherited from r_exec::_Mem
void init_timings (uint64_t now) const
 
void store (Code *object)
 
 _Mem ()
 
void _unpack_code (Code *hlp, uint16_t fact_object_index, Code *fact_object, uint16_t read_index) const
 
- Protected Member Functions inherited from r_code::Mem
 Mem ()
 

Private Member Functions

uint64_t get_oid ()
 
void bind (View *view)
 
void set_last_oid (int64_t oid)
 

Private Attributes

std::atomic_int_fast64_t last_oid
 

Additional Inherited Members

- Public Types inherited from r_exec::_Mem
enum  State { NOT_STARTED = 0, RUNNING = 1, STOPPED = 2 }
 
enum  STDGroupID { STDIN = 0, STDOUT = 1 }
 
enum  TraceLevel {
  CST_IN = 0, CST_OUT = 1, MDL_IN = 2, MDL_OUT = 3,
  PRED_MON = 4, GOAL_MON = 5, MDL_REV = 6, HLP_INJ = 7
}
 
- Static Public Member Functions inherited from r_exec::_Mem
static _MemGet ()
 
static std::ostream & Output (TraceLevel l)
 
- Static Public Member Functions inherited from r_code::Mem
static MemGet ()
 
- Protected Attributes inherited from r_exec::_Mem
uint64_t base_period
 
uint64_t reduction_core_count
 
uint64_t time_core_count
 
double mdl_inertia_sr_thr
 
uint64_t mdl_inertia_cnt_thr
 
double tpx_dsr_thr
 
uint64_t min_sim_time_horizon
 
uint64_t max_sim_time_horizon
 
double sim_time_horizon
 
uint64_t tpx_time_horizon
 
uint64_t perf_sampling_period
 
double float_tolerance
 
uint64_t time_tolerance
 
uint64_t primary_thz
 
uint64_t secondary_thz
 
bool debug
 
uint64_t ntf_mk_res
 
uint64_t goal_pred_success_res
 
uint64_t probe_level
 
JobQueue< _ReductionJobm_reductionJobQueue
 
JobQueue< TimeJobm_timeJobQueue
 
std::mutex m_timeJobMutex
 
std::mutex m_reductionJobMutex
 
std::vector< std::thread > m_coreThreads
 
uint64_t reduction_job_count
 
uint64_t reduction_job_avg_latency
 
uint64_t _reduction_job_avg_latency
 
uint64_t time_job_count
 
uint64_t time_job_avg_latency
 
uint64_t _time_job_avg_latency
 
std::atomic< uint64_tm_coreCount
 
std::condition_variable m_coresRunning
 
std::mutex m_coreCountMutex
 
State state
 
std::mutex m_stateMutex
 
r_code::list< P< Code > > objects
 
P< Group_root
 
Code_stdin
 
Code_stdout
 
Code_self
 
std::vector< Group * > initial_groups
 
bool deleted
 
ostream * debug_streams [8]
 
- Static Protected Attributes inherited from r_exec::_Mem
static const uint64_t DebugStreamCount = 8
 
- Static Protected Attributes inherited from r_code::Mem
static MemSingleton = NULL
 

Constructor & Destructor Documentation

r_exec::MemVolatile::MemVolatile ( )
protected
r_exec::MemVolatile::~MemVolatile ( )
virtual

Member Function Documentation

void r_exec::MemVolatile::bind ( View view)
privatevirtual

Implements r_exec::_Mem.

Here is the call graph for this function:

void r_exec::MemVolatile::delete_object ( r_code::Code object)
inlinevirtual

Implements r_code::Mem.

r_comp::Image* r_exec::MemVolatile::get_objects ( )
inlinevirtual

Implements r_exec::_Mem.

uint64_t r_exec::MemVolatile::get_oid ( )
private

Here is the caller graph for this function:

void r_exec::MemVolatile::set_last_oid ( int64_t  oid)
privatevirtual

Implements r_exec::_Mem.

Member Data Documentation

std::atomic_int_fast64_t r_exec::MemVolatile::last_oid
private

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