| Index: athena/content/public/app_registry.h
|
| diff --git a/athena/content/public/app_registry.h b/athena/content/public/app_registry.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c296f2e3b780c2f80746355519747b73a4789609
|
| --- /dev/null
|
| +++ b/athena/content/public/app_registry.h
|
| @@ -0,0 +1,72 @@
|
| +// Copyright 2014 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 ATHENA_CONTENT_PUBLIC_APP_REGISTRY_H_
|
| +#define ATHENA_CONTENT_PUBLIC_APP_REGISTRY_H_
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "athena/athena_export.h"
|
| +#include "base/macros.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +
|
| +namespace content {
|
| +class BrowserContext;
|
| +}
|
| +
|
| +namespace athena {
|
| +
|
| +class AppActivityRegistry;
|
| +class AppContentControlDelegate;
|
| +class AppRegistryImpl;
|
| +
|
| +// This class holds for each application, held by a user, a list of activities.
|
| +// The list of activities can be retrieved as |AppActivityRegistry|. It is used
|
| +// to associate activities with applications and allow the resource manager to
|
| +// (re)start and stop applications.
|
| +class ATHENA_EXPORT AppRegistry {
|
| + public:
|
| + // Creates the AppRegistry instance.
|
| + static void Create();
|
| +
|
| + // Gets the instance of the controller.
|
| + static AppRegistry* Get();
|
| +
|
| + // Shuts down the registry (all applications should be shut down by then).
|
| + static void ShutDown();
|
| +
|
| + // Overrides the used AppContentDelegate. This function will own it
|
| + // afterwards. A value of NULL is invalid.
|
| + virtual void SetDelegate(AppContentControlDelegate* delegate) = 0;
|
| +
|
| + // Retrieves the application content delegate. The ownership remains with this
|
| + // class.
|
| + virtual AppContentControlDelegate* GetDelegate() = 0;
|
| +
|
| + // Returns an |AppActivityRegistry| for a given activity |app_id| and
|
| + // |browser_context|.
|
| + virtual AppActivityRegistry* GetAppActivityRegistry(
|
| + const std::string& app_id,
|
| + content::BrowserContext* browser_context) = 0;
|
| +
|
| + // Returns the number of registered applications.
|
| + virtual int NumberOfApplications() const = 0;
|
| +
|
| + protected:
|
| + // Only the |AppActivityRegistry| can remove itself.
|
| + friend AppActivityRegistry;
|
| +
|
| + // Removes an activity registry for an application from the list of known
|
| + // applications.
|
| + virtual void RemoveAppActivityRegistry(AppActivityRegistry* registry) = 0;
|
| +
|
| + // Constructor and destructor can only be called by the implementing class.
|
| + AppRegistry();
|
| + virtual ~AppRegistry();
|
| +};
|
| +
|
| +} // namespace athena
|
| +
|
| +#endif // ATHENA_CONTENT_PUBLIC_APP_REGISTRY_H_
|
|
|