MCPcopy Create free account
hub / github.com/RangeNetworks/openbts / handleRecursion

Method handleRecursion

Control/L3TranEntry.cpp:1568–1577  ·  view source on GitHub ↗

Note: handleRecursion returns a MachineStatus and is meant to be used when within a state machine. handleMachineStatus returns a bool and is the final status-handler called when all state machines have processed the current state to completion.

Source from the content-addressed store, hash-verified

1566// Note: handleRecursion returns a MachineStatus and is meant to be used when within a state machine.
1567// handleMachineStatus returns a bool and is the final status-handler called when all state machines have processed the current state to completion.
1568MachineStatus TranEntry::handleRecursion(MachineStatus status)
1569{
1570 while (status == MachineStatusPopMachine) { // return to previous procedure on stack
1571 // Special case: we do not return, we immediately invoke the popped-to method.
1572 delete tran()->tePopMachine();
1573 LOG(DEBUG) "popped to "<<currentProcedure()->debugName()<<" at state "<<currentProcedure()->mPopState;
1574 status = currentProcedure()->machineRunState(currentProcedure()->mPopState);
1575 }
1576 return status;
1577}
1578
1579// Return TRUE if the status indicates the message or whatever had a message handler, regardless of the success/fail result.
1580bool TranEntry::handleMachineStatus(MachineStatus status)

Callers 1

callMachStartMethod · 0.80

Calls 3

tePopMachineMethod · 0.80
debugNameMethod · 0.45
machineRunStateMethod · 0.45

Tested by

no test coverage detected