12 #ifndef SST_CORE_LINK_H 
   13 #define SST_CORE_LINK_H 
   15 #include "sst/core/event.h" 
   16 #include "sst/core/sst_types.h" 
   17 #include "sst/core/timeConverter.h" 
   21 #define _LINK_DBG(fmt, args...) __DBG(DBG_LINK, Link, fmt, ##args) 
   27 class Simulation_impl;
 
   34     enum Type_t : uint16_t { POLL, HANDLER, SYNC, UNINITIALIZED };
 
   35     enum Mode_t : uint16_t { INIT, RUN, COMPLETE };
 
  169 #ifdef __SST_DEBUG_EVENT_TRACKING__ 
  170     void setSendingComponentInfo(
const std::string& comp_in, 
const std::string& type_in, 
const std::string& port_in)
 
  177     const std::string& getSendingComponentName() { 
return comp; }
 
  178     const std::string& getSendingComponentType() { 
return ctype; }
 
  179     const std::string& getSendingPort() { 
return port; }
 
  186     void setAsSyncLink() { type = SYNC; }
 
  242     SimTime_t& current_time;
 
  270     void setLatency(Cycle_t lat);
 
  272     void sendUntimedData_sync(
Event* data);
 
  273     void finalizeConfiguration();
 
  274     void prepareForComplete();
 
  277 #ifdef __SST_DEBUG_EVENT_TRACKING__ 
  298 #endif // SST_CORE_LINK_H 
Definition: syncManager.h:114
Definition: ssthandler.h:100
Self Links are links from a component to itself. 
Definition: link.h:285
A class to convert between a component's view of time and the core's view of time. 
Definition: timeConverter.h:26
Definition: syncManager.h:32
bool isConfigured()
Return whether link has been configured. 
Definition: link.h:167
void setDeliveryInfo(uintptr_t info)
Set the delivery_info for the link. 
Definition: link.h:191
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:158
void sendUntimedData(Event *data)
Send data during the init() or complete() phase. 
Definition: link.cc:248
void send(SimTime_t delay, TimeConverter *tc, Event *event)
Send an event over the link with additional delay. 
Definition: link.h:92
SimTime_t convertToCoreTime(SimTime_t time) const 
Converts from the component's view to the core's view of time. 
Definition: timeConverter.h:36
SimTime_t latency
Latency of the link. 
Definition: link.h:234
LinkId_t getId()
Return the ID of this link. 
Definition: link.h:138
SimTime_t defaultTimeBase
Timebase used if no other timebase is specified. 
Definition: link.h:228
void replaceFunctor(Event::HandlerBase *functor)
Replace the callback function to be called when a message is delivered. 
Definition: link.cc:183
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:145
Link * pair_link
Pointer to the opposite side of this link. 
Definition: link.h:237
Definition: syncManager.h:75
Event * recv()
Retrieve a pending event from the Link. 
Definition: link.cc:226
Event * recvUntimedData()
Receive an event (if any) during the init() or complete() phase. 
Definition: link.cc:278
void setFunctor(Event::HandlerBase *functor)
Set the callback function to be called when a message is delivered. 
Definition: link.cc:171
void send_impl(SimTime_t delay, Event *event)
Send an event over the link with additional delay. 
Definition: link.cc:196
void sendInitData(Event *init_data)
Send data during the init() or complete() phase. 
Definition: link.h:155
Main control class for a SST Simulation. 
Definition: simulation_impl.h:75
void setDefaultTimeBase(TimeConverter *tc)
Manually set the default detaulTimeBase. 
Definition: link.cc:294
Main component object for the simulation. 
Definition: baseComponent.h:49
Defines a pair of links (to define a connected link) 
Definition: linkPair.h:23
Event * recvInitData()
Receive an event (if any) during the init() or complete() phase. 
Definition: link.h:162
void send(SimTime_t delay, Event *event)
Send an event with additional delay. 
Definition: link.h:103
uintptr_t delivery_info
Holds the delivery information. 
Definition: link.h:221
ActivityQueue * send_queue
Queue of events to be received by the owning component. 
Definition: link.h:211
Definition: componentInfo.h:39
Base Class for a queue of Activities. 
Definition: activityQueue.h:21
Base class for Events - Items sent across links to communicate between components. 
Definition: event.h:34
void send(Event *event)
Send an event with the Link's default delay. 
Definition: link.h:108
Link between two components. 
Definition: link.h:32
TimeConverter * getDefaultTimeBase()
Return the default Time Base for this link. 
Definition: link.cc:303