Predator  [unstable] git snapshot
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends
Node Class Reference

an abstract node of the symbolic execution trace graph More...

#include <symtrace.hh>

Inheritance diagram for Node:
Inheritance graph
[legend]
Collaboration diagram for Node:
Collaboration graph
[legend]

Public Types

typedef std::vector< NodeBase * > TBaseList
 used to store a list of child nodes

Public Member Functions

const TBaseListchildren () const
 reference to list of child nodes (containing 0..n pointers)
virtual NodeprintNode () const
 print the node in a human-readable format if considered interesting
TIdMapperListidMapperList ()
 return the ID mapping describing the operation behind the trace node
const TIdMapperListidMapperList () const
 return the ID mapping describing the operation behind the trace node
TIdMapperidMapper ()
 return the ID mapping describing the operation behind the trace node
const TIdMapperidMapper () const
 return the ID mapping describing the operation behind the trace node
virtual Nodeparent () const
 this can be called only on nodes with exactly one parent
const TNodeListparents () const
 reference to list of parents (containing 0..n pointers)

Protected Member Functions

 Node ()
 this is an abstract class, its instantiation is not allowed
 Node (Node *ref)
 constructor for nodes with exactly one parent
 Node (Node *ref1, Node *ref2)
 constructor for nodes with exactly two parents
virtual ~Node ()
virtual void plotNode (TracePlotter &) const =0
 serialize this node to the given plot (externally not much useful)

Protected Attributes

TIdMapperList idMapperList_
TNodeList parents_
 list of all (0..n) parent nodes

Private Member Functions

void notifyBirth (NodeBase *child)
 birth notification from a child node
void notifyDeath (NodeBase *child)
 death notification from a child node
 Node (const Node &)
Nodeoperator= (const Node &)

Private Attributes

TBaseList children_
bool alive_

Friends

class NodeBase
class NodeHandle
void plotTraceCore (TracePlotter &)

Detailed Description

an abstract node of the symbolic execution trace graph

Definition at line 97 of file symtrace.hh.

Member Typedef Documentation

typedef std::vector<NodeBase *> TBaseList

used to store a list of child nodes

Definition at line 144 of file symtrace.hh.

Constructor & Destructor Documentation

Node ( )
inlineprotected

this is an abstract class, its instantiation is not allowed

Definition at line 110 of file symtrace.hh.

Node ( Node ref)
inlineprotected

constructor for nodes with exactly one parent

Definition at line 116 of file symtrace.hh.

References Node::idMapperList_, and Node::notifyBirth().

Node ( Node ref1,
Node ref2 
)
inlineprotected

constructor for nodes with exactly two parents

Definition at line 125 of file symtrace.hh.

References Node::idMapperList_, Node::notifyBirth(), and NodeBase::parents_.

virtual ~Node ( )
protectedvirtual
Node ( const Node )
private

Member Function Documentation

const TBaseList& children ( ) const
inline

reference to list of child nodes (containing 0..n pointers)

Definition at line 147 of file symtrace.hh.

References Node::children_.

TIdMapper& idMapper ( )

return the ID mapping describing the operation behind the trace node

Referenced by CondNode::CondNode(), InsnNode::InsnNode(), MsgNode::MsgNode(), SpliceOutNode::SpliceOutNode(), and UserNode::UserNode().

const TIdMapper& idMapper ( ) const

return the ID mapping describing the operation behind the trace node

TIdMapperList& idMapperList ( )

return the ID mapping describing the operation behind the trace node

const TIdMapperList& idMapperList ( ) const

return the ID mapping describing the operation behind the trace node

void notifyBirth ( NodeBase child)
private

birth notification from a child node

Referenced by Node::Node(), and NodeHandle::NodeHandle().

void notifyDeath ( NodeBase child)
private

death notification from a child node

Node& operator= ( const Node )
private
virtual Node* parent ( ) const
virtualinherited

this can be called only on nodes with exactly one parent

Reimplemented in JoinNode.

Referenced by NodeHandle::node(), NodeHandle::NodeHandle(), and Node::printNode().

const TNodeList& parents ( ) const
inlineinherited

reference to list of parents (containing 0..n pointers)

Definition at line 89 of file symtrace.hh.

References NodeBase::parents_.

virtual void plotNode ( TracePlotter &  ) const
protectedpure virtual
virtual Node* printNode ( ) const
inlinevirtual

print the node in a human-readable format if considered interesting

Reimplemented in UserNode, CallDoneNode, CallFrameNode, CallCacheHitNode, CallEntryNode, CloneNode, JoinNode, CondNode, InsnNode, RootNode, and TransientNode.

Definition at line 150 of file symtrace.hh.

References NodeBase::parent().

Friends And Related Function Documentation

friend class NodeBase
friend

Definition at line 105 of file symtrace.hh.

friend class NodeHandle
friend

Definition at line 106 of file symtrace.hh.

void plotTraceCore ( TracePlotter &  )
friend

Field Documentation

bool alive_
private

Definition at line 177 of file symtrace.hh.

TBaseList children_
private

Definition at line 176 of file symtrace.hh.

Referenced by Node::children().

TIdMapperList idMapperList_
protected

Definition at line 173 of file symtrace.hh.

Referenced by JoinNode::JoinNode(), and Node::Node().

TNodeList parents_
protectedinherited

list of all (0..n) parent nodes

Definition at line 70 of file symtrace.hh.

Referenced by Node::Node(), and NodeBase::parents().


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