@@ -75,9 +75,11 @@ template <typename T>
75
75
template <typename VcT, typename MsgT, ActiveVrtTypedFnType<MsgT, VcT> *f>
76
76
/* static*/ bool SeqMatcherVirtual<VcT, MsgT, f>::hasMatchingMsg(TagType const & tag) {
77
77
if (tag == no_tag) {
78
+ #pragma sst global seq_msg
78
79
auto & lst = SeqStateVirtualType<VcT, MsgT, f>::seq_msg;
79
80
return hasMatchingAnyNoTag (lst);
80
81
} else {
82
+ #pragma sst global seq_msg_tagged
81
83
auto & tagged_lst = SeqStateVirtualType<VcT, MsgT, f>::seq_msg_tagged;
82
84
return hasMatchingAnyTagged (tagged_lst, tag);
83
85
}
@@ -86,9 +88,11 @@ template <typename VcT, typename MsgT, ActiveVrtTypedFnType<MsgT, VcT> *f>
86
88
template <typename VcT, typename MsgT, ActiveVrtTypedFnType<MsgT, VcT> *f>
87
89
/* static*/ MsgT* SeqMatcherVirtual<VcT, MsgT, f>::getMatchingMsg(TagType const & tag) {
88
90
if (tag == no_tag) {
91
+ #pragma sst global seq_msg
89
92
auto & lst = SeqStateVirtualType<VcT, MsgT, f>::seq_msg;
90
93
return getMatchingAnyNoTag (lst);
91
94
} else {
95
+ #pragma sst global seq_msg_tagged
92
96
auto & tagged_lst = SeqStateVirtualType<VcT, MsgT, f>::seq_msg_tagged;
93
97
return getMatchingAnyTagged (tagged_lst, tag);
94
98
}
@@ -97,9 +101,11 @@ template <typename VcT, typename MsgT, ActiveVrtTypedFnType<MsgT, VcT> *f>
97
101
template <typename VcT, typename MsgT, ActiveVrtTypedFnType<MsgT, VcT> *f>
98
102
/* static*/ bool SeqMatcherVirtual<VcT, MsgT, f>::hasMatchingAction(TagType const & tag) {
99
103
if (tag == no_tag) {
104
+ #pragma sst global seq_action
100
105
auto & lst = SeqStateVirtualType<VcT, MsgT, f>::seq_action;
101
106
return hasMatchingAnyNoTag (lst);
102
107
} else {
108
+ #pragma sst global seq_action_tagged
103
109
auto & tagged_lst = SeqStateVirtualType<VcT, MsgT, f>::seq_action_tagged;
104
110
return hasMatchingAnyTagged (tagged_lst, tag);
105
111
}
@@ -111,9 +117,11 @@ SeqMatcherVirtual<VcT, MsgT, f>::getMatchingAction(TagType const& tag) {
111
117
assert (hasMatchingAction (tag) and " Must have matching action" );
112
118
113
119
if (tag == no_tag) {
120
+ #pragma sst global seq_action
114
121
auto & lst = SeqStateVirtualType<VcT, MsgT, f>::seq_action;
115
122
return getMatchingAnyNoTag (lst);
116
123
} else {
124
+ #pragma sst global seq_action_tagged
117
125
auto & tagged_lst = SeqStateVirtualType<VcT, MsgT, f>::seq_action_tagged;
118
126
return getMatchingAnyTagged (tagged_lst, tag);
119
127
}
@@ -124,8 +132,10 @@ template <typename VcT, typename MsgT, ActiveVrtTypedFnType<MsgT, VcT> *f>
124
132
MsgT* msg, TagType const & tag
125
133
) {
126
134
if (tag == no_tag) {
135
+ #pragma sst global seq_msg
127
136
SeqStateVirtualType<VcT, MsgT, f>::seq_msg.push_back (msg);
128
137
} else {
138
+ #pragma sst global seq_msg_tagged
129
139
SeqStateVirtualType<VcT, MsgT, f>::seq_msg_tagged[tag].push_back (msg);
130
140
}
131
141
}
@@ -141,9 +151,11 @@ template <typename FnT>
141
151
);
142
152
143
153
if (tag == no_tag) {
154
+ #pragma sst global seq_action
144
155
auto & lst = SeqStateVirtualType<VcT, MsgT, f>::seq_action;
145
156
lst.emplace_back (SeqActionType{seq_id,action});
146
157
} else {
158
+ #pragma sst global seq_action_tagged
147
159
auto & tagged_lst = SeqStateVirtualType<VcT, MsgT, f>::seq_action_tagged;
148
160
tagged_lst[tag].emplace_back (SeqActionType{seq_id,action});
149
161
}
0 commit comments