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 from api_categorizer import APICategorizer | 5 from api_categorizer import APICategorizer |
6 from api_models import APIModels | 6 from api_models import APIModels |
7 from availability_finder import AvailabilityFinder | 7 from availability_finder import AvailabilityFinder |
8 from empty_dir_file_system import EmptyDirFileSystem | 8 from empty_dir_file_system import EmptyDirFileSystem |
9 from environment import IsDevServer | 9 from environment import IsDevServer |
10 from features_bundle import FeaturesBundle | 10 from features_bundle import FeaturesBundle |
11 from future import All | 11 from future import All |
12 from platform_util import GetPlatforms, PlatformToExtensionType | 12 from platform_util import GetPlatforms, PlatformToExtensionType |
13 from reference_resolver import ReferenceResolver | 13 from reference_resolver import ReferenceResolver |
14 from samples_model import SamplesModel | 14 from samples_model import SamplesModel |
| 15 from future import Future |
| 16 from process_schema import ProcessSchemaFactory |
15 | 17 |
16 | 18 |
17 class _PlatformData(object): | 19 class _PlatformData(object): |
18 def __init__(self): | 20 def __init__(self): |
19 self.features_bundle = None | 21 self.features_bundle = None |
20 self.api_models = None | 22 self.api_models = None |
21 self.reference_resolver = None | 23 self.reference_resolver = None |
22 self.availability_finder = None | 24 self.availability_finder = None |
23 self.api_categorizer = None | 25 self.api_categorizer = None |
24 self.samples_model = None | 26 self.samples_model = None |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 | 77 |
76 def GetAPIModels(self, platform): | 78 def GetAPIModels(self, platform): |
77 if self._platform_data[platform].api_models is None: | 79 if self._platform_data[platform].api_models is None: |
78 # TODO(danielj41): Filter APIModels data here rather than passing the | 80 # TODO(danielj41): Filter APIModels data here rather than passing the |
79 # platform. | 81 # platform. |
80 self._platform_data[platform].api_models = APIModels( | 82 self._platform_data[platform].api_models = APIModels( |
81 self.GetFeaturesBundle(platform), | 83 self.GetFeaturesBundle(platform), |
82 self._compiled_fs_factory, | 84 self._compiled_fs_factory, |
83 self._host_fs_at_trunk, | 85 self._host_fs_at_trunk, |
84 self._object_store_creator, | 86 self._object_store_creator, |
85 platform) | 87 platform, |
| 88 ProcessSchemaFactory( |
| 89 Future(callback=lambda: self.GetReferenceResolver(platform)), |
| 90 Future(callback=lambda: self.GetAPIModels(platform)), |
| 91 Future(callback=lambda: self.GetFeaturesBundle(platform)), |
| 92 self._compiled_fs_factory, |
| 93 self._host_fs_at_trunk)) |
86 return self._platform_data[platform].api_models | 94 return self._platform_data[platform].api_models |
87 | 95 |
88 def GetReferenceResolver(self, platform): | 96 def GetReferenceResolver(self, platform): |
89 if self._platform_data[platform].reference_resolver is None: | 97 if self._platform_data[platform].reference_resolver is None: |
90 self._platform_data[platform].reference_resolver = ReferenceResolver( | 98 self._platform_data[platform].reference_resolver = ReferenceResolver( |
91 self.GetAPIModels(platform), | 99 self.GetAPIModels(platform), |
92 self._object_store_creator.Create(ReferenceResolver, | 100 self._object_store_creator.Create(ReferenceResolver, |
93 category=platform)) | 101 category=platform)) |
94 return self._platform_data[platform].reference_resolver | 102 return self._platform_data[platform].reference_resolver |
95 | 103 |
96 def GetAvailabilityFinder(self, platform): | 104 def GetAvailabilityFinder(self, platform): |
97 if self._platform_data[platform].availability_finder is None: | 105 if self._platform_data[platform].availability_finder is None: |
98 self._platform_data[platform].availability_finder = AvailabilityFinder( | 106 self._platform_data[platform].availability_finder = AvailabilityFinder( |
99 self._branch_utility, | 107 self._branch_utility, |
100 self._compiled_fs_factory, | 108 self._compiled_fs_factory, |
101 self._host_file_system_iterator, | 109 self._host_file_system_iterator, |
102 self._host_fs_at_trunk, | 110 self._host_fs_at_trunk, |
103 self._object_store_creator, | 111 self._object_store_creator, |
104 platform) | 112 platform, |
| 113 ProcessSchemaFactory( |
| 114 Future(callback=lambda: self.GetReferenceResolver(platform)), |
| 115 Future(callback=lambda: self.GetAPIModels(platform)), |
| 116 Future(callback=lambda: self.GetFeaturesBundle(platform)), |
| 117 self._compiled_fs_factory, |
| 118 self._host_fs_at_trunk)) |
105 return self._platform_data[platform].availability_finder | 119 return self._platform_data[platform].availability_finder |
106 | 120 |
107 def GetAPICategorizer(self, platform): | 121 def GetAPICategorizer(self, platform): |
108 if self._platform_data[platform].api_categorizer is None: | 122 if self._platform_data[platform].api_categorizer is None: |
109 self._platform_data[platform].api_categorizer = APICategorizer( | 123 self._platform_data[platform].api_categorizer = APICategorizer( |
110 self._host_fs_at_trunk, | 124 self._host_fs_at_trunk, |
111 self._compiled_fs_factory, | 125 self._compiled_fs_factory, |
112 platform) | 126 platform) |
113 return self._platform_data[platform].api_categorizer | 127 return self._platform_data[platform].api_categorizer |
114 | 128 |
115 def Cron(self): | 129 def Cron(self): |
116 return All(self.GetAPIModels(platform).Cron() | 130 return All(self.GetAPIModels(platform).Cron() |
117 for platform in self._platform_data) | 131 for platform in self._platform_data) |
118 | 132 |
119 def GetIdentity(self): | 133 def GetIdentity(self): |
120 return self._host_fs_at_trunk.GetIdentity() | 134 return self._host_fs_at_trunk.GetIdentity() |
OLD | NEW |