dlvhex  2.1.0
EvalGraphBuilder Class Reference

This template provides a framework for building an evaluation graph. More...

#include <include/dlvhex2/EvalGraphBuilder.h>

Inheritance diagram for EvalGraphBuilder:
Collaboration diagram for EvalGraphBuilder:

Data Structures

struct  DependencyInfo
struct  identity
struct  UnusedEdgeFilter
struct  UnusedVertexFilter

Public Types

typedef FinalEvalGraph EvalGraphT
typedef EvalGraphT::EvalUnit EvalUnit
typedef ComponentGraph::Component Component
typedef ComponentGraph::Dependency Dependency
typedef boost::filtered_graph
< ComponentGraph::Graph,
UnusedEdgeFilter,
UnusedVertexFilter
ComponentGraphRest

Public Member Functions

 EvalGraphBuilder (ProgramCtx &ctx, ComponentGraph &cg, EvalGraphT &eg, ASPSolverManager::SoftwareConfigurationPtr externalEvalConfig)
virtual ~EvalGraphBuilder ()
const EvalGraphTgetEvalGraph () const
const ComponentGraphgetComponentGraph () const
const ComponentGraphRestgetComponentGraphRest () const
RegistryPtr registry ()
virtual EvalUnit createEvalUnit (const std::list< Component > &comps, const std::list< Component > &ccomps)

Protected Types

typedef
ComponentGraph::ComponentSet 
ComponentSet
typedef
ComponentGraph::ComponentInfo 
ComponentInfo
typedef boost::bimaps::bimap
< boost::bimaps::unordered_set_of
< Component >
, boost::bimaps::unordered_multiset_of
< EvalUnit, identity > > 
ComponentEvalUnitMapping

Protected Member Functions

 BOOST_CONCEPT_ASSERT ((boost::Convertible< Component, void * >))
 BOOST_CONCEPT_ASSERT ((boost::Convertible< EvalUnit, unsigned >))
void calculateNewEvalUnitInfos (const ComponentSet &comps, const ComponentSet &ccomps, std::list< DependencyInfo > &newUnitDependsOn, ComponentInfo &newUnitInfo)

Protected Attributes

ProgramCtxctx
const ComponentGraphcg
EvalGraphTeg
ASPSolverManager::SoftwareConfigurationPtr externalEvalConfig
ComponentEvalUnitMapping mapping
UnusedEdgeFilter unusedEdgeFilter
UnusedVertexFilter unusedVertexFilter
ComponentGraphRest cgrest

Detailed Description

This template provides a framework for building an evaluation graph.

It provides one modifier method createEvalUnit() for creating an evaluation unit; this method does all necessary checks.

All evaluation planning heuristics must use this builder for creating evaluation units and evaluation graphs.

Definition at line 61 of file EvalGraphBuilder.h.


Member Typedef Documentation

typedef boost::bimaps::bimap< boost::bimaps::unordered_set_of<Component>, boost::bimaps::unordered_multiset_of<EvalUnit, identity > > EvalGraphBuilder::ComponentEvalUnitMapping [protected]

Definition at line 105 of file EvalGraphBuilder.h.

Definition at line 73 of file EvalGraphBuilder.h.


Constructor & Destructor Documentation

Definition at line 70 of file EvalGraphBuilder.cpp.


Member Function Documentation

EvalGraphBuilder::BOOST_CONCEPT_ASSERT ( (boost::Convertible< Component, void * >)  ) [protected]
EvalGraphBuilder::BOOST_CONCEPT_ASSERT ( (boost::Convertible< EvalUnit, unsigned >)  ) [protected]
const EvalGraphT& EvalGraphBuilder::getEvalGraph ( ) const [inline]

Definition at line 195 of file EvalGraphBuilder.h.

References eg.


Field Documentation

Definition at line 157 of file EvalGraphBuilder.h.

Referenced by createEvalUnit(), and registry().

Definition at line 161 of file EvalGraphBuilder.h.

Referenced by createEvalUnit(), and getEvalGraph().


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