| Index: extensions/renderer/api/display_source/display_source_session.h
|
| diff --git a/extensions/renderer/api/display_source/display_source_session.h b/extensions/renderer/api/display_source/display_source_session.h
|
| index 2c4053cb65e0e0d08bdb7dfdbf9f8a4599ff4f8b..548958ed2fc661dc5d9cedb0cc658810a94b69f8 100644
|
| --- a/extensions/renderer/api/display_source/display_source_session.h
|
| +++ b/extensions/renderer/api/display_source/display_source_session.h
|
| @@ -23,10 +23,10 @@ using DisplaySourceErrorType = api::display_source::ErrorType;
|
| // This class represents a generic display source session interface.
|
| class DisplaySourceSession {
|
| public:
|
| - using SinkIdCallback = base::Callback<void(int sink_id)>;
|
| + using CompletionCallback =
|
| + base::Callback<void(bool success, const std::string& error_description)>;
|
| using ErrorCallback =
|
| - base::Callback<void(int sink_id,
|
| - DisplaySourceErrorType error_type,
|
| + base::Callback<void(DisplaySourceErrorType error_type,
|
| const std::string& error_description)>;
|
|
|
| // State flow is ether:
|
| @@ -47,36 +47,43 @@ class DisplaySourceSession {
|
| // Starts the session.
|
| // The session state should be set to 'Establishing' immediately after this
|
| // method is called.
|
| - virtual void Start() = 0;
|
| + // |callback| : Called with 'success' flag set to 'true' if the session is
|
| + // successfully started (state should be set to 'Established')
|
| + //
|
| + // Called with 'success' flag set to 'false' if the session
|
| + // has failed to start (state should be set back to 'Idle').
|
| + // The 'error_description' argument contains description of
|
| + // an error that had caused the call falure.
|
| + virtual void Start(const CompletionCallback& callback) = 0;
|
|
|
| // Terminates the session.
|
| // The session state should be set to 'Terminating' immediately after this
|
| // method is called.
|
| - virtual void Terminate() = 0;
|
| + // |callback| : Called with 'success' flag set to 'true' if the session is
|
| + // successfully terminated (state should be set to 'Idle')
|
| + //
|
| + // Called with 'success' flag set to 'false' if the session
|
| + // could not terminate (state should not be modified).
|
| + // The 'error_description' argument contains description of
|
| + // an error that had caused the call falure.
|
| + virtual void Terminate(const CompletionCallback& callback) = 0;
|
|
|
| State state() const { return state_; }
|
|
|
| // Sets the callbacks invoked to inform about the session's state changes.
|
| // It is required to set the callbacks before the session is started.
|
| - // |started_callback| : Called when the session was actually started (state
|
| - // should be set to 'Established')
|
| - // |terminated_callback| : Called when the session was actually started (state
|
| + // |terminated_callback| : Called when session was terminated (state
|
| // should be set to 'Idle')
|
| // |error_callback| : Called if a fatal error has occured and the session
|
| - // either cannot be started (if was invoked in
|
| - // 'Establishing' state) or will be terminated soon for
|
| - // emergency reasons (if was invoked in 'Established'
|
| - // state).
|
| - void SetCallbacks(const SinkIdCallback& started_callback,
|
| - const SinkIdCallback& terminated_callback,
|
| - const ErrorCallback& error_callback);
|
| + // will be terminated soon for emergency reasons.
|
| + void SetNotificationCallbacks(const base::Closure& terminated_callback,
|
| + const ErrorCallback& error_callback);
|
|
|
| protected:
|
| DisplaySourceSession();
|
|
|
| State state_;
|
| - SinkIdCallback started_callback_;
|
| - SinkIdCallback terminated_callback_;
|
| + base::Closure terminated_callback_;
|
| ErrorCallback error_callback_;
|
|
|
| private:
|
|
|