GTIRB  v2.1.0
GrammaTech Intermediate Representation for Binaries: C++ API
Public Member Functions | Static Public Member Functions | Friends | List of all members
gtirb::ProxyBlock Class Reference

A placeholder that serves as the endpoint (source or target) of a CFG edge. More...

#include <ProxyBlock.hpp>

Inheritance diagram for gtirb::ProxyBlock:
Inheritance graph
[legend]
Collaboration diagram for gtirb::ProxyBlock:
Collaboration graph
[legend]

Public Member Functions

ModulegetModule ()
 Get the Module this block belongs to. More...
 
const ModulegetModule () const
 Get the Module this block belongs to. More...
 
- Public Member Functions inherited from gtirb::Node
 Node (const Node &)=delete
 Copying Nodes is explicitly disabled. More...
 
 Node (Node &&)=delete
 Move-constructing Nodes is explicitly disabled. More...
 
 ~Node () noexcept
 Cleans up resources no longer needed by the Node object. More...
 
const UUIDgetUUID () const
 Get the Universally Unique ID (UUID) for this. More...
 
Nodeoperator= (const Node &)=delete
 Copying Nodes is explicilty disabled. More...
 
Nodeoperator= (Node &&)=delete
 Move-assigning Nodes is explicilty disabled. More...
 

Static Public Member Functions

static bool classof (const Node *N)
 
static ProxyBlockCreate (Context &C)
 Create an unitialized ProxyBlock object. More...
 
- Static Public Member Functions inherited from gtirb::Node
static NodeCreate (Context &C)
 Create a Node object in its default state. More...
 
static const NodegetByUUID (const Context &C, const UUID &Uuid)
 Retrieve a node by its UUID. More...
 
static NodegetByUUID (Context &C, const UUID &Uuid)
 Retrieve a node by its UUID. More...
 

Friends

class Context
 
class Module
 
class SerializationTestHarness
 
template<typename T >
T::MessageType toProtobuf (const T &)
 

Additional Inherited Members

- Protected Member Functions inherited from gtirb::CfgNode
 CfgNode (Context &C, Kind Knd)
 
 CfgNode (Context &C, Kind Knd, const UUID &U)
 

Detailed Description

A placeholder that serves as the endpoint (source or target) of a CFG edge.

ProxyBlock objects allow the construction of CFG edges to or from another node. For example, a call to a function in another module may be represented by an edge that originates at the calling CodeBlock and targets a ProxyBlock. Another example would be an edge that represents an indirect jump whose target is not known.

A ProxyBlock does not represent any instructions and so has neither an address nor a size.

See also
Control Flow Graphs (CFGs)

Member Function Documentation

◆ classof()

static bool gtirb::ProxyBlock::classof ( const Node N)
inlinestatic

◆ Create()

static ProxyBlock* gtirb::ProxyBlock::Create ( Context C)
inlinestatic

Create an unitialized ProxyBlock object.

Parameters
CThe Context in which this ProxyBlock will be held.
Returns
The newly created ProxyBlock.

◆ getModule() [1/2]

Module* gtirb::ProxyBlock::getModule ( )
inline

Get the Module this block belongs to.

◆ getModule() [2/2]

const Module* gtirb::ProxyBlock::getModule ( ) const
inline

Get the Module this block belongs to.

Friends And Related Function Documentation

◆ Context

friend class Context
friend

◆ Module

friend class Module
friend

◆ SerializationTestHarness

friend class SerializationTestHarness
friend

◆ toProtobuf

template<typename T >
T::MessageType toProtobuf ( const T &  )
friend

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