OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MOJO_PACKAGE_MANAGER_PACKAGE_MANAGER_APPLICATION_H_ | 5 #ifndef MOJO_PACKAGE_MANAGER_PACKAGE_MANAGER_APPLICATION_H_ |
6 #define MOJO_PACKAGE_MANAGER_PACKAGE_MANAGER_APPLICATION_H_ | 6 #define MOJO_PACKAGE_MANAGER_PACKAGE_MANAGER_APPLICATION_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 | 10 |
11 #include "mojo/public/cpp/application/application_delegate.h" | 11 #include "mojo/public/cpp/application/application_delegate.h" |
12 #include "mojo/public/cpp/application/interface_factory.h" | 12 #include "mojo/public/cpp/application/interface_factory.h" |
13 #include "mojo/public/cpp/system/macros.h" | 13 #include "mojo/public/cpp/system/macros.h" |
14 #include "mojo/services/network/public/interfaces/network_service.mojom.h" | 14 #include "mojo/services/network/public/interfaces/network_service.mojom.h" |
15 #include "mojo/tools/package_manager/package_fetcher.h" | 15 #include "mojo/tools/package_manager/package_fetcher.h" |
16 | 16 |
17 namespace mojo { | 17 namespace mojo { |
18 | 18 |
19 class Manifest; | 19 class Manifest; |
20 | 20 |
21 class PackageManagerApplication | 21 class PackageManagerApplication |
22 : public ApplicationDelegate, | 22 : public ApplicationDelegate, |
23 public PackageFetcherDelegate { | 23 public PackageFetcherDelegate { |
24 public: | 24 public: |
25 PackageManagerApplication(); | 25 PackageManagerApplication(); |
26 virtual ~PackageManagerApplication(); | 26 ~PackageManagerApplication() override; |
27 | 27 |
28 private: | 28 private: |
29 struct PendingLoad { | 29 struct PendingLoad { |
30 PendingLoad(); | 30 PendingLoad(); |
31 ~PendingLoad(); | 31 ~PendingLoad(); |
32 | 32 |
33 scoped_ptr<PackageFetcher> fetcher; | 33 scoped_ptr<PackageFetcher> fetcher; |
34 }; | 34 }; |
35 typedef std::map<GURL, PendingLoad*> PendingLoadMap; | 35 typedef std::map<GURL, PendingLoad*> PendingLoadMap; |
36 | 36 |
37 void StartLoad(const GURL& url); | 37 void StartLoad(const GURL& url); |
38 | 38 |
39 void LoadDeps(const Manifest& manifest); | 39 void LoadDeps(const Manifest& manifest); |
40 | 40 |
41 // Deletes the pending load entry for the given URL and possibly exits the | 41 // Deletes the pending load entry for the given URL and possibly exits the |
42 // message loop if all loads are done. | 42 // message loop if all loads are done. |
43 void PendingLoadComplete(const GURL& url); | 43 void PendingLoadComplete(const GURL& url); |
44 | 44 |
45 // ApplicationDelegate implementation. | 45 // ApplicationDelegate implementation. |
46 virtual void Initialize(ApplicationImpl* app) override; | 46 void Initialize(ApplicationImpl* app) override; |
47 | 47 |
48 // PackageFetcher. | 48 // PackageFetcher. |
49 virtual void FetchSucceeded(const GURL& url, | 49 void FetchSucceeded(const GURL& url, |
50 const base::FilePath& name) override; | 50 const base::FilePath& name) override; |
51 virtual void FetchFailed(const GURL& url) override; | 51 void FetchFailed(const GURL& url) override; |
52 | 52 |
53 mojo::NetworkServicePtr network_service_; | 53 mojo::NetworkServicePtr network_service_; |
54 | 54 |
55 PendingLoadMap pending_; // Owning pointers. | 55 PendingLoadMap pending_; // Owning pointers. |
56 std::set<GURL> completed_; | 56 std::set<GURL> completed_; |
57 | 57 |
58 MOJO_DISALLOW_COPY_AND_ASSIGN(PackageManagerApplication); | 58 MOJO_DISALLOW_COPY_AND_ASSIGN(PackageManagerApplication); |
59 }; | 59 }; |
60 | 60 |
61 } // namespace mojo | 61 } // namespace mojo |
62 | 62 |
63 #endif // MOJO_PACKAGE_MANAGER_PACKAGE_MANAGER_APPLICATION_H | 63 #endif // MOJO_PACKAGE_MANAGER_PACKAGE_MANAGER_APPLICATION_H |
OLD | NEW |