SST/macro
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sstmac::hw::packet_flow_sender Class Referenceabstract

#include <packet_flow_sender.h>

Inheritance diagram for sstmac::hw::packet_flow_sender:
Inheritance graph
Collaboration diagram for sstmac::hw::packet_flow_sender:
Collaboration graph

Public Member Functions

virtual ~packet_flow_sender ()
 
void set_acker (event_handler *acker)
 
virtual void set_input (int my_inport, int dst_outport, event_handler *input)=0
 
virtual void set_output (int my_outport, int dst_inport, event_handler *output)=0
 
virtual void init_credits (int port, int num_credits)=0
 
virtual int num_initial_credits () const =0
 
void handle_payload (packet_flow_payload *pkt)
 
void set_event_location (node_id nid)
 
void set_event_location (switch_id sid)
 
void set_stat_collector (packet_sent_stats *c)
 
std::string to_string () const
 
virtual std::string packet_flow_name () const =0
 
void set_update_vc (bool flag)
 
- Public Member Functions inherited from sstmac::hw::packet_flow_handler
 packet_flow_handler ()
 
virtual ~packet_flow_handler ()
 
virtual void handle (event *ev)
 
virtual void handle_credit (packet_flow_credit *msg)=0
 
int thread_id () const
 
- Public Member Functions inherited from sstmac::event_subscheduler
 event_subscheduler ()
 
timestamp now () const
 get the current time More...
 
void schedule (timestamp t, event_handler *handler, event *ev)
 Add an event to the event queue, where msg will get delivered to handler at time t. More...
 
void schedule (timestamp t, event_queue_entry *ev)
 
void schedule_now (event_queue_entry *ev)
 
void schedule_now (event_handler *handler, event *ev)
 
void schedule_delay (timestamp delay, event_handler *handler, event *ev)
 
void schedule_delay (timestamp delay, event_queue_entry *ev)
 
void send_self_event (timestamp arrival, event *ev)
 
void send_delayed_self_event (timestamp delay, event *ev)
 
void send_now_self_event (event *ev)
 
void send_self_event_queue (timestamp arrival, event_queue_entry *ev)
 
void send_delayed_self_event_queue (timestamp delay, event_queue_entry *ev)
 
void send_now_self_event_queue (event_queue_entry *ev)
 
virtual void set_event_parent (event_scheduler *m)
 Set the eventmanager for this scheduler. More...
 
event_schedulerparent () const
 
- Public Member Functions inherited from sstmac::event_handler
virtual ~event_handler ()
 
event_loc_id event_location () const
 
virtual bool ipc_handler () const
 Whether an event handler is a "fake" handler that represents logical process boundary. More...
 
int thread_id () const
 
virtual void deadlock_check (event *ev)
 
virtual void deadlock_check ()
 

Protected Member Functions

 packet_flow_sender (const timestamp &send_lat, const timestamp &credit_lat)
 
 packet_flow_sender ()
 
void send_credit (const packet_flow_input &src, packet_flow_payload *payload, timestamp packet_tail_leaves)
 
void send (packet_flow_bandwidth_arbitrator *arb, packet_flow_payload *pkt, const packet_flow_input &src, const packet_flow_output &dest)
 
virtual void do_handle_payload (packet_flow_payload *pkt)=0
 
- Protected Member Functions inherited from sstmac::event_handler
 event_handler ()
 
void init_loc_id (event_loc_id id)
 
void init_thread_id (int id)
 

Protected Attributes

packet_sent_statsstat_collector_
 
event_handleracker_
 
timestamp send_lat_
 
timestamp credit_lat_
 
bool update_vc_
 
- Protected Attributes inherited from sstmac::event_subscheduler
event_schedulerparent_
 

Additional Inherited Members

- Static Public Attributes inherited from sstmac::event_handler
static const int null_lpid = -1
 
static const int null_threadid = -1
 

Detailed Description

Definition at line 17 of file packet_flow_sender.h.

Constructor & Destructor Documentation

virtual sstmac::hw::packet_flow_sender::~packet_flow_sender ( )
inlinevirtual

