Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: athena/activity/activity_manager_impl.cc

Issue 302683002: athena: Add the concept of Activity and related managers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 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 #include "athena/activity/public/activity_manager.h"
6
7 #include <algorithm>
8 #include <vector>
9
10 #include "athena/activity/public/activity_view_manager.h"
11 #include "base/logging.h"
12
13 namespace athena {
14
15 namespace {
16
17 class ActivityManagerImpl : public ActivityManager {
18 public:
19 ActivityManagerImpl() {}
20 virtual ~ActivityManagerImpl() {}
21
22 // ActivityManager:
23 virtual void AddActivity(Activity* activity) OVERRIDE {
24 CHECK(activities_.end() == std::find(activities_.begin(),
25 activities_.end(),
26 activity));
27 activities_.push_back(activity);
28 ActivityViewManager* manager = ActivityViewManager::Get();
29 manager->AddActivity(activity);
30 }
31
32 virtual void RemoveActivity(Activity* activity) OVERRIDE {
33 std::vector<Activity*>::iterator find = std::find(activities_.begin(),
34 activities_.end(),
35 activity);
36 if (find != activities_.end()) {
37 activities_.erase(find);
38
39 ActivityViewManager* manager = ActivityViewManager::Get();
40 manager->AddActivity(activity);
41 }
42 }
43
44 virtual void UpdateActivity(Activity* activity) OVERRIDE {
45 ActivityViewManager* manager = ActivityViewManager::Get();
46 manager->UpdateActivity(activity);
47 }
48
49 private:
50 std::vector<Activity*> activities_;
51
52 DISALLOW_COPY_AND_ASSIGN(ActivityManagerImpl);
53 };
54
55 static ActivityManagerImpl* g_instance;
oshima 2014/05/30 20:55:59 remove static and g_. (I'd like to use g_ only for
sadrul 2014/05/30 23:45:36 Done.
56
57 } // namespace
58
59 // static
60 ActivityManager* ActivityManager::Create() {
61 CHECK(!g_instance);
62 g_instance = new ActivityManagerImpl();
oshima 2014/05/30 20:55:59 can you assign/reset in ctor/dtor like other manag
sadrul 2014/05/30 23:45:36 Done.
63
64 ActivityViewManager::Create();
65
66 return g_instance;
67 }
68
69 ActivityManager* ActivityManager::Get() {
70 return g_instance;
71 }
72
73 void ActivityManager::Shutdown() {
74 ActivityViewManager::Shutdown();
75
76 CHECK(g_instance);
77 delete g_instance;
78 g_instance = NULL;
79 }
80
81 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698