-
Guillaume Roguez authored
This is a major patch about refactoring all CallState/ConnectionState over call and subclasses. Please read carefully this message, it's about how to use the code. First, this patch brings a central way to store both Call class states members: only Call::setState() (and overloaded) has to be used now. De-facto we use it to emit to the client the StateChange call signal, and remove this emit spread over the code. A check is also made to not emit it if the resulting client state doesn't change for the given CallState/ConnectionState input pair. So using this signal elsewhere is stricly forbidden now. Then, a code cleanup has been made to had missing setState() calls and check the global business logic about these states changes. I hope this cleanup is correct (almost as good as before). State transaction logic is, as before, checked by Call::validTransition. Please modify it if state machine needs to be changed. Also modify Call::getStateStr() to implements daemon->client translated state machine. Note: no API changes in this patch. Only behavior changes. Refs #76646 Change-Id: Iecaedc2cad89b9afdc886f978bbf5f247cbe36bb Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
4d3c4439