00001 #ifndef PRIMITIVE_CHANNEL_INSTANCE_H_INCLUDED_ 00002 #define PRIMITIVE_CHANNEL_INSTANCE_H_INCLUDED_ 00003 00004 #include <vector> 00005 00006 #include "rose.h" 00007 00008 #include "class.h" // included for get_definition 00009 #include "primitive_channel.h" // included for get_definition 00010 00011 #include "instance.h" 00012 00013 namespace risc { 00014 00015 class PrimitiveChannelInstance: public Instance { 00016 00017 public: 00018 00022 explicit PrimitiveChannelInstance(SgVariableDefinition *ast_node, 00023 PrimitiveChannel *definition); 00024 00029 virtual std::string get_ast_type_name(); 00030 00031 00037 virtual PrimitiveChannel* get_definition(); 00038 00039 private: 00040 00045 PrimitiveChannel *definition_; 00046 00050 PrimitiveChannelInstance(const PrimitiveChannelInstance &pci); 00051 }; 00052 00053 typedef std::vector<PrimitiveChannelInstance*> 00054 PrimitiveChannelInstanceVector; 00055 typedef std::vector<PrimitiveChannelInstance*>::iterator 00056 PrimitiveChannelInstanceVectorIter; 00057 typedef std::vector<PrimitiveChannelInstance*>::const_iterator 00058 PrimitiveChannelInstanceVectorConstIter; 00059 typedef std::vector<PrimitiveChannelInstance*>::iterator 00060 PrimitiveChannelInstanceVectorIter; 00061 00062 } // end namespace risc 00063 00064 #endif /* PRIMITIVE_CHANNEL_INSTANCE_H_INCLUDED_ */ 00065 00066 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */