Bug 38790 - Simplify Stream State machine
Summary: Simplify Stream State machine
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: tp-spec (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL:
Whiteboard: Call
Keywords: patch
Depends on:
Blocks:
 
Reported: 2011-06-29 19:36 UTC by David Laban
Modified: 2011-07-19 12:44 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

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.