Skip to content
  • Guillaume Roguez's avatar
    call: states refactoring · 4d3c4439
    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: default avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
    4d3c4439