00001 #ifndef PORT_H_INCLUDED_ 00002 #define PORT_H_INCLUDED_ 00003 00004 #include "rose.h" 00005 00006 #include "module.h" 00007 #include "object.h" 00008 00009 namespace risc { 00010 00011 class Port: public Object { 00012 00013 public: 00014 00018 explicit 00019 Port(SgVariableDefinition *ast_node, Class *parent, Type type = PortType); 00020 00025 virtual std::string get_ast_type_name(); 00026 00027 Class *parent_; 00028 00037 void get_mapped_channels(std::set<risc::Object*> &channels); 00038 00048 void get_mapped_channel_types(std::set<risc::Class*> &channels); 00049 00050 private: 00051 00055 Port(const Port &p); 00056 }; 00057 00058 typedef std::vector<Port*> PortVector; 00059 typedef std::vector<Port*>::iterator PortVectorIter; 00060 typedef std::vector<Port*>::const_iterator PortVectorConstIter; 00061 00062 } // end of namespace risc 00063 00064 #endif /* PORT_H_INCLUDED_ */ 00065 00066 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */