try {
entity.enable();
} catch (RETCODE_ERROR err) {
System.out.println(
"*** Error: failed to enable entity");
}
int status_changes_list = entity.get_status_changes();
status_kind was changed since the last time it was cleared. A plain communication status change is cleared when the status is read using the entity's get_<plain communication status>() method. A read communication status change is cleared when the data is taken from the middleware via a TDataReader_take() call [see Changes in Status for details].
if ((status_changes_list & status_kind) != 0) {
return true; /* ... YES, status_kind changed ... */
} else {
return false; /* ... NO, status_kind did NOT change ... */
}
try {
entity.get_qos(qos);
} catch (RETCODE_ERROR err) {
System.out.println("***Error: failed to get qos\n");
}
/* Change the desired qos policies */
/* qos.policy.field = ... */
try {
entity.set_qos(qos);
} catch (RETCODE_IMMUTABLE_POLICY immutable) {
System.out.println(
"***Error: tried changing a policy that can only be" +
" set at entity creation time\n");
} catch (RETCODE_INCONSISTENT_POLICY inconsistent) {
System.out.println(
"***Error: tried changing a policy to a value inconsistent" +
" with other policy settings\n");
} catch (RETCODE_ERROR other) {
System.out.println(
"***Error: tried changing a policy that can only be" +
" set at entity creation time\n");
}
Once an entity has been created, its listener and/or the statuses for which it is enabled can be manipulated as follows.
/* ... methods defined by EntityListener ... */
public class MyEntityListener implements Listener {
// ... methods defined by EntityListener ...
}
entity_listener = entity.get_listener();
status_kind for the listener
enabled_status_list |= status_kind;
status_kind for the listener
enabled_status_list &= ~status_kind;
entity_listener using set_listener (abstract). Only enable the listener for the statuses specified by the enabled_status_list.
try {
entity.set_listener(entity_listener, enabled_status_list);
} catch (RETCODE_ERROR err) {
// respond to failure
}
Once an entity has been created, the list of statuses for which the DDS_StatusCondition is triggered can be manipulated as follows.
entity, a status_kind, and the associated status_condition:
statuscondition = entity.get_statuscondition();
status_condition
enabled_status_list = statuscondition.get_enabled_statuses();
status_kind is enabled for the status_condition
if ((enabled_status_list & status_kind) > 0) {
/*... YES, status_kind is enabled ... */
} else {
/* ... NO, status_kind is NOT enabled ... */
}
status_kind for the status_condition
try {
statuscondition.set_enabled_statuses(enabled_status_list | status_kind);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}
status_kind for the status_condition
try {
statuscondition.set_enabled_statuses(enabled_status_list & ~status_kind);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}