Bug 38790

Summary: Simplify Stream State machine
Product: Telepathy Reporter: David Laban <david.laban>
Component: tp-specAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium CC: david.laban, olivier.crete
Version: unspecifiedKeywords: patch
Hardware: Other   
OS: All   
Whiteboard: Call
i915 platform: i915 features:

Description David Laban 2011-06-29 19:36:22 UTC
The state machine for Streams is stupidly complicated, because you have to care about state change reasons and call a different method depending on what state you've been asked to go into.

http://www.flickr.com/photos/26028700@N07/5885385136/ is simpler, where:
CM-requested changes are emitted in one signal (with no reason);
Successful state changes are reported in one method;
Failures are reported in another (with a reason that needs no interpreting by the CM);
Comment 1 David Laban 2011-06-29 19:45:09 UTC
http://cgit.collabora.com/git/user/alsuren/telepathy-spec.git/log/?h=stream-state-machine-38790 makes this change.

Note that the Sending_State in Call.Stream is different from Stream_Flow_State in Call.Stream.I.Media. (Media now has the concept of "Paused"). I'm not sure whether Paused makes sense in the context of SendingState.

Thoughts?
Comment 2 Olivier CrĂȘte 2011-06-30 11:29:26 UTC
The Complete*StateChange doc should make it clear that it can only go from a Pending state to the matching non-pending state. Otherwise, I think the branch is ++
Comment 3 Olivier CrĂȘte 2011-06-30 11:45:01 UTC
++ on updated branch
Comment 4 David Laban 2011-06-30 12:34:25 UTC
merged to alsuren/call
Comment 5 David Laban 2011-07-19 12:44:02 UTC
merged to master

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.