Index: athena/activity/public/activity_manager.h |
diff --git a/athena/activity/public/activity_manager.h b/athena/activity/public/activity_manager.h |
index 3453fa96cb72e236bfe63db984bbafe44011d44c..9c6bff97381c75304ee556e866645b0930967e24 100644 |
--- a/athena/activity/public/activity_manager.h |
+++ b/athena/activity/public/activity_manager.h |
@@ -7,7 +7,9 @@ |
#include <vector> |
+#include "athena/activity/public/activity.h" |
#include "athena/athena_export.h" |
+#include "base/memory/scoped_ptr.h" |
namespace aura { |
class Window; |
@@ -18,7 +20,14 @@ namespace athena { |
class Activity; |
class ActivityManagerObserver; |
+struct ActivityDeleter { |
+ inline void operator()(Activity* activity) const { |
+ Activity::Delete(activity); |
+ } |
+}; |
+ |
using ActivityList = std::vector<Activity*>; |
+using ScopedActivity = scoped_ptr<Activity, ActivityDeleter>; |
// Manages a set of activities. |
class ATHENA_EXPORT ActivityManager { |
@@ -33,6 +42,9 @@ class ATHENA_EXPORT ActivityManager { |
virtual void AddActivity(Activity* activity) = 0; |
virtual void RemoveActivity(Activity* activity) = 0; |
+ virtual ScopedActivity ReplaceActivity(Activity* to_replace, |
+ Activity* replace_with) = 0; |
+ |
// Returns a list of activities, sorted in their activation order (the most |
// recently used activity is at the front of the returned list). |
virtual const ActivityList& GetActivityList() = 0; |