12 #ifndef SSTMAC_COMMON_EVENTCALLBACK_H_INCLUDED 13 #define SSTMAC_COMMON_EVENTCALLBACK_H_INCLUDED 23 template<
int N,
int ...S>
39 return "member fxn handler";
48 template <
class Cls,
typename Fxn,
class ...Args>
58 dispatch(ev,
typename gens<
sizeof...(Args)>::type());
73 (obj_->*fxn_)(ev, std::get<S>(params_)...);
83 template <
class Cls,
typename Fxn>
108 template<
class Cls,
typename Fxn,
class ...Args>
113 cls->event_location(), cls, fxn, args...);
117 template <
class Cls,
typename Fxn,
class ...Args>
127 dispatch(
typename gens<
sizeof...(Args)>::type());
132 return "member fxn callback";
147 (obj_->*fxn_)(std::get<S>(params_)...);
156 template<
class Cls,
typename Fxn,
class ...Args>
161 cls->event_location(), cls, fxn, args...);
164 template<
class Cls,
typename Fxn,
class ...Args>
169 id, cls, fxn, args...);
std::tuple< Args... > params_
void dispatch(event *ev, seq< S... >)
virtual ~member_fxn_handler_impl()
member_fxn_handler(event_loc_id id)
event_handler * new_handler(Cls *cls, Fxn fxn, const Args &...args)
virtual std::string to_string() const
virtual std::string to_string() const
callback * new_callback(Cls *cls, Fxn fxn, const Args &...args)
The main interface for something that can respond to an event (sst_message).
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
virtual ~member_fxn_handler()
member_fxn_callback(event_loc_id id, Cls *obj, Fxn fxn, const Args &...args)
std::tuple< Args... > params_
void dispatch(seq< S... >)
virtual ~member_fxn_callback()
member_fxn_handler_impl(event_loc_id id, Cls *obj, Fxn fxn, const Args &...args)