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"
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());
31 #endif // UI_OZONE_PLATFORM_OBJECT_INTERNAL_H_