Definition at line 21 of file packet_flow_sender.h.

sstmac::hw::packet_flow_sender::packet_flow_sender ( const timestamp send_lat,
const timestamp credit_lat 
)
protected
sstmac::hw::packet_flow_sender::packet_flow_sender ( )
protected

Referenced by set_update_vc().

Member Function Documentation

virtual void sstmac::hw::packet_flow_sender::do_handle_payload ( packet_flow_payload *  pkt)
protectedpure virtual
void sstmac::hw::packet_flow_sender::handle_payload ( packet_flow_payload *  pkt)
inlinevirtual

Implements sstmac::hw::packet_flow_handler.

Definition at line 43 of file packet_flow_sender.h.

References do_handle_payload(), and sstmac::event_subscheduler::now().

Here is the call graph for this function:

virtual void sstmac::hw::packet_flow_sender::init_credits ( int  port,
int  num_credits 
)
pure virtual
virtual int sstmac::hw::packet_flow_sender::num_initial_credits ( ) const
pure virtual
virtual std::string sstmac::hw::packet_flow_sender::packet_flow_name ( ) const
pure virtual
void sstmac::hw::packet_flow_sender::send ( packet_flow_bandwidth_arbitrator arb,
packet_flow_payload *  pkt,
const packet_flow_input src,
const packet_flow_output dest 
)
protected

Referenced by set_update_vc().

void sstmac::hw::packet_flow_sender::send_credit ( const packet_flow_input src,
packet_flow_payload *  payload,
timestamp  packet_tail_leaves 
)
protected

Referenced by set_update_vc().

void sstmac::hw::packet_flow_sender::set_acker ( event_handler acker)
inline

Definition at line 24 of file packet_flow_sender.h.

References acker_, init_credits(), num_initial_credits(), set_input(), and set_output().

Here is the call graph for this function:

void sstmac::hw::packet_flow_sender::set_event_location ( node_id  nid)
inline

Definition at line 49 of file packet_flow_sender.h.

References sstmac::event_handler::init_loc_id().

Here is the call graph for this function:

void sstmac::hw::packet_flow_sender::set_event_location ( switch_id  sid)
inline

Definition at line 54 of file packet_flow_sender.h.

References sstmac::event_handler::init_loc_id().

Here is the call graph for this function:

virtual void sstmac::hw::packet_flow_sender::set_input ( int  my_inport,
int  dst_outport,
event_handler input 
)
pure virtual
virtual void sstmac::hw::packet_flow_sender::set_output ( int  my_outport,
int  dst_inport,
event_handler output 
)
pure virtual
void sstmac::hw::packet_flow_sender::set_stat_collector ( packet_sent_stats c)
inline

Definition at line 59 of file packet_flow_sender.h.

References packet_flow_name(), stat_collector_, and to_string().

Here is the call graph for this function:

void sstmac::hw::packet_flow_sender::set_update_vc ( bool  flag)
inline

Definition at line 70 of file packet_flow_sender.h.

References do_handle_payload(), packet_flow_sender(), send(), send_credit(), and update_vc_.

Here is the call graph for this function:

std::string sstmac::hw::packet_flow_sender::to_string ( ) const
virtual

Reimplemented from sstmac::hw::packet_flow_handler.

Referenced by set_stat_collector().

Member Data Documentation

event_handler* sstmac::hw::packet_flow_sender::acker_
protected

Definition at line 98 of file packet_flow_sender.h.

Referenced by set_acker().

timestamp sstmac::hw::packet_flow_sender::credit_lat_
protected

Definition at line 102 of file packet_flow_sender.h.

timestamp sstmac::hw::packet_flow_sender::send_lat_
protected

Definition at line 100 of file packet_flow_sender.h.

packet_sent_stats* sstmac::hw::packet_flow_sender::stat_collector_
protected

Definition at line 96 of file packet_flow_sender.h.

Referenced by set_stat_collector().

bool sstmac::hw::packet_flow_sender::update_vc_
protected

Definition at line 104 of file packet_flow_sender.h.

Referenced by set_update_vc().


The documentation for this class was generated from the following file: