summaryrefslogtreecommitdiffstats
path: root/remoting/client/client_context.h
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/client/client_context.h')
-rw-r--r--remoting/client/client_context.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/remoting/client/client_context.h b/remoting/client/client_context.h
new file mode 100644
index 0000000..03273fb
--- /dev/null
+++ b/remoting/client/client_context.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_CLIENT_CLIENT_CONTEXT_H_
+#define REMOTING_CLIENT_CLIENT_CONTEXT_H_
+
+#include <string>
+
+#include "base/thread.h"
+#include "remoting/jingle_glue/jingle_thread.h"
+
+namespace remoting {
+
+// A class that manages threads and running context for the chromoting client
+// process.
+class ClientContext {
+ public:
+ ClientContext();
+ virtual ~ClientContext();
+
+ void Start();
+ void Stop();
+
+ JingleThread* jingle_thread();
+ MessageLoop* jingle_message_loop();
+
+ MessageLoop* main_message_loop();
+ MessageLoop* decode_message_loop();
+
+ private:
+ // A thread that handles Jingle network operations (used in
+ // JingleHostConnection).
+ JingleThread jingle_thread_;
+
+ // A thread that handles capture rate control and sending data to the
+ // HostConnection.
+ base::Thread main_thread_;
+
+ // A thread that handles all decode operations.
+ base::Thread decode_thread_;
+
+ DISALLOW_COPY_AND_ASSIGN(ClientContext);
+};
+
+} // namespace remoting
+
+#endif // REMOTING_CLIENT_CLIENT_CONTEXT_H_