Add AwDataReductionProxyManager
[chromium-blink-merge.git] / ui / ozone / platform_object_internal.h
blob68a42b35ba11ebc1f63f2232009ab39e941b1cbc
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.
5 #ifndef UI_OZONE_PLATFORM_OBJECT_INTERNAL_H_
6 #define UI_OZONE_PLATFORM_OBJECT_INTERNAL_H_
8 #include "ui/ozone/ozone_export.h"
9 #include "ui/ozone/platform_constructor_list.h"
10 #include "ui/ozone/platform_object.h"
11 #include "ui/ozone/platform_selection.h"
13 namespace ui {
15 template <class T>
16 scoped_ptr<T> PlatformObject<T>::Create() {
17 typedef typename PlatformConstructorList<T>::Constructor Constructor;
19 // Determine selected platform (from --ozone-platform flag, or default).
20 int platform = GetOzonePlatformId();
22 // Look up the constructor in the constructor list.
23 Constructor constructor = PlatformConstructorList<T>::kConstructors[platform];
25 // Call the constructor.
26 return make_scoped_ptr(constructor());
29 } // namespace ui
31 #endif // UI_OZONE_PLATFORM_OBJECT_INTERNAL_H_