12 #ifndef SST_CORE_LINK_H 
   13 #define SST_CORE_LINK_H 
   15 #include "sst/core/sst_types.h" 
   17 #include "sst/core/event.h" 
   21 #define _LINK_DBG( fmt, args...) __DBG( DBG_LINK, Link, fmt, ## args ) 
   33         typedef enum { POLL, HANDLER, QUEUE } Type_t;
 
  146     void setAsConfigured() {
 
  150     bool isConfigured() {
 
  154 #ifdef __SST_DEBUG_EVENT_TRACKING__ 
  155     void setSendingComponentInfo(
const std::string& comp_in, 
const std::string& type_in, 
const std::string& port_in) {
 
  161     const std::string& getSendingComponentName() { 
return comp; }
 
  162     const std::string& getSendingComponentType() { 
return ctype; }
 
  163     const std::string& getSendingPort() { 
return port; }
 
  208     void setLatency(Cycle_t lat);
 
  210     void sendUntimedData_sync(
Event* data);
 
  211     void finalizeConfiguration();
 
  212     void prepareForComplete();
 
  218 #ifdef __SST_DEBUG_EVENT_TRACKING__ 
  240 #endif // SST_CORE_LINK_H 
Definition: syncManager.h:73
 
Definition: syncManager.h:113
 
Link(LinkId_t id)
Create a new link with a given ID. 
Definition: link.cc:36
 
Main control class for a SST Simulation. 
Definition: simulation.h:73
 
Self Links are links from a component to itself. 
Definition: link.h:227
 
A class to convert between a component's view of time and the core's view of time. 
Definition: timeConverter.h:25
 
void addRecvLatency(int cycles, const std::string &timebase)
Set additional Latency to be added on to events coming in on this link. 
Definition: link.cc:108
 
void sendUntimedData(Event *data)
Send data during the init() phase. 
Definition: link.cc:162
 
void send(SimTime_t delay, TimeConverter *tc, Event *event)
Send an event over the link with additional delay. 
Definition: link.cc:117
 
Event::HandlerBase * rFunctor
Receive functor. 
Definition: link.h:186
 
SimTime_t latency
Latency of the link. 
Definition: link.h:199
 
LinkId_t getId()
Return the ID of this link. 
Definition: link.h:129
 
Definition: syncManager.h:33
 
void setPolling()
Specifies that this link has no callback, and is poll-based only. 
Definition: link.cc:89
 
TimeConverter * defaultTimeBase
Timebase used if no other timebase is specified. 
Definition: link.h:193
 
ActivityQueue * recvQueue
Queue of events to be received by the owning component. 
Definition: link.h:171
 
void deliverEvent(Event *event) const 
Causes an event to be delivered to the registered callback. 
Definition: link.h:124
 
void addSendLatency(int cycles, const std::string &timebase)
Set additional Latency to be added to events being sent out of this link. 
Definition: link.cc:99
 
Link * pair_link
Pointer to the opposite side of this link. 
Definition: link.h:202
 
Definition: threadSync.h:35
 
Event * recv()
Retrieve a pending event from the Link. 
Definition: link.cc:141
 
Event * recvUntimedData()
Receive an event (if any) during the init() phase. 
Definition: link.cc:188
 
void setFunctor(Event::HandlerBase *functor)
Set the callback function to be called when a message is delivered. 
Definition: link.h:75
 
static ActivityQueue * uninitQueue
Uninitialized queue. 
Definition: link.h:177
 
void sendInitData(Event *init_data)
Send data during the complete() phase. 
Definition: link.h:137
 
void setDefaultTimeBase(TimeConverter *tc)
Manually set the default detaulTimeBase. 
Definition: link.cc:203
 
SyncBase defines the API for Sync objects, which are used to synchronize between MPI ranks in a simul...
Definition: syncBase.h:34
 
Defines a pair of links (to define a connected link) 
Definition: linkPair.h:24
 
Event * recvInitData()
Receive an event (if any) during the complete() phase. 
Definition: link.h:141
 
void send(SimTime_t delay, Event *event)
Send an event with additional delay. 
Definition: link.h:98
 
static ActivityQueue * afterInitQueue
Uninitialized queue. 
Definition: link.h:179
 
ActivityQueue * untimedQueue
Queue of events to be received during init by the owning component. 
Definition: link.h:173
 
Functor classes for Event handling. 
Definition: event.h:86
 
ActivityQueue * configuredQueue
Currently active Queue. 
Definition: link.h:175
 
Definition: componentInfo.h:36
 
Base Class for a queue of Activities. 
Definition: activityQueue.h:22
 
static ActivityQueue * afterRunQueue
Uninitialized queue. 
Definition: link.h:181
 
Base class for Events - Items sent across links to communicate between components. 
Definition: event.h:31
 
void send(Event *event)
Send an event with the Link's default delay. 
Definition: link.h:105
 
Link between two components. 
Definition: link.h:32
 
TimeConverter * getDefaultTimeBase()
Return the default Time Base for this link. 
Definition: link.cc:207