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

#include <pgm_overlay.h>

Inheritance diagram for r_exec::PGMOverlay:
Inheritance graph
Collaboration diagram for r_exec::PGMOverlay:
Collaboration graph

Public Member Functions

virtual ~PGMOverlay ()
 
void reset ()
 
virtual Overlayreduce (r_exec::View *input)
 
r_code::CodegetInputObject (uint16_t i) const
 
r_code::ViewgetInputView (uint16_t i) const
 
uint64_t get_birth_time () const
 
bool is_invalidated ()
 
- Public Member Functions inherited from r_exec::InputLessPGMOverlay
virtual ~InputLessPGMOverlay ()
 
bool inject_productions ()
 
- Public Member Functions inherited from r_exec::Overlay
virtual ~Overlay ()
 
void invalidate ()
 
r_code::CodegetObject () const
 
r_exec::ViewgetView () const
 
r_code::Codebuild_object (Atom head) const
 
- Public Member Functions inherited from core::_Object
virtual ~_Object ()
 
void incRef ()
 
virtual void decRef ()
 

Protected Types

enum  MatchResult { SUCCESS = 0, FAILURE = 1, IMPOSSIBLE = 3 }
 

Protected Member Functions

MatchResult match (r_exec::View *input, uint16_t &input_index)
 
bool check_guards ()
 
MatchResult _match (r_exec::View *input, uint16_t pattern_index)
 
MatchResult __match (r_exec::View *input, uint16_t pattern_index)
 
Codedereference_in_ptr (Atom a)
 
void patch_input_code (uint16_t pgm_code_index, uint16_t input_index, uint16_t input_code_index, int16_t parent_index=-1)
 
virtual Codeget_mk_rdx (uint16_t &extent_index) const
 
void init ()
 
 PGMOverlay (Controller *c)
 
 PGMOverlay (PGMOverlay *original, uint16_t last_input_index, uint16_t value_commit_index)
 
- Protected Member Functions inherited from r_exec::InputLessPGMOverlay
bool evaluate (uint16_t index)
 
void patch_tpl_args ()
 
void patch_tpl_code (uint16_t pgm_code_index, uint16_t ipgm_code_index)
 
 InputLessPGMOverlay ()
 
 InputLessPGMOverlay (Controller *c)
 
- Protected Member Functions inherited from r_exec::Overlay
void load_code ()
 
void patch_code (uint16_t index, Atom value)
 
uint16_t get_last_patch_index ()
 
void unpatch_code (uint16_t patch_index)
 
void rollback ()
 
void commit ()
 
Codeget_core_object () const
 
 Overlay ()
 
 Overlay (Controller *c, bool load_code=true)
 
- Protected Member Functions inherited from core::_Object
 _Object ()
 

Protected Attributes

r_code::list< uint16_t > input_pattern_indices
 
std::vector< P< r_code::View > > input_views
 
- Protected Attributes inherited from r_exec::InputLessPGMOverlay
std::vector< P< Code > > productions
 
- Protected Attributes inherited from r_exec::Overlay
volatile uint64_t invalidated
 
Controllercontroller
 
r_code::vector< Atomvalues
 
Atomcode
 
uint16_t code_size
 
std::vector< uint16_t > patch_indices
 
uint16_t value_commit_index
 
- Protected Attributes inherited from core::_Object
std::atomic_int_fast64_t refCount
 

Private Attributes

bool is_volatile
 
uint64_t birth_time
 

Friends

class PGMController
 
class IPGMContext
 

Member Enumeration Documentation

Enumerator
SUCCESS 
FAILURE 
IMPOSSIBLE 

Constructor & Destructor Documentation

r_exec::PGMOverlay::PGMOverlay ( Controller c)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

r_exec::PGMOverlay::PGMOverlay ( PGMOverlay original,
uint16_t  last_input_index,
uint16_t  value_commit_index 
)
protected

Here is the call graph for this function:

r_exec::PGMOverlay::~PGMOverlay ( )
inlinevirtual

Member Function Documentation

PGMOverlay::MatchResult r_exec::PGMOverlay::__match ( r_exec::View input,
uint16_t  pattern_index 
)
inlineprotected

Here is the call graph for this function:

Here is the caller graph for this function:

PGMOverlay::MatchResult r_exec::PGMOverlay::_match ( r_exec::View input,
uint16_t  pattern_index 
)
inlineprotected

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::PGMOverlay::check_guards ( )
protected

Here is the call graph for this function:

Here is the caller graph for this function:

Code * r_exec::PGMOverlay::dereference_in_ptr ( Atom  a)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

uint64_t r_exec::PGMOverlay::get_birth_time ( ) const
inline
Code * r_exec::PGMOverlay::get_mk_rdx ( uint16_t &  extent_index) const
protectedvirtual

Reimplemented from r_exec::InputLessPGMOverlay.

Here is the call graph for this function:

r_code::Code * r_exec::PGMOverlay::getInputObject ( uint16_t  i) const

Here is the caller graph for this function:

r_code::View * r_exec::PGMOverlay::getInputView ( uint16_t  i) const
void r_exec::PGMOverlay::init ( )
inlineprotected

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::PGMOverlay::is_invalidated ( )
virtual

Reimplemented from r_exec::Overlay.

PGMOverlay::MatchResult r_exec::PGMOverlay::match ( r_exec::View input,
uint16_t &  input_index 
)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::PGMOverlay::patch_input_code ( uint16_t  pgm_code_index,
uint16_t  input_index,
uint16_t  input_code_index,
int16_t  parent_index = -1 
)
protectedvirtual

Reimplemented from r_exec::InputLessPGMOverlay.

Here is the call graph for this function:

Here is the caller graph for this function:

Overlay * r_exec::PGMOverlay::reduce ( r_exec::View input)
virtual

Reimplemented from r_exec::Overlay.

Reimplemented in r_exec::AntiPGMOverlay.

Here is the call graph for this function:

void r_exec::PGMOverlay::reset ( )
inlinevirtual

Reimplemented from r_exec::InputLessPGMOverlay.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class IPGMContext
friend
friend class PGMController
friend

Member Data Documentation

uint64_t r_exec::PGMOverlay::birth_time
private
r_code::list<uint16_t> r_exec::PGMOverlay::input_pattern_indices
protected
std::vector<P<r_code::View> > r_exec::PGMOverlay::input_views
protected
bool r_exec::PGMOverlay::is_volatile
private

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