3 #include <boost/optional.hpp>
7 template <
class T_Cage>
11 typedef unsigned EdgeID;
12 typedef typename Cage::GraphPolicy GraphPolicy;
14 typedef typename Cage::Event Event;
15 typedef typename GraphPolicy::EdgeProperty EdgeProperty;
16 typedef typename GraphPolicy::VertexProperty VertexProperty;
21 EdgeProperty &edgeProperty;
27 EdgeProperty &edgeProperty,
32 edgeProperty(edgeProperty),
41 EdgeProperty& operator()(){
46 boost::optional<CommunicationEdge> edge = cage.getEdge(target, source);
57 template <
class T_Send>
58 Event operator<<(
const T_Send &data){
59 std::vector<Event> events;
60 cage.send(*
this, data, events);
64 template <
class T_Recv>
65 void operator>>(T_Recv &data){
66 cage.recv(*
this, data);