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>
22 #define _LINK_DBG( fmt, args...) __DBG( DBG_LINK, Link, fmt, ## args )
34 typedef enum { POLL, HANDLER, QUEUE } Type_t;
135 #ifdef __SST_DEBUG_EVENT_TRACKING__
136 void setSendingComponentInfo(
const std::string& comp_in,
const std::string& type_in,
const std::string& port_in) {
142 const std::string& getSendingComponentName() {
return comp; }
143 const std::string& getSendingComponentType() {
return ctype; }
144 const std::string& getSendingPort() {
return port; }
188 void sendUntimedData_sync(
Event* data);
189 void finalizeConfiguration();
190 void prepareForComplete();
195 #ifdef __SST_DEBUG_EVENT_TRACKING__
217 #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
void setLatency(Cycle_t lat)
set minimum link latency
Definition: link.cc:93
Main control class for a SST Simulation.
Definition: simulation.h:72
Self Links are links from a component to itself.
Definition: link.h:204
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:25
void sendUntimedData(Event *data)
Send data during the init() phase.
Definition: link.cc:151
void send(SimTime_t delay, TimeConverter *tc, Event *event)
Send an event over the link with additional delay.
Definition: link.cc:106
Event::HandlerBase * rFunctor
Receive functor.
Definition: link.h:167
SimTime_t latency
Latency of the link.
Definition: link.h:180
LinkId_t getId()
Return the ID of this link.
Definition: link.h:119
Definition: syncManager.h:33
void setPolling()
Specifies that this link has no callback, and is poll-based only.
Definition: link.cc:87
TimeConverter * defaultTimeBase
Timebase used if no other timebase is specified.
Definition: link.h:174
ActivityQueue * recvQueue
Queue of events to be received by the owning component.
Definition: link.h:152
void deliverEvent(Event *event) const
Causes an event to be delivered to the registered callback.
Definition: link.h:114
Link * pair_link
Pointer to the opposite side of this link.
Definition: link.h:183
Definition: threadSync.h:35
Event * recv()
Retrieve a pending event from the Link.
Definition: link.cc:130
Event * recvUntimedData()
Receive an event (if any) during the init() phase.
Definition: link.cc:177
void addRecvLatency(int cycles, std::string timebase)
Set additional Latency to be added on to events coming in on this link.
Definition: link.cc:97
void setFunctor(Event::HandlerBase *functor)
Set the callback function to be called when a message is delivered.
Definition: link.h:65
static ActivityQueue * uninitQueue
Uninitialized queue.
Definition: link.h:158
void sendInitData(Event *init_data)
Send data during the complete() phase.
Definition: link.h:127
void setDefaultTimeBase(TimeConverter *tc)
Manually set the default detaulTimeBase.
Definition: link.cc:192
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:131
void send(SimTime_t delay, Event *event)
Send an event with additional delay.
Definition: link.h:88
static ActivityQueue * afterInitQueue
Uninitialized queue.
Definition: link.h:160
ActivityQueue * untimedQueue
Queue of events to be received during init by the owning component.
Definition: link.h:154
Functor classes for Event handling.
Definition: event.h:86
ActivityQueue * configuredQueue
Currently active Queue.
Definition: link.h:156
Definition: componentInfo.h:34
Base Class for a queue of Activities.
Definition: activityQueue.h:22
static ActivityQueue * afterRunQueue
Uninitialized queue.
Definition: link.h:162
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:95
Link between two components.
Definition: link.h:33
TimeConverter * getDefaultTimeBase()
Return the default Time Base for this link.
Definition: link.cc:196