coco::search_graph Class Reference
[Search Graph]

The search graph. More...

#include <search_graph.h>

Inheritance diagram for coco::search_graph:

Inheritance graph
[legend]
Collaboration diagram for coco::search_graph:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Base::walker walker
typedef _Base::const_walker const_walker
typedef _Base::children_iterator children_iterator
typedef _Base::parents_iterator parents_iterator
typedef
_Base::children_const_iterator 
children_const_iterator
typedef
_Base::parents_const_iterator 
parents_const_iterator
typedef _Base::erased_part erased_part
typedef _SequenceCtr< void
*, _PtrAlloc > 
container_type
typedef _DG_iterator< _Tp, _Tp
&, _Tp *, container_type,
children_iterator,
children_const_iterator
iterator
typedef _DG_iterator< _Tp,
const _Tp &, const _Tp
*, container_type,
children_iterator,
children_const_iterator
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef std::pair< walker, walkeredge
typedef std::pair< edge, bool > enhanced_edge
typedef _Tp value_type
typedef _Node node_type
typedef value_typepointer
typedef const value_typeconst_pointer
typedef value_typereference
typedef const value_typeconst_reference
typedef size_t size_type
typedef ptrdiff_t difference_type

Public Member Functions

 search_graph (model &root_model, gptr< vdbl::database > &_db)
 search_graph (model &root_model, gptr< vdbl::database > &_db, const std::vector< annotation > &_a)
 ~search_graph ()
search_node_id get_node_id ()
search_graph_contextget_search_graph_context ()
const search_graph_contextget_search_graph_context () const
vdbl::viewdbase & get_viewdbase ()
const vdbl::viewdbase & get_viewdbase () const
bool register_hook (const work_node_comp_hook &wnch)
bool unregister_hook (const std::string &name)
void apply_hooks (const work_node &w, const search_node_id &id, vdbl::rowid &rid, std::list< delta > &add_ds, std::list< certificate > &add_cs)
bool check_acyclicity (const walker &__parent, const walker &__child)
void clear ()
walker between (const walker &__parent, const children_iterator &__cit, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker between (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker between (const walker &__parent, const children_iterator &__cit, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it, const _Tp &__x)
void split (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pr_it, const _Tp &__x)
walker between_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
void insert_back_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void insert_front_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void add_edge (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void add_edge (const edge &__edge, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge_back (const walker &__parent, const walker &__child)
void add_edge_front (const walker &__parent, const walker &__child)
allocator_type get_allocator () const
walker ground ()
const_walker ground () const
walker sky ()
const_walker sky () const
children_iterator root_begin ()
children_const_iterator root_begin () const
children_iterator root_end ()
children_const_iterator root_end () const
parents_iterator leaf_begin ()
parents_const_iterator leaf_begin () const
parents_iterator leaf_end ()
parents_const_iterator leaf_end () const
bool empty () const
size_type size () const
size_type max_size () const
void swap (_Self &__x)
walker insert_node_in_graph (_Node *__n, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_node_in_graph (_Node *__n, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
void replace_edge_to_child (const walker &__parent, const walker &__child_old, const walker &__child_new)
void replace_edge_to_child (const walker &__parent, const walker &__child_old, const walker &__child_new)
void replace_edge_to_parent (const walker &__parent_old, const walker &__parent_new, const walker &__child)
void replace_edge_to_parent (const walker &__parent_old, const walker &__parent_new, const walker &__child)
void remove_edge (const edge &__edge)
void remove_edge (const walker &__parent, const walker &__child)
void remove_edge (const walker &__parent, const walker &__child)
void remove_edge_and_deattach (const walker &__parent, const walker &__child)
void remove_edge_and_deattach (const walker &__parent, const walker &__child)
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
void sort_child_edges (walker __position, Compare comp)
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
void sort_child_edges (walker __position, Compare comp)
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
void sort_parent_edges (walker __position, Compare comp)
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
void sort_parent_edges (walker __position, Compare comp)
walker insert_node (_Node *_node, const walker &__position, const container_insert_arg &__It)
walker insert_node (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
walker insert_node (const walker &__position, const container_insert_arg &__It)
walker insert_node (_Node *_node, const walker &__position, const container_insert_arg &__It)
walker insert_node (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
walker insert_node (const walker &__position, const container_insert_arg &__It)
walker insert_node_before (_Node *_node, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const walker &__position, const container_insert_arg &__It)
walker insert_node_before (_Node *_node, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const walker &__position, const container_insert_arg &__It)
void merge (const walker &__position, const walker &__second, bool merge_parent_edges=true, bool merge_child_edges=true)
void merge (const walker &__position, const walker &__second, bool merge_parent_edges=true, bool merge_child_edges=true)
void erase (const walker &__position)
void erase (const walker &__position)
void partial_erase_to_parent (const walker &__position, const walker &__parent, unsigned int idx)
void partial_erase_to_parent (const walker &__position, const walker &__parent, unsigned int idx)
void clear_erased_part (erased_part &_ep)
void clear_erased_part (erased_part &_ep)
erased_part erase_maximal_subgraph (const walker &__position)
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_subgraph (const walker &__position)
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_subgraph (const walker &__position)
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_subgraph (const walker &__position)
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
bool erase_child (const walker &__position, const children_iterator &__It)
bool erase_child (const walker &__position, const children_iterator &__It)
bool erase_parent (const walker &__position, const parents_iterator &__It)
bool erase_parent (const walker &__position, const parents_iterator &__It)
Focus and Inspector Management
The methods described in this section are used for managing the search focusses and search inspectors.

bool possible_focus (const search_inspector &_si, const search_focus &not_this) const
bool possible_focus (const search_inspector &_si, const std::list< search_focus >::const_iterator *not_this=NULL) const
search_focus & new_focus (const search_inspector &_si)
const search_focus & get_focus (const search_inspector &_si, bool &isNew)
void destroy_focus (const search_focus &_sf)
search_focus & set_focus (search_focus &_fc, const search_inspector &_si)
search_inspector & new_inspector (const search_inspector &inspector_to_add)
search_inspector & new_inspector ()
void destroy_inspector (const search_inspector &inspector_to_destroy)
search_inspector child (search_inspector &n, unsigned int i)
search_inspector parent (search_inspector &n, unsigned int i)
search_inspector get (search_node_id id) const
Methods for search node handling
The methods described in this section are used for managing search nodes on the search graph.

work_node extract (const search_inspector &where) const
work_node extract (const search_focus &where) const
void extract (work_node &wnode, const search_inspector &where) const
void extract (work_node &wnode, const search_focus &where) const
search_focus & update (work_node &wnode, search_focus &foc, const search_inspector &where)
search_focus & update_and_delete (work_node &wnode, search_focus &foc, const search_inspector &where, bool just_this, bool relaxation_kills)
search_inspector & insert (const search_focus &where, const search_node &what)
search_inspector & replace (search_focus &where, const search_node &what)
bool add_deltas (const search_focus &where, const std::vector< delta_id > &del_vec)
void remove (search_focus &_sf)
void remove_upwards (search_focus &_sf, bool relaxation_kills)
search_focus & promote (search_focus &_sf)

Public Attributes

std::list< walkerfocus
std::list< const_walkerinspector
search_noderoot
search_inspector inspector_for_root
ptr< search_nodeptr_ground
ptr< modelptr_root_model
std::list< search_node * > search_nodes_to_deallocate
std::list< delta_iddb_deltas_to_remove
gptr< vdbl::database > * __dbase
vdbl::userid __dbuser
search_graph_contextsgc
vdbl::viewdbase __vdbf

Protected Types

typedef _Base::allocator_type allocator_type

Protected Member Functions

_Node * _C_create_node (const _Tp &__x)
_Node * _C_create_node ()
void _C_destroy_node (_Node *__p)
void clear_graph (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_node)
void clear_graph (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_node)
_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_get_node ()
void _C_put_node (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *__p)
void _C_put_node (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *__p)
void clear_children ()
void clear_parents ()
void add_all_children (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_parent)
void add_all_children (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_parent)
void add_all_parents (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_child)
void add_all_parents (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_child)

Protected Attributes

_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_ground
_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_sky
int _C_mark


Detailed Description

This is the class holding the search graph. It is basically a DAG of search_node pointers pointing to either delta_node or full_node entries. There can be more than one search graph in the same strategy.

Definition at line 53 of file search_graph.h.


Member Typedef Documentation

typedef _Base::allocator_type dag< class, _SequenceCtr, class, class >::allocator_type [protected, inherited]

typedef _Base::children_const_iterator dag< class, _SequenceCtr, class, class >::children_const_iterator [inherited]

typedef _Base::children_iterator dag< class, _SequenceCtr, class, class >::children_iterator [inherited]

typedef _DG_iterator< _Tp, const _Tp &, const _Tp *, container_type, children_iterator, children_const_iterator > dag< class, _SequenceCtr, class, class >::const_iterator [inherited]

typedef const value_type * dag< class, _SequenceCtr, class, class >::const_pointer [inherited]

typedef const value_type & dag< class, _SequenceCtr, class, class >::const_reference [inherited]

typedef std::reverse_iterator< const_iterator > dag< class, _SequenceCtr, class, class >::const_reverse_iterator [inherited]

typedef _Base::const_walker dag< class, _SequenceCtr, class, class >::const_walker [inherited]

typedef _SequenceCtr< void *, _PtrAlloc > dag< class, _SequenceCtr, class, class >::container_type [inherited]

typedef ptrdiff_t dag< class, _SequenceCtr, class, class >::difference_type [inherited]

typedef std::pair< walker, walker > dag< class, _SequenceCtr, class, class >::edge [inherited]

typedef std::pair< edge, bool > dag< class, _SequenceCtr, class, class >::enhanced_edge [inherited]

typedef _Base::erased_part dag< class, _SequenceCtr, class, class >::erased_part [inherited]

typedef _DG_iterator< _Tp, _Tp &, _Tp *, container_type, children_iterator, children_const_iterator > dag< class, _SequenceCtr, class, class >::iterator [inherited]

typedef _Node dag< class, _SequenceCtr, class, class >::node_type [inherited]

typedef _Base::parents_const_iterator dag< class, _SequenceCtr, class, class >::parents_const_iterator [inherited]

typedef _Base::parents_iterator dag< class, _SequenceCtr, class, class >::parents_iterator [inherited]

typedef value_type * dag< class, _SequenceCtr, class, class >::pointer [inherited]

typedef value_type & dag< class, _SequenceCtr, class, class >::reference [inherited]

typedef std::reverse_iterator< iterator > dag< class, _SequenceCtr, class, class >::reverse_iterator [inherited]

typedef size_t dag< class, _SequenceCtr, class, class >::size_type [inherited]

typedef _Tp dag< class, _SequenceCtr, class, class >::value_type [inherited]

typedef _Base::walker dag< class, _SequenceCtr, class, class >::walker [inherited]


Constructor & Destructor Documentation

coco::search_graph::search_graph ( model root_model,
gptr< vdbl::database > &  _db 
) [inline]

Constructor, which generates a new search graph from an original model root_model. The search database _db must already be created and is likewise passed to the constructor.

Definition at line 35 of file search_graph.hpp.

coco::search_graph::search_graph ( model root_model,
gptr< vdbl::database > &  _db,
const std::vector< annotation > &  _a 
) [inline]

Constructor, which generates a new search graph from an original model root_model together with initial model annotations _a. The search database _db must already be created and is likewise passed to the constructor.

Definition at line 54 of file search_graph.hpp.

coco::search_graph::~search_graph (  )  [inline]

Destructor

Definition at line 74 of file search_graph.hpp.


Member Function Documentation

_Node * dag< class, _SequenceCtr, class, class >::_C_create_node (  )  [protected, inherited]

_Node * dag< class, _SequenceCtr, class, class >::_C_create_node ( const _Tp &  __x  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::_C_destroy_node ( _Node *  __p  )  [protected, inherited]

_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > * dag< class, _SequenceCtr, class, class >::_C_get_node (  )  [protected, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_put_node ( _DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  __p  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::_C_put_node ( _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  __p  )  [protected, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::add_all_children ( _Output_Iterator  fi,
_DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _parent 
) [protected, inherited]

void dag< class, _SequenceCtr, class, class >::add_all_children ( _Output_Iterator  fi,
_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  _parent 
) [protected, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::add_all_parents ( _Output_Iterator  fi,
_DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _child 
) [protected, inherited]

void dag< class, _SequenceCtr, class, class >::add_all_parents ( _Output_Iterator  fi,
_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  _child 
) [protected, inherited]

bool coco::search_graph::add_deltas ( const search_focus &  where,
const std::vector< delta_id > &  del_vec 
)

The add_deltas method adds the additional deltas in del_vec to the search_node at position where. The method returns true if adding the deltas was successful, i.e. if the node at where is a delta_node.

Definition at line 1064 of file search_graph.cc.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge ( const edge __edge,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge_back ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge_front ( const walker __parent,
const walker __child 
) [inherited]

void coco::search_graph::apply_hooks ( const work_node w,
const search_node_id id,
vdbl::rowid &  rid,
std::list< delta > &  add_ds,
std::list< certificate > &  add_cs 
)

The apply_hooks method is called right after a split for all the generated nodes right before they are stored in the search graph. It calls all registered work node computation hooks in order to store information in the ``search info'' table.

Definition at line 1134 of file search_graph.cc.

walker dag< class, _SequenceCtr, class, class >::between ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between ( const walker __parent,
const children_iterator __cit,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between ( const walker __parent,
const children_iterator __cit,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

bool dag< class, _SequenceCtr, class, class >::check_acyclicity ( const walker __parent,
const walker __child 
) [inherited]

search_graph::search_inspector coco::search_graph::child ( search_inspector &  n,
unsigned int  i 
) [inline]

The child method creates a new search inspector pointing to the ith child of the search node at n.

Definition at line 102 of file search_graph.hpp.

void dag< class, _SequenceCtr, class, class >::clear (  )  [inherited]

void dag< class, _SequenceCtr, class, class >::clear_children (  )  [protected, inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::clear_erased_part ( erased_part _ep  )  [inherited]

void dag< class, _SequenceCtr, class, class >::clear_erased_part ( erased_part _ep  )  [inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::clear_graph ( _DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _node  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::clear_graph ( _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  _node  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::clear_parents (  )  [protected, inherited]

void coco::search_graph::destroy_focus ( const search_focus &  _sf  ) 

This method destroys the search focus _sf.

Definition at line 396 of file search_graph.cc.

void coco::search_graph::destroy_inspector ( const search_inspector &  inspector_to_destroy  ) 

Calling the destroy_inspector with parameter inspector_to_destroy destroys the search_inspector passed.

Definition at line 437 of file search_graph.cc.

bool dag< class, _SequenceCtr, class, class >::empty (  )  const [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase ( const walker __position  )  [inherited]

void dag< class, _SequenceCtr, class, class >::erase ( const walker __position  )  [inherited]

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_child ( const walker __position,
const children_iterator __It 
) [inherited]

bool dag< class, _SequenceCtr, class, class >::erase_child ( const walker __position,
const children_iterator __It 
) [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_pregraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_pregraph ( const walker __position  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_subgraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_subgraph ( const walker __position  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_pregraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_pregraph ( const walker __position  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_subgraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_subgraph ( const walker __position  )  [inherited]

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_parent ( const walker __position,
const parents_iterator __It 
) [inherited]

bool dag< class, _SequenceCtr, class, class >::erase_parent ( const walker __position,
const parents_iterator __It 
) [inherited]

void coco::search_graph::extract ( work_node wnode,
const search_focus &  where 
) const

This method extracts a work_node from the search_node at position where and puts it into wnode.

Definition at line 599 of file search_graph.cc.

void coco::search_graph::extract ( work_node wnode,
const search_inspector &  where 
) const

This method extracts a work_node from the search_node at position where and puts it into wnode.

Definition at line 587 of file search_graph.cc.

work_node coco::search_graph::extract ( const search_focus &  where  )  const

This method extracts a work_node from the search_node at position where.

Definition at line 640 of file search_graph.cc.

work_node coco::search_graph::extract ( const search_inspector &  where  )  const

This method extracts a work_node from the search_node at position where.

Definition at line 611 of file search_graph.cc.

search_graph::search_inspector coco::search_graph::get ( search_node_id  id  )  const [inline]

A call to the get method retrieves the position of the search node with search_node_id id in the search graph.

Definition at line 120 of file search_graph.hpp.

allocator_type dag< class, _SequenceCtr, class, class >::get_allocator (  )  const [inherited]

const search_focus & coco::search_graph::get_focus ( const search_inspector &  _si,
bool &  isNew 
)

This method creates a new focus to _si or returns an existing one if present. isNew is set to true if the focus was newly created and has to be destroyed.

Definition at line 375 of file search_graph.cc.

search_node_id coco::search_graph::get_node_id (  )  [inline]

This method returns the next available search_node_id.

Definition at line 149 of file search_graph.h.

const search_graph_context* coco::search_graph::get_search_graph_context (  )  const [inline]

This method returns the actual search graph context

Definition at line 155 of file search_graph.h.

search_graph_context* coco::search_graph::get_search_graph_context (  )  [inline]

This method returns the actual search graph context

Definition at line 152 of file search_graph.h.

const vdbl::viewdbase& coco::search_graph::get_viewdbase (  )  const [inline]

This method returns the actual view database.

Definition at line 161 of file search_graph.h.

vdbl::viewdbase& coco::search_graph::get_viewdbase (  )  [inline]

This method returns the actual view database.

Definition at line 158 of file search_graph.h.

const_walker dag< class, _SequenceCtr, class, class >::ground (  )  const [inherited]

walker dag< class, _SequenceCtr, class, class >::ground (  )  [inherited]

search_inspector & coco::search_graph::insert ( const search_focus &  where,
const search_node what 
)

A call to the insert method stores the search_node what as a child of the search_node at position where in the search graph.

Definition at line 694 of file search_graph.cc.

void dag< class, _SequenceCtr, class, class >::insert_back_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_front_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_before ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_subgraph ( _Self &  __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_subgraph ( _Self &  __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_subgraph ( _Self &  __subgraph,
const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inherited]

parents_const_iterator dag< class, _SequenceCtr, class, class >::leaf_begin (  )  const [inherited]

parents_iterator dag< class, _SequenceCtr, class, class >::leaf_begin (  )  [inherited]

parents_const_iterator dag< class, _SequenceCtr, class, class >::leaf_end (  )  const [inherited]

parents_iterator dag< class, _SequenceCtr, class, class >::leaf_end (  )  [inherited]

size_type dag< class, _SequenceCtr, class, class >::max_size (  )  const [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inherited]

void dag< class, _SequenceCtr, class, class >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inherited]

search_focus & coco::search_graph::new_focus ( const search_inspector &  _si  ) 

This method creates a new focus and sets it on the node to which the search_inspector _si points.

Definition at line 363 of file search_graph.cc.

search_inspector& coco::search_graph::new_inspector (  )  [inline]

This method creates a new search_inspector pointing to the ground node of the search graph.

Definition at line 194 of file search_graph.h.

search_inspector & coco::search_graph::new_inspector ( const search_inspector &  inspector_to_add  ) 

This method creates a new search_inspector pointing to inspector_to_add, unless there is already such a search inspector.

Definition at line 426 of file search_graph.cc.

search_graph::search_inspector coco::search_graph::parent ( search_inspector &  n,
unsigned int  i 
) [inline]

The parent method creates a new search inspector pointing to the ith parent of the search node at n.

Definition at line 111 of file search_graph.hpp.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inherited]

void dag< class, _SequenceCtr, class, class >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inherited]

bool coco::search_graph::possible_focus ( const search_inspector &  _si,
const std::list< search_focus >::const_iterator not_this = NULL 
) const

This method checks whether a new focus can be created on the node to which the search_inspector _si points.

Definition at line 319 of file search_graph.cc.

bool coco::search_graph::possible_focus ( const search_inspector &  _si,
const search_focus &  not_this 
) const

This method checks whether a new focus can be created on the node to which the search_inspector _si points.

Definition at line 355 of file search_graph.cc.

search_focus & coco::search_graph::promote ( search_focus &  _sf  ) 

This method promotes a reduction node to its parent position if and only if the parent of the node is unique. The search_focus _sf points to the node to be promoted.

Definition at line 878 of file search_graph.cc.

bool coco::search_graph::register_hook ( const work_node_comp_hook wnch  ) 

This method registers the new work node computation hook wnch.

Definition at line 1080 of file search_graph.cc.

void coco::search_graph::remove ( search_focus &  _sf  ) 

A call to remove deletes the search_node at position _sf from the search graph.

Definition at line 864 of file search_graph.cc.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::remove_edge ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::remove_edge ( const edge __edge  )  [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inherited]

void coco::search_graph::remove_upwards ( search_focus &  _sf,
bool  relaxation_kills 
)

A call to remove_upwards deletes the search_node at position _sf from the search graph and then recursively all its parents as long as the parents have either search_node_relation snr_glue or snr_reduction. The parent is also deleted if the search_node_relation is snr_relaxation and relaxation_kills is true.

Definition at line 1013 of file search_graph.cc.

search_inspector & coco::search_graph::replace ( search_focus &  where,
const search_node what 
)

The replace method replaces the search_node at position where by the search_node what.

Definition at line 710 of file search_graph.cc.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inherited]

void dag< class, _SequenceCtr, class, class >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inherited]

children_const_iterator dag< class, _SequenceCtr, class, class >::root_begin (  )  const [inherited]

children_iterator dag< class, _SequenceCtr, class, class >::root_begin (  )  [inherited]

children_const_iterator dag< class, _SequenceCtr, class, class >::root_end (  )  const [inherited]

children_iterator dag< class, _SequenceCtr, class, class >::root_end (  )  [inherited]

search_focus & coco::search_graph::set_focus ( search_focus &  _fc,
const search_inspector &  _si 
)

A call to this method moves the search_focus _fc from its current position to the search node to which _si points.

Definition at line 405 of file search_graph.cc.

size_type dag< class, _SequenceCtr, class, class >::size (  )  const [inherited]

const_walker dag< class, _SequenceCtr, class, class >::sky (  )  const [inherited]

walker dag< class, _SequenceCtr, class, class >::sky (  )  [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_child_edges ( walker  __position,
Compare  comp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_child_edges ( walker  __position,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pr_it,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split ( const walker __parent,
const children_iterator __ch_it,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

void dag< class, _SequenceCtr, class, class >::split ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

void dag< class, _SequenceCtr, class, class >::swap ( _Self &  __x  )  [inherited]

bool coco::search_graph::unregister_hook ( const std::string &  name  ) 

This method unregisters the work node computation hook with name name.

Definition at line 1114 of file search_graph.cc.

search_focus & coco::search_graph::update ( work_node wnode,
search_focus &  foc,
const search_inspector &  where 
)

This method updates the search focus foc to the new position where and updates the work_node wnode accordingly.

Definition at line 686 of file search_graph.cc.

search_focus & coco::search_graph::update_and_delete ( work_node wnode,
search_focus &  foc,
const search_inspector &  where,
bool  just_this,
bool  relaxation_kills 
)

This method updates the search focus foc to the new position where and updates the work_node wnode accordingly. Then it removes the node at the old focus and if just_this is false it recursively deletes all its parents as long as the parents have either search_node_relation snr_glue or snr_reduction. The parent is also deleted if the search_node_relation is snr_relaxation and relaxation_kills is true.

Definition at line 669 of file search_graph.cc.


Member Data Documentation

The __dbase variable holds a pointer to the global pointer to the search database.

Definition at line 88 of file search_graph.h.

The __dbuser variable holds the database user id for accessing the search database.

Definition at line 91 of file search_graph.h.

vdbl::viewdbase coco::search_graph::__vdbf

This is a full window view to the search database to be used by the inference engines and report modules.

Definition at line 97 of file search_graph.h.

_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > * dag< class, _SequenceCtr, class, class >::_C_ground [protected, inherited]

int dag< class, _SequenceCtr, class, class >::_C_mark [protected, inherited]

_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > * dag< class, _SequenceCtr, class, class >::_C_sky [protected, inherited]

This list contains all delta_id entries which have to be removed from the search database during search_node deletion.

Definition at line 85 of file search_graph.h.

This variable holds the list of currently active search focusses.

Definition at line 67 of file search_graph.h.

This variable holds the list of currently registered search inspectors.

Definition at line 69 of file search_graph.h.

This member holds a search_inspector pointing to the root node.

Definition at line 74 of file search_graph.h.

This member points to the ground of the search graph.

Definition at line 76 of file search_graph.h.

This member contains a generalized local pointer pointing to the root model (the original model).

Definition at line 79 of file search_graph.h.

This member points to the root of the search graph.

Definition at line 72 of file search_graph.h.

This list contains all search nodes whose memory has to be freed during search_node deletion.

Definition at line 82 of file search_graph.h.

This is the search graph context corresponding to the current work node.

Definition at line 94 of file search_graph.h.


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

Generated on Tue Feb 9 14:49:56 2010 for COCONUT API by  doxygen 1.5.8