00001 #ifndef HIERARCHICAL_CHANNEL_H_INCLUDED_ 00002 #define HIERARCHICAL_CHANNEL_H_INCLUDED_ 00003 00004 #include <vector> 00005 00006 #include "rose.h" 00007 00008 #include "module.h" 00009 #include "interface.h" 00010 00011 namespace risc { 00012 00013 class HierarchicalChannel: public Module { 00014 00015 public: 00016 00020 explicit HierarchicalChannel(SgClassDefinition *ast_node); 00021 00022 void print_hierarchical_channel_definition(); 00023 00028 int instance_counter_; 00029 00033 std::list<Interface*> get_interfaces(); 00034 00035 private: 00039 HierarchicalChannel(const HierarchicalChannel &hcd); 00040 }; 00041 00042 typedef std::vector<HierarchicalChannel*> 00043 HierarchicalChannelVector; 00044 typedef std::vector<HierarchicalChannel*>::iterator 00045 HierarchicalChannelVectorIter; 00046 typedef std::vector<HierarchicalChannel*>::const_iterator 00047 HierarchicalChannelVectorConstIter; 00048 00049 }; // end of namespace risc 00050 00051 #endif /* HIERARCHICAL_CHANNEL_H_INCLUDED_ */ 00052 00053 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */