use enum with values log2(STATUS) for identifying status/listener
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
ba46cb1140
commit
54b5bed8d2
9 changed files with 103 additions and 71 deletions
|
@ -44,7 +44,7 @@ typedef void (*ddsi2direct_directread_cb_t) (const struct nn_rsample_info *sampl
|
|||
|
||||
typedef struct status_cb_data
|
||||
{
|
||||
uint32_t status;
|
||||
int raw_status_id;
|
||||
uint32_t extra;
|
||||
uint64_t handle;
|
||||
bool add;
|
||||
|
|
|
@ -1350,7 +1350,7 @@ static void writer_drop_connection (const struct nn_guid * wr_guid, const struct
|
|||
if (m != NULL && wr->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_PUBLICATION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_PUBLICATION_MATCHED_STATUS_ID;
|
||||
data.add = false;
|
||||
data.handle = prd->e.iid;
|
||||
(wr->status_cb) (wr->status_cb_entity, &data);
|
||||
|
@ -1378,7 +1378,7 @@ static void writer_drop_local_connection (const struct nn_guid *wr_guid, struct
|
|||
if (m != NULL && wr->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_PUBLICATION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_PUBLICATION_MATCHED_STATUS_ID;
|
||||
data.add = false;
|
||||
data.handle = rd->e.iid;
|
||||
(wr->status_cb) (wr->status_cb_entity, &data);
|
||||
|
@ -1412,10 +1412,10 @@ static void reader_drop_connection (const struct nn_guid *rd_guid, const struct
|
|||
data.add = false;
|
||||
data.handle = pwr->e.iid;
|
||||
|
||||
data.status = DDS_LIVELINESS_CHANGED_STATUS;
|
||||
data.raw_status_id = (int) DDS_LIVELINESS_CHANGED_STATUS_ID;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
|
||||
data.status = DDS_SUBSCRIPTION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_SUBSCRIPTION_MATCHED_STATUS_ID;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
}
|
||||
}
|
||||
|
@ -1447,10 +1447,10 @@ static void reader_drop_local_connection (const struct nn_guid *rd_guid, const s
|
|||
data.add = false;
|
||||
data.handle = wr->e.iid;
|
||||
|
||||
data.status = DDS_LIVELINESS_CHANGED_STATUS;
|
||||
data.raw_status_id = (int) DDS_LIVELINESS_CHANGED_STATUS_ID;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
|
||||
data.status = DDS_SUBSCRIPTION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_SUBSCRIPTION_MATCHED_STATUS_ID;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
}
|
||||
}
|
||||
|
@ -1587,7 +1587,7 @@ static void writer_add_connection (struct writer *wr, struct proxy_reader *prd)
|
|||
if (wr->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_PUBLICATION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_PUBLICATION_MATCHED_STATUS_ID;
|
||||
data.add = true;
|
||||
data.handle = prd->e.iid;
|
||||
(wr->status_cb) (wr->status_cb_entity, &data);
|
||||
|
@ -1667,7 +1667,7 @@ static void writer_add_local_connection (struct writer *wr, struct reader *rd)
|
|||
if (wr->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_PUBLICATION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_PUBLICATION_MATCHED_STATUS_ID;
|
||||
data.add = true;
|
||||
data.handle = rd->e.iid;
|
||||
(wr->status_cb) (wr->status_cb_entity, &data);
|
||||
|
@ -1730,7 +1730,7 @@ static void reader_add_connection (struct reader *rd, struct proxy_writer *pwr,
|
|||
if (rd->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_SUBSCRIPTION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_SUBSCRIPTION_MATCHED_STATUS_ID;
|
||||
data.add = true;
|
||||
data.handle = pwr->e.iid;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
|
@ -1765,10 +1765,10 @@ static void reader_add_local_connection (struct reader *rd, struct writer *wr)
|
|||
data.add = true;
|
||||
data.handle = wr->e.iid;
|
||||
|
||||
data.status = DDS_LIVELINESS_CHANGED_STATUS;
|
||||
data.raw_status_id = (int) DDS_LIVELINESS_CHANGED_STATUS_ID;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
|
||||
data.status = DDS_SUBSCRIPTION_MATCHED_STATUS;
|
||||
data.raw_status_id = (int) DDS_SUBSCRIPTION_MATCHED_STATUS_ID;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
}
|
||||
}
|
||||
|
@ -1875,7 +1875,7 @@ static void proxy_writer_add_connection (struct proxy_writer *pwr, struct reader
|
|||
if (rd->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_LIVELINESS_CHANGED_STATUS;
|
||||
data.raw_status_id = (int) DDS_LIVELINESS_CHANGED_STATUS_ID;
|
||||
data.add = true;
|
||||
data.handle = pwr->e.iid;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
|
@ -1997,7 +1997,7 @@ static void writer_qos_mismatch (struct writer * wr, uint32_t reason)
|
|||
if (wr->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_OFFERED_INCOMPATIBLE_QOS_STATUS;
|
||||
data.raw_status_id = (int) DDS_OFFERED_INCOMPATIBLE_QOS_STATUS_ID;
|
||||
data.extra = reason;
|
||||
(wr->status_cb) (wr->status_cb_entity, &data);
|
||||
}
|
||||
|
@ -2018,7 +2018,7 @@ static void reader_qos_mismatch (struct reader * rd, uint32_t reason)
|
|||
if (rd->status_cb)
|
||||
{
|
||||
status_cb_data_t data;
|
||||
data.status = DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS;
|
||||
data.raw_status_id = (int) DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS_ID;
|
||||
data.extra = reason;
|
||||
(rd->status_cb) (rd->status_cb_entity, &data);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue