00001 #ifndef THREAD_H_INCLUDED_ 00002 #define THREAD_H_INCLUDED_ 00003 00004 #include <vector> 00005 00006 #include "rose.h" 00007 00008 #include "event.h" 00009 #include "function.h" 00010 #include "port.h" 00011 00012 namespace risc { 00013 00014 class Event; 00015 class Port; 00016 00017 typedef std::vector<Event*> EventVector; 00018 typedef std::vector<Port*> PortVector; 00019 00020 class Thread: public Function { 00021 00022 public: 00023 00027 explicit Thread(SgFunctionDefinition *ast_node); 00028 00029 00030 EventVector static_event_sensitivity_list_; 00031 PortVector static_port_sensitivity_list_; 00032 00036 void print_event_list(); 00037 00038 private: 00042 Thread(const Thread &t); 00043 }; 00044 00045 typedef std::vector<Thread*> ThreadVector; 00046 typedef std::vector<Thread*>::iterator ThreadVectorIter; 00047 typedef std::vector<Thread*>::const_iterator ThreadVectorConstIter; 00048 00049 } // end namespace risc 00050 00051 #endif /* THREAD_H_INCLUDED_ */ 00052 00053 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */