RTC 1.0 NO IDEA Avatar
  1. OMG Issue

RTC — Component can't reset another component

  • Key: RTC-14
  • Legacy Issue Number: 10492
  • Status: closed  
  • Source: DECA ( Rick Warren)
  • Summary:

    Source: RTI (Rick Warren, [[MailTo(rick DOT warren AT SPAMFREE rti DOT com)]])

    Severity: Minor

    Disposition: Resolution Proposed

    Summary

    The message to reset a component will usually come from another component. If a component resets itself, it can know which context has the error, so there is no problem. But if a different component wants to reset it, there is no way for it to know which context is the correct one.

    Discussion

    Resolution

    I think we can solve this problem with a new method:

    ExecutionContext[] LifeCycle::get_contexts()

    The code would look something like this:

    ExecutionContext[] contexts = myComponent.get_contexts();
    //...
    if (contexts[i].get_component_state(myComponent) == ERROR_STATE)

    { myComponent.reset(contexts[i]); }

    The usage is demonstrated in the following sequence diagram (which also shows a proposed move of the reset() operation from the component itself to the execution context – thanks, Sakamoto-san):

    [attachment:rtc-reset-sequence.png]

    – RickWarren, 2006/12/1

    Revised Text

  • Reported: RTC 1.0b1 — Tue, 5 Dec 2006 05:00 GMT
  • Disposition: Resolved — RTC 1.0
  • Disposition Summary:

    It is already possible to determine the state of a component in a given context with the ExecutionContextOperations::get_component_state operation. Therefore, the only functionality that is missing is the ability to learn in which context(s) a component participates and which context is associated with which handle. Add operations to provide that information.
    The existing method RTObject::get_execution_context_services provides a subset of the functionality proposed here. It should be replaced with a more complete functionality.

  • Updated: Fri, 6 Mar 2015 20:58 GMT