CAPD RedHom Library
capd::graph::GraphOnEdges< IdT > Class Template Reference

#include <capd/graph/GraphOnEdges.h>

Classes

struct  IsNotGuard
 
struct  Vertex
 

Public Types

typedef IdT Id
 
typedef graph::BoostGraphEdgeAdaptor< VertexEdge
 
typedef std::vector< EdgeEdgesStorage
 
typedef boost::sub_range< typename Groups::ConstGroupRange > OutEdges
 
typedef boost::iterator_range< boost::counting_iterator< Id > > Vertices
 
typedef boost::filtered_range< IsNotGuard, const EdgesStorageEdges
 

Public Member Functions

 GraphOnEdges (GraphOnEdges &&)=default
 
 GraphOnEdges (const GraphOnEdges &rhs)
 
 GraphOnEdges (size_t size, EdgesStorage &&edges)
 
GraphOnEdgesoperator= (const GraphOnEdges &)=delete
 
GraphOnEdgesoperator= (GraphOnEdges &&)=default
 
Vertex vertex (Id id) const
 
Vertices vertices () const
 
OutEdges outEdges (const Vertex &v) const
 
Edges edges () const
 
size_t size () const
 
size_t numberOfEdges () const
 

Public Attributes

decltype(homAux::MakeGroupedRangeByKey(std::declval< EdgesStorage >())) typedef Groups
 

Protected Attributes

size_t _size
 
Groups _groupedEdges
 
 CAPD_CLASS_LOGGER
 

Member Typedef Documentation

template<typename IdT>
typedef graph::BoostGraphEdgeAdaptor<Vertex> capd::graph::GraphOnEdges< IdT >::Edge
template<typename IdT>
typedef boost::filtered_range<IsNotGuard, const EdgesStorage> capd::graph::GraphOnEdges< IdT >::Edges
template<typename IdT>
typedef std::vector<Edge> capd::graph::GraphOnEdges< IdT >::EdgesStorage
template<typename IdT>
typedef IdT capd::graph::GraphOnEdges< IdT >::Id
template<typename IdT>
typedef boost::sub_range<typename Groups::ConstGroupRange> capd::graph::GraphOnEdges< IdT >::OutEdges
template<typename IdT>
typedef boost::iterator_range<boost::counting_iterator<Id> > capd::graph::GraphOnEdges< IdT >::Vertices

Constructor & Destructor Documentation

template<typename IdT>
capd::graph::GraphOnEdges< IdT >::GraphOnEdges ( GraphOnEdges< IdT > &&  )
default
template<typename IdT>
capd::graph::GraphOnEdges< IdT >::GraphOnEdges ( const GraphOnEdges< IdT > &  rhs)
inline
template<typename IdT>
capd::graph::GraphOnEdges< IdT >::GraphOnEdges ( size_t  size,
EdgesStorage &&  edges 
)
inlineexplicit

Member Function Documentation

template<typename IdT>
Edges capd::graph::GraphOnEdges< IdT >::edges ( ) const
inline
template<typename IdT>
size_t capd::graph::GraphOnEdges< IdT >::numberOfEdges ( ) const
inline
template<typename IdT>
GraphOnEdges& capd::graph::GraphOnEdges< IdT >::operator= ( const GraphOnEdges< IdT > &  )
delete
template<typename IdT>
GraphOnEdges& capd::graph::GraphOnEdges< IdT >::operator= ( GraphOnEdges< IdT > &&  )
default
template<typename IdT>
OutEdges capd::graph::GraphOnEdges< IdT >::outEdges ( const Vertex v) const
inline
template<typename IdT>
size_t capd::graph::GraphOnEdges< IdT >::size ( ) const
inline
template<typename IdT>
Vertex capd::graph::GraphOnEdges< IdT >::vertex ( Id  id) const
inline
template<typename IdT>
Vertices capd::graph::GraphOnEdges< IdT >::vertices ( ) const
inline

Member Data Documentation

template<typename IdT>
Groups capd::graph::GraphOnEdges< IdT >::_groupedEdges
protected
template<typename IdT>
size_t capd::graph::GraphOnEdges< IdT >::_size
protected
template<typename IdT>
capd::graph::GraphOnEdges< IdT >::CAPD_CLASS_LOGGER
protected
template<typename IdT>
decltype(homAux::MakeGroupedRangeByKey(std::declval<EdgesStorage>())) typedef capd::graph::GraphOnEdges< IdT >::Groups