Skip to content

Commit f2e0f86

Browse files
committed
Migrate (federated | delayed) connection.is_physical to enum
1 parent 2ce4aa8 commit f2e0f86

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

include/reactor-uc/connection.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ typedef struct DelayedConnection DelayedConnection;
1515
typedef struct Port Port;
1616
typedef struct Output Output;
1717

18+
typedef enum { LOGICAL_CONNECTION, PHYSICAL_CONNECTION } ConnectionType;
19+
1820
struct Connection {
1921
Trigger super;
2022
Port *upstream; // Single upstream port
@@ -39,13 +41,13 @@ void LogicalConnection_ctor(LogicalConnection *self, Reactor *parent, Port **dow
3941
struct DelayedConnection {
4042
Connection super;
4143
interval_t delay;
42-
bool is_physical;
44+
ConnectionType type;
4345
EventPayloadPool payload_pool;
4446
void *staged_payload_ptr;
4547
};
4648

4749
void DelayedConnection_ctor(DelayedConnection *self, Reactor *parent, Port **downstreams, size_t num_downstreams,
48-
interval_t delay, bool is_physical, size_t payload_size, void *payload_buf,
50+
interval_t delay, ConnectionType type, size_t payload_size, void *payload_buf,
4951
bool *payload_used_buf, size_t payload_buf_capacity);
5052

5153
#endif

include/reactor-uc/federated.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ void FederatedOutputConnection_ctor(FederatedOutputConnection *self, Reactor *pa
4545
// A single input connection to this federate. Has a single upstream port
4646
struct FederatedInputConnection {
4747
Connection super;
48-
interval_t delay; // The delay of this connection
49-
bool is_physical; // Is the connection physical?
48+
interval_t delay; // The delay of this connection
49+
ConnectionType type;
5050
tag_t last_known_tag; // The latest tag this input is known at.
5151
instant_t safe_to_assume_absent;
5252
EventPayloadPool payload_pool;
5353
int conn_id;
5454
void (*schedule)(FederatedInputConnection *self, TaggedMessage *msg);
5555
};
5656

57-
void FederatedInputConnection_ctor(FederatedInputConnection *self, Reactor *parent, interval_t delay, bool is_physical,
58-
Port **downstreams, size_t downstreams_size, void *payload_buf,
57+
void FederatedInputConnection_ctor(FederatedInputConnection *self, Reactor *parent, interval_t delay,
58+
ConnectionType type, Port **downstreams, size_t downstreams_size, void *payload_buf,
5959
bool *payload_used_buf, size_t payload_size, size_t payload_buf_capacity);
6060
#endif

src/connection.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ void DelayedConnection_cleanup(Trigger *trigger) {
117117
Scheduler *sched = &env->scheduler;
118118

119119
tag_t base_tag = ZERO_TAG;
120-
if (self->is_physical) {
120+
if (self->type == PHYSICAL_CONNECTION) {
121121
base_tag.time = env->get_physical_time(env);
122122
} else {
123123
base_tag = sched->current_tag;
@@ -146,12 +146,12 @@ void DelayedConnection_trigger_downstreams(Connection *_self, const void *value,
146146
}
147147

148148
void DelayedConnection_ctor(DelayedConnection *self, Reactor *parent, Port **downstreams, size_t num_downstreams,
149-
interval_t delay, bool is_physical, size_t payload_size, void *payload_buf,
149+
interval_t delay, ConnectionType type, size_t payload_size, void *payload_buf,
150150
bool *payload_used_buf, size_t payload_buf_capacity) {
151151

152152
self->delay = delay;
153153
self->staged_payload_ptr = NULL;
154-
self->is_physical = is_physical;
154+
self->type = type;
155155
EventPayloadPool_ctor(&self->payload_pool, payload_buf, payload_used_buf, payload_size, payload_buf_capacity);
156156
Connection_ctor(&self->super, TRIG_CONN_DELAYED, parent, downstreams, num_downstreams, &self->payload_pool,
157157
DelayedConnection_prepare, DelayedConnection_cleanup, DelayedConnection_trigger_downstreams);

src/federated.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ void FederatedInputConnection_cleanup(Trigger *trigger) {
9898
trigger->is_present = false;
9999
}
100100

101-
void FederatedInputConnection_ctor(FederatedInputConnection *self, Reactor *parent, interval_t delay, bool is_physical,
102-
Port **downstreams, size_t downstreams_size, void *payload_buf,
101+
void FederatedInputConnection_ctor(FederatedInputConnection *self, Reactor *parent, interval_t delay,
102+
ConnectionType type, Port **downstreams, size_t downstreams_size, void *payload_buf,
103103
bool *payload_used_buf, size_t payload_size, size_t payload_buf_capacity) {
104104
EventPayloadPool_ctor(&self->payload_pool, payload_buf, payload_used_buf, payload_size, payload_buf_capacity);
105105
Connection_ctor(&self->super, TRIG_CONN_FEDERATED_INPUT, parent, downstreams, downstreams_size, &self->payload_pool,
106106
FederatedInputConnection_prepare, FederatedInputConnection_cleanup, NULL);
107107
self->delay = delay;
108-
self->is_physical = is_physical;
108+
self->type = type;
109109
self->last_known_tag = NEVER_TAG;
110110
self->safe_to_assume_absent = FOREVER;
111111
}
@@ -124,7 +124,7 @@ void FederatedConnectionBundle_msg_received_cb(FederatedConnectionBundle *self,
124124
env->platform->enter_critical_section(env->platform);
125125

126126
tag_t base_tag = ZERO_TAG;
127-
if (input->is_physical) {
127+
if (input->type == PHYSICAL_CONNECTION) {
128128
base_tag.time = env->get_physical_time(env);
129129
} else {
130130
base_tag.time = msg->tag.time;

0 commit comments

Comments
 (0)