12 #ifndef SST_CORE_LINKMAP_H
13 #define SST_CORE_LINKMAP_H
15 #include "sst/core/sst_types.h"
20 #include "sst/core/component.h"
21 #include "sst/core/link.h"
31 std::map<std::string,Link*> linkMap;
33 std::vector<std::string> selfPorts;
122 #if !SST_BUILDING_CORE
123 LinkMap() __attribute__ ((deprecated(
"LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {}
128 #if !SST_BUILDING_CORE
129 ~
LinkMap() __attribute__ ((deprecated(
"LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {
134 for ( std::map<std::string,Link*>::iterator it = linkMap.begin(); it != linkMap.end(); ++it ) {
154 #if !SST_BUILDING_CORE
155 void addSelfPort(
const std::string& name) __attribute__ ((deprecated(
"LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12.")))
160 selfPorts.push_back(name);
163 #if !SST_BUILDING_CORE
164 bool isSelfPort(
const std::string& name)
const __attribute__ ((deprecated(
"LinkMap class was not intended to be used otuside of SST Core and will be removed in SST 12."))) {
166 bool isSelfPort(
const std::string& name)
const {
168 for ( std::vector<std::string>::const_iterator i = selfPorts.begin() ; i != selfPorts.end() ; ++i ) {
179 #if !SST_BUILDING_CORE
180 void insertLink(
const std::string& name,
Link* link) __attribute__ ((deprecated(
"LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {
184 linkMap.insert(std::pair<std::string,Link*>(name,link));
187 #if !SST_BUILDING_CORE
188 void removeLink(
const std::string& name) __attribute__ ((deprecated(
"LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {
190 void removeLink(
const std::string& name) {
196 #if !SST_BUILDING_CORE
197 Link*
getLink(
const std::string& name) __attribute__ ((deprecated(
"LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {
207 std::map<std::string,Link*>::iterator it = linkMap.find(name);
208 if ( it == linkMap.end() )
return nullptr;
209 else return it->second;
216 #if !SST_BUILDING_CORE
217 bool empty() __attribute__ ((deprecated("
LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {
222 return linkMap.empty();
228 #if !SST_BUILDING_CORE
229 std::map<std::string,Link*>&
getLinkMap() __attribute__ ((deprecated("
LinkMap class was not intended to be used outside of SST Core and will be removed in SST 12."))) {
240 #endif // SST_CORE_LINKMAP_H
Maps port names to the Links that are connected to it.
Definition: linkMap.h:28
void insertLink(const std::string &name, Link *link)
Inserts a new pair of name and link into the map.
Definition: linkMap.h:180
std::map< std::string, Link * > & getLinkMap()
Return a reference to the internal map.
Definition: linkMap.h:229
void addSelfPort(const std::string &name)
Set the list of allowed port names from the ElementInfoPort.
Definition: linkMap.h:155
bool empty()
Checks to see if LinkMap is empty.
Definition: linkMap.h:217
Link * getLink(const std::string &name)
Returns a Link pointer for a given name.
Definition: linkMap.h:197
Link between two components.
Definition: link.h:32