00001 #ifndef EDGE_PROPERTY_WRITER_H_INCLUDED_
00002 #define EDGE_PROPERTY_WRITER_H_INCLUDED_
00003 
00004 #include "segment_graph.h"
00005 
00006 #include <iostream>
00007 
00008 namespace risc {
00009 
00010 namespace sg {
00011 
00012 struct EdgePropertyWriter {
00013 
00014   EdgePropertyWriter(Graph& graph);
00015 
00016   template <class Edge>
00017   void operator() (std::ostream &out, Edge e)
00018   {
00019     if(graph_[e].event_notification_edge_) { 
00020       
00021       out << "[ penwidth=3, color=\"#FF0000\", style=dotted, constraint = false]";
00022     }
00023 
00024     if(graph_[e].hierarchical_communication_) { 
00025       out << "[ penwidth=3 , color=\"#EB9ACE\", style=dotted, constraint = false]" ;
00026     }
00027   }
00028 
00029   Graph& graph_;
00030 
00031   friend std::ostream& operator<< (std::ostream &out,
00032                            const EdgePropertyWriter &epw)
00033   {
00034     return out;
00035   }
00036 };
00037 
00038 }; 
00039 
00040 }; 
00041 
00042 #endif 
00043 
00044