Upstream version 6.35.121.0
[platform/framework/web/crosswalk.git] / src / mojo / shell / context.h
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MOJO_SHELL_CONTEXT_H_
6 #define MOJO_SHELL_CONTEXT_H_
7
8 #include "mojo/service_manager/service_manager.h"
9 #include "mojo/shell/keep_alive.h"
10 #include "mojo/shell/loader.h"
11 #include "mojo/shell/storage.h"
12 #include "mojo/shell/task_runners.h"
13
14 #if defined(OS_ANDROID)
15 #include "base/android/scoped_java_ref.h"
16 #endif  // defined(OS_ANDROID)
17
18 namespace mojo {
19 namespace shell {
20
21 class DynamicServiceLoader;
22
23 // The "global" context for the shell's main process.
24 class Context {
25  public:
26   Context();
27   ~Context();
28
29   TaskRunners* task_runners() { return &task_runners_; }
30   Storage* storage() { return &storage_; }
31   Loader* loader() { return &loader_; }
32   ServiceManager* service_manager() { return &service_manager_; }
33   KeepAliveCounter* keep_alive_counter() { return &keep_alive_counter_; }
34
35 #if defined(OS_ANDROID)
36   jobject activity() const { return activity_.obj(); }
37   void set_activity(jobject activity) { activity_.Reset(NULL, activity); }
38 #endif  // defined(OS_ANDROID)
39
40  private:
41   TaskRunners task_runners_;
42   Storage storage_;
43   Loader loader_;
44   ServiceManager service_manager_;
45   scoped_ptr<DynamicServiceLoader> dynamic_service_loader_;
46
47 #if defined(OS_ANDROID)
48   base::android::ScopedJavaGlobalRef<jobject> activity_;
49 #endif  // defined(OS_ANDROID)
50
51   KeepAliveCounter keep_alive_counter_;
52
53   DISALLOW_COPY_AND_ASSIGN(Context);
54 };
55
56 }  // namespace shell
57 }  // namespace mojo
58
59 #endif  // MOJO_SHELL_CONTEXT_H_