replicode
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
r_exec::IPGMContext Class Reference

#include <context.h>

Inheritance diagram for r_exec::IPGMContext:
Inheritance graph
Collaboration diagram for r_exec::IPGMContext:
Collaboration graph

Public Types

enum  ObjectType { TYPE_OBJECT = 0, TYPE_VIEW = 1, TYPE_GROUP = 2, TYPE_UNDEFINED = 3 }
 

Public Member Functions

 IPGMContext ()
 
 IPGMContext (Code *object, View *view, Atom *code, uint16_t index, InputLessPGMOverlay *const overlay, Data data=STEM)
 
 IPGMContext (Code *object, uint16_t index)
 
 IPGMContext (Code *object, Data data)
 
_Contextassign (const _Context *c)
 
bool equal (const _Context *c) const
 
Atomget_atom (uint16_t i) const
 
uint16_t get_object_code_size () const
 
uint16_t getChildrenCount () const
 
_Context_getChild (uint16_t index) const
 
_Contextdereference () const
 
bool evaluate (uint16_t &result_index) const
 
bool evaluate_no_dereference (uint16_t &result_index) const
 
IPGMContextoperator= (const IPGMContext &c)
 
bool operator== (const IPGMContext &c) const
 
bool operator!= (const IPGMContext &c) const
 
IPGMContext getChild (uint16_t index) const
 
Atomoperator[] (uint16_t i) const
 
CodegetObject () const
 
uint16_t getIndex () const
 
IPGMContext operator* () const
 
void dereference_once ()
 
bool is_reference () const
 
bool is_undefined () const
 
void patch_input_code (uint16_t pgm_code_index, uint16_t input_index) const
 
uint16_t addProduction (Code *object, bool check_for_existence) const
 
template<class C >
void copy (C *destination, uint16_t write_index) const
 
template<class C >
void copy (C *destination, uint16_t write_index, uint16_t &extent_index) const
 
void copy_to_value_array (uint16_t &position)
 
void getMember (void *&object, uint64_t &view_oid, ObjectType &object_type, int16_t &member_index) const
 
bool match (const IPGMContext &input) const
 
r_code::Codebuild_object (Atom head) const
 
- Public Member Functions inherited from r_exec::_Context
virtual ~_Context ()
 
void commit () const
 
void rollback () const
 
void patch_code (uint16_t location, Atom value) const
 
void unpatch_code (uint16_t patch_index) const
 
uint16_t get_last_patch_index () const
 
uint16_t setAtomicResult (Atom a) const
 
uint16_t setTimestampResult (uint64_t t) const
 
uint16_t setCompoundResultHead (Atom a) const
 
uint16_t addCompoundResultPart (Atom a) const
 
void trace () const
 

Static Public Member Functions

static IPGMContext GetContextFromInput (View *input, InputLessPGMOverlay *overlay)
 
static bool Ins (const IPGMContext &context, uint16_t &index)
 
static bool Fvw (const IPGMContext &context, uint16_t &index)
 
static bool Red (const IPGMContext &context, uint16_t &index)
 

Private Member Functions

bool is_cmd_with_cptr () const
 
void addReference (Code *destination, uint16_t write_index, Code *referenced_object) const
 
void addReference (View *destination, uint16_t write_index, Code *referenced_object) const
 
template<class C >
void copy_structure (C *destination, uint16_t write_index, uint16_t &extent_index, bool dereference_cptr, int64_t pgm_index) const
 
template<class C >
void copy_member (C *destination, uint16_t write_index, uint16_t &extent_index, bool dereference_cptr, int64_t pgm_index) const
 
void copy_structure_to_value_array (bool prefix, uint16_t write_index, uint16_t &extent_index, bool dereference_cptr)
 
void copy_member_to_value_array (uint16_t child_index, bool prefix, uint16_t write_index, uint16_t &extent_index, bool dereference_cptr)
 

Private Attributes

Codeobject
 
Viewview
 

Additional Inherited Members

- Protected Types inherited from r_exec::_Context
enum  Data {
  STEM = 0, REFERENCE = 1, VIEW = 2, MKS = 3,
  VWS = 4, VALUE_ARRAY = 5, BINDING_MAP = 6, UNDEFINED = 7
}
 
- Protected Member Functions inherited from r_exec::_Context
 _Context (Atom *code, uint16_t index, Overlay *overlay, Data data)
 
- Protected Attributes inherited from r_exec::_Context
Overlay *const overlay
 
Atomcode
 
uint16_t index
 
Data data
 

Member Enumeration Documentation

Enumerator
TYPE_OBJECT 
TYPE_VIEW 
TYPE_GROUP 
TYPE_UNDEFINED 

Constructor & Destructor Documentation

r_exec::IPGMContext::IPGMContext ( )
inline
r_exec::IPGMContext::IPGMContext ( Code object,
View view,
Atom code,
uint16_t  index,
InputLessPGMOverlay *const  overlay,
Data  data = STEM 
)
inline
r_exec::IPGMContext::IPGMContext ( Code object,
uint16_t  index 
)
inline
r_exec::IPGMContext::IPGMContext ( Code object,
Data  data 
)
inline

Member Function Documentation

_Context* r_exec::IPGMContext::_getChild ( uint16_t  index) const
inlinevirtual

Implements r_exec::_Context.

uint16_t r_exec::IPGMContext::addProduction ( Code object,
bool  check_for_existence 
) const

Here is the caller graph for this function:

void r_exec::IPGMContext::addReference ( Code destination,
uint16_t  write_index,
Code referenced_object 
) const
inlineprivate

Here is the call graph for this function:

void r_exec::IPGMContext::addReference ( View destination,
uint16_t  write_index,
Code referenced_object 
) const
inlineprivate

Here is the call graph for this function:

_Context* r_exec::IPGMContext::assign ( const _Context c)
inlinevirtual

Implements r_exec::_Context.

r_code::Code* r_exec::IPGMContext::build_object ( Atom  head) const
inline

Here is the caller graph for this function:

template<class C >
void r_exec::IPGMContext::copy ( C destination,
uint16_t  write_index 
) const
inline

Here is the caller graph for this function:

template<class C >
void r_exec::IPGMContext::copy ( C destination,
uint16_t  write_index,
uint16_t &  extent_index 
) const
inline
template<class C >
void r_exec::IPGMContext::copy_member ( C destination,
uint16_t  write_index,
uint16_t &  extent_index,
bool  dereference_cptr,
int64_t  pgm_index 
) const
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::IPGMContext::copy_member_to_value_array ( uint16_t  child_index,
bool  prefix,
uint16_t  write_index,
uint16_t &  extent_index,
bool  dereference_cptr 
)
private

Here is the call graph for this function:

template<class C >
void r_exec::IPGMContext::copy_structure ( C destination,
uint16_t  write_index,
uint16_t &  extent_index,
bool  dereference_cptr,
int64_t  pgm_index 
) const
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

void r_exec::IPGMContext::copy_structure_to_value_array ( bool  prefix,
uint16_t  write_index,
uint16_t &  extent_index,
bool  dereference_cptr 
)
private
void r_exec::IPGMContext::copy_to_value_array ( uint16_t &  position)

Here is the caller graph for this function:

_Context* r_exec::IPGMContext::dereference ( ) const
inlinevirtual

Implements r_exec::_Context.

void r_exec::IPGMContext::dereference_once ( )

Here is the caller graph for this function:

bool r_exec::IPGMContext::equal ( const _Context c) const
inlinevirtual

Implements r_exec::_Context.

bool r_exec::IPGMContext::evaluate ( uint16_t &  result_index) const
inline

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::IPGMContext::evaluate_no_dereference ( uint16_t &  result_index) const

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::IPGMContext::Fvw ( const IPGMContext context,
uint16_t &  index 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

Atom& r_exec::IPGMContext::get_atom ( uint16_t  i) const
inlinevirtual

Implements r_exec::_Context.

uint16_t r_exec::IPGMContext::get_object_code_size ( ) const
inlinevirtual

Implements r_exec::_Context.

IPGMContext r_exec::IPGMContext::getChild ( uint16_t  index) const
inline

Here is the caller graph for this function:

uint16_t r_exec::IPGMContext::getChildrenCount ( ) const
inlinevirtual

Implements r_exec::_Context.

Here is the caller graph for this function:

static IPGMContext r_exec::IPGMContext::GetContextFromInput ( View input,
InputLessPGMOverlay overlay 
)
inlinestatic

Here is the call graph for this function:

Here is the caller graph for this function:

uint16_t r_exec::IPGMContext::getIndex ( ) const
inline

Here is the caller graph for this function:

void r_exec::IPGMContext::getMember ( void *&  object,
uint64_t view_oid,
ObjectType object_type,
int16_t &  member_index 
) const

Here is the call graph for this function:

Here is the caller graph for this function:

Code* r_exec::IPGMContext::getObject ( ) const
inline

Here is the caller graph for this function:

bool r_exec::IPGMContext::Ins ( const IPGMContext context,
uint16_t &  index 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::IPGMContext::is_cmd_with_cptr ( ) const
private
bool r_exec::IPGMContext::is_reference ( ) const
inline

Here is the caller graph for this function:

bool r_exec::IPGMContext::is_undefined ( ) const
inline

Here is the caller graph for this function:

bool r_exec::IPGMContext::match ( const IPGMContext input) const

Here is the call graph for this function:

Here is the caller graph for this function:

bool r_exec::IPGMContext::operator!= ( const IPGMContext c) const
inline
IPGMContext r_exec::IPGMContext::operator* ( ) const

Here is the call graph for this function:

IPGMContext& r_exec::IPGMContext::operator= ( const IPGMContext c)
inline
bool r_exec::IPGMContext::operator== ( const IPGMContext c) const

Here is the call graph for this function:

Atom& r_exec::IPGMContext::operator[] ( uint16_t  i) const
inline
void r_exec::IPGMContext::patch_input_code ( uint16_t  pgm_code_index,
uint16_t  input_index 
) const
inline
bool r_exec::IPGMContext::Red ( const IPGMContext context,
uint16_t &  index 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

Code* r_exec::IPGMContext::object
private
View* r_exec::IPGMContext::view
private

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