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