Dyninst::Node Class Reference

#include <Node.h>

Inheritance diagram for Dyninst::Node:
Dyninst::PhysicalNode Dyninst::VirtualNode

Public Types

typedef boost::shared_ptr< NodePtr

Public Member Functions

void ins (EdgeIterator &begin, EdgeIterator &end)
void outs (EdgeIterator &begin, EdgeIterator &end)
void ins (NodeIterator &begin, NodeIterator &end)
void outs (NodeIterator &begin, NodeIterator &end)
bool hasInEdges ()
bool hasOutEdges ()
void deleteInEdge (EdgeIterator e)
void deleteOutEdge (EdgeIterator e)
void forwardClosure (NodeIterator &begin, NodeIterator &end)
void backwardClosure (NodeIterator &begin, NodeIterator &end)
GraphPtr forwardSubgraph ()
GraphPtr backwardSubgraph ()
virtual Address addr () const
virtual std::string format () const =0
virtual Node::Ptr copy ()=0
virtual bool isVirtual () const =0
virtual ~Node ()
virtual std::string DOTshape () const
virtual std::string DOTrank () const
virtual std::string DOTname () const
virtual bool DOTinclude () const

Protected Member Functions

 Node ()
void addInEdge (const EdgePtr in)
void addOutEdge (const EdgePtr out)

Protected Attributes

EdgeSet ins_
EdgeSet outs_

Static Protected Attributes

static const Address INVALID_ADDR = (Address) -1

Private Types

typedef boost::shared_ptr< EdgeEdgePtr
typedef boost::shared_ptr< GraphGraphPtr
typedef std::set< EdgePtrEdgeSet

Friends

class Edge
class Graph

Detailed Description

Definition at line 55 of file Node.h.


Member Typedef Documentation

typedef boost::shared_ptr<Edge> Dyninst::Node::EdgePtr [private]

Definition at line 59 of file Node.h.

typedef std::set<EdgePtr> Dyninst::Node::EdgeSet [private]

Definition at line 61 of file Node.h.

typedef boost::shared_ptr<Graph> Dyninst::Node::GraphPtr [private]

Definition at line 60 of file Node.h.

typedef boost::shared_ptr<Node> Dyninst::Node::Ptr

Reimplemented in Dyninst::PhysicalNode, and Dyninst::VirtualNode.

Definition at line 64 of file Node.h.


Constructor & Destructor Documentation

virtual Dyninst::Node::~Node (  )  [inline, virtual]

Definition at line 92 of file Node.h.

Dyninst::Node::Node (  )  [inline, protected]

Definition at line 101 of file Node.h.


Member Function Documentation

void Node::addInEdge ( const EdgePtr  in  )  [protected]

Definition at line 47 of file Node.C.

References ins_.

void Node::addOutEdge ( const EdgePtr  out  )  [protected]

Definition at line 51 of file Node.C.

References outs_.

virtual Address Dyninst::Node::addr (  )  const [inline, virtual]

Reimplemented in Dyninst::PhysicalNode.

Definition at line 84 of file Node.h.

void Node::backwardClosure ( NodeIterator begin,
NodeIterator end 
)
Graph::Ptr Node::backwardSubgraph (  ) 

Definition at line 272 of file Node.C.

References Dyninst::NodeIterator::copy(), copy(), Dyninst::Graph::createGraph(), and ins_.

virtual Node::Ptr Dyninst::Node::copy (  )  [pure virtual]
void Node::deleteInEdge ( EdgeIterator  e  ) 

Definition at line 320 of file Node.C.

References ins_.

void Node::deleteOutEdge ( EdgeIterator  e  ) 

Definition at line 324 of file Node.C.

References outs_.

virtual bool Dyninst::Node::DOTinclude (  )  const [inline, virtual]

Definition at line 98 of file Node.h.

std::string Node::DOTname (  )  const [virtual]

Definition at line 121 of file DOT.C.

References format().

std::string Node::DOTrank (  )  const [virtual]

Definition at line 130 of file DOT.C.

References format().

std::string Node::DOTshape (  )  const [virtual]

Reimplemented in Dyninst::VirtualNode.

Definition at line 125 of file DOT.C.

References format().

virtual std::string Dyninst::Node::format (  )  const [pure virtual]

Implemented in Dyninst::PhysicalNode, and Dyninst::VirtualNode.

Referenced by DOTname(), DOTrank(), and DOTshape().

void Node::forwardClosure ( NodeIterator begin,
NodeIterator end 
)
Graph::Ptr Node::forwardSubgraph (  ) 

Definition at line 223 of file Node.C.

References Dyninst::NodeIterator::copy(), copy(), Dyninst::Graph::createGraph(), and outs_.

bool Node::hasInEdges (  ) 

Definition at line 79 of file Node.C.

References ins_.

Referenced by backwardClosure().

bool Node::hasOutEdges (  ) 

Definition at line 83 of file Node.C.

References outs_.

Referenced by forwardClosure().

void Node::ins ( NodeIterator begin,
NodeIterator end 
)

Definition at line 55 of file Node.C.

References ins_, and Dyninst::NodeFromEdgeSet::source.

void Node::ins ( EdgeIterator begin,
EdgeIterator end 
)

Definition at line 67 of file Node.C.

References ins_.

Referenced by backwardClosure().

virtual bool Dyninst::Node::isVirtual (  )  const [pure virtual]
void Node::outs ( NodeIterator begin,
NodeIterator end 
)

Definition at line 62 of file Node.C.

References outs_, and Dyninst::NodeFromEdgeSet::target.

void Node::outs ( EdgeIterator begin,
EdgeIterator end 
)

Definition at line 73 of file Node.C.

References outs_.

Referenced by forwardClosure().


Friends And Related Function Documentation

friend class Edge [friend]

Reimplemented in Dyninst::VirtualNode.

Definition at line 56 of file Node.h.

friend class Graph [friend]

Reimplemented in Dyninst::VirtualNode.

Definition at line 57 of file Node.h.


Field Documentation

Definition at line 101 of file Node.h.

Referenced by addInEdge(), backwardSubgraph(), deleteInEdge(), hasInEdges(), and ins().

const Address Node::INVALID_ADDR = (Address) -1 [static, protected]

Definition at line 109 of file Node.h.

Definition at line 104 of file Node.h.

Referenced by addOutEdge(), deleteOutEdge(), forwardSubgraph(), hasOutEdges(), and outs().


The documentation for this class was generated from the following files:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1