00001 #ifndef HIERARCHICAL_CHANNEL_INSTANCE_H_INCLUDED_ 00002 #define HIERARCHICAL_CHANNEL_INSTANCE_H_INCLUDED_ 00003 00004 #include <vector> 00005 00006 #include "rose.h" 00007 00008 #include "class.h" // included for get_definition 00009 #include "hierarchical_channel.h" // included for get_definition 00010 00011 #include "module_instance.h" 00012 00013 namespace risc { 00014 00015 class HierarchicalChannelInstance: public ModuleInstance { 00016 00017 public: 00018 00024 explicit HierarchicalChannelInstance( 00025 SgVariableDefinition *ast_node, 00026 HierarchicalChannel*ir_def); 00027 00028 00034 virtual HierarchicalChannel* get_definition(); 00035 00036 private: 00037 00042 HierarchicalChannel *channel_definition_; 00043 00047 HierarchicalChannelInstance(const HierarchicalChannelInstance &hci); 00048 }; 00049 00050 typedef std::vector<HierarchicalChannelInstance*> 00051 HierarchicalChannelInstanceVector; 00052 typedef std::vector<HierarchicalChannelInstance*>::iterator 00053 HierarchicalChannelInstanceVectorIter; 00054 typedef std::vector<HierarchicalChannelInstance*>::const_iterator 00055 HierarchicalChannelInstanceVectorConstIter; 00056 00057 }; // end namespace risc 00058 00059 #endif /* HIERARCHICAL_CHANNEL_INSTANCE_H_INCLUDED_ */ 00060 00061 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */