#include <string>
#include <iostream>
#include <vector>
ネームスペース | |
namespace | tlm |
構成 | |
class | tlm::tlm_phase |
マクロ定義 | |
#define | DECLARE_EXTENDED_PHASE(name_arg) |
列挙型 | |
enum | tlm::tlm_phase_enum { tlm::UNINITIALIZED_PHASE = 0, tlm::BEGIN_REQ = 1, tlm::END_REQ, tlm::BEGIN_RESP, tlm::END_RESP } |
関数 | |
unsigned int | tlm::create_phase_number () |
std::vector< const char * > & | tlm::get_phase_name_vec () |
std::ostream & | tlm::operator<< (std::ostream &s, const tlm_phase &p) |
#define DECLARE_EXTENDED_PHASE | ( | name_arg | ) |
値:
class tlm_phase_##name_arg:public tlm::tlm_phase{ \ public:\ static const tlm_phase_##name_arg& get_phase(){static tlm_phase_##name_arg tmp; return tmp;}\ private:\ tlm_phase_##name_arg():tlm::tlm_phase(tlm::create_phase_number()){tlm::get_phase_name_vec().push_back(get_char_##name_arg());};\ tlm_phase_##name_arg(const tlm_phase_##name_arg&); \ tlm_phase_##name_arg& operator=(const tlm_phase_##name_arg&); \ static inline const char* get_char_##name_arg(){static const char* tmp=#name_arg; return tmp;} \ }; \ static const tlm_phase_##name_arg& name_arg=tlm_phase_##name_arg::get_phase()
tlm_phase.h の 67 行で定義されています。