Index: remoting/host/desktop_environment.h |
diff --git a/remoting/host/desktop_environment.h b/remoting/host/desktop_environment.h |
index 74b1d8e71b0e833a2b8df4026204b78173d06c79..e02d694b4a44147535f7fc7b1ecf2b04c0ac6279 100644 |
--- a/remoting/host/desktop_environment.h |
+++ b/remoting/host/desktop_environment.h |
@@ -5,54 +5,39 @@ |
#ifndef REMOTING_HOST_DESKTOP_ENVIRONMENT_H_ |
#define REMOTING_HOST_DESKTOP_ENVIRONMENT_H_ |
-#include <string> |
- |
#include "base/basictypes.h" |
-#include "base/callback_forward.h" |
+#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
+namespace base { |
+class SingleThreadTaskRunner; |
+} // namespace base |
+ |
namespace remoting { |
class AudioCapturer; |
class EventExecutor; |
class VideoFrameCapturer; |
-namespace protocol { |
-class ClipboardStub; |
-} |
- |
+// Provides factory methods for creation of audio/video capturers and event |
+// executor for a given desktop environment. |
class DesktopEnvironment { |
public: |
- DesktopEnvironment(scoped_ptr<AudioCapturer> audio_capturer, |
- scoped_ptr<EventExecutor> event_executor, |
- scoped_ptr<VideoFrameCapturer> video_capturer); |
- virtual ~DesktopEnvironment(); |
- |
- AudioCapturer* audio_capturer() const { return audio_capturer_.get(); } |
- EventExecutor* event_executor() const { return event_executor_.get(); } |
- VideoFrameCapturer* video_capturer() const { return video_capturer_.get(); } |
- |
- // Starts the desktop environment passing |client_jid| of the attached |
- // authenticated session. Registers |client_clipboard| to receive |
- // notifications about local clipboard changes. |disconnect_callback| can be |
- // invoked by the DesktopEnvironment to request the client session to be |
- // disconnected. |disconnect_callback| is invoked on the same thread Start() |
- // has been called on. |
- virtual void Start( |
- scoped_ptr<protocol::ClipboardStub> client_clipboard, |
- const std::string& client_jid, |
- const base::Closure& disconnect_callback); |
+ DesktopEnvironment() {} |
Wez
2013/01/11 02:23:41
Do you need to declare a ctor explicitly here?
alexeypa (please no reviews)
2013/01/11 19:59:46
It is required because of DISALLOW_COPY_AND_ASSIGN
|
+ virtual ~DesktopEnvironment() {} |
+ |
+ // Factory methods used to create audio/video capturers and event executor for |
+ // a particular desktop environment. |
+ virtual scoped_ptr<AudioCapturer> CreateAudioCapturer( |
+ scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner) = 0; |
Wez
2013/01/11 02:23:41
nit: If you pass AutoThreadTaskRunner here then ca
Wez
2013/01/11 02:23:41
Why do you prefer to pass the TaskRunners to the D
alexeypa (please no reviews)
2013/01/11 19:59:46
Agree, but it should be done as a separate CL.
alexeypa (please no reviews)
2013/01/11 19:59:46
To avoid using more task runners then needed. If C
Wez
2013/01/12 01:58:06
SGTM!
Wez
2013/01/12 01:58:06
Ah, so you're thinking we would spawn the audio th
alexeypa (please no reviews)
2013/01/14 20:43:09
Potentially. Basically it strikes me that we keep
|
+ virtual scoped_ptr<EventExecutor> CreateEventExecutor( |
+ scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, |
+ scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) = 0; |
+ virtual scoped_ptr<VideoFrameCapturer> CreateVideoCapturer( |
+ scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, |
+ scoped_refptr<base::SingleThreadTaskRunner> encode_task_runner) = 0; |
private: |
- // Used to capture audio to deliver to clients. |
- scoped_ptr<AudioCapturer> audio_capturer_; |
- |
- // Executes input and clipboard events received from the client. |
- scoped_ptr<EventExecutor> event_executor_; |
- |
- // Used to capture video to deliver to clients. |
- scoped_ptr<VideoFrameCapturer> video_capturer_; |
- |
DISALLOW_COPY_AND_ASSIGN(DesktopEnvironment); |
}; |