| Index: mojo/public/cpp/bindings/type_converter.h
|
| diff --git a/mojo/public/cpp/bindings/type_converter.h b/mojo/public/cpp/bindings/type_converter.h
|
| deleted file mode 100644
|
| index ff94cdadd3a463606a0fac650f4fbe5fde9b6a1f..0000000000000000000000000000000000000000
|
| --- a/mojo/public/cpp/bindings/type_converter.h
|
| +++ /dev/null
|
| @@ -1,92 +0,0 @@
|
| -// 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 MOJO_PUBLIC_CPP_BINDINGS_TYPE_CONVERTER_H_
|
| -#define MOJO_PUBLIC_CPP_BINDINGS_TYPE_CONVERTER_H_
|
| -
|
| -namespace mojo {
|
| -
|
| -// Specialize the following class:
|
| -// template <typename T, typename U> struct TypeConverter;
|
| -// to perform type conversion for Mojom-defined structs and arrays. Here, T is
|
| -// the target type; U is the input type.
|
| -//
|
| -// Specializations should implement the following interfaces:
|
| -// namespace mojo {
|
| -// template <>
|
| -// struct TypeConverter<X, Y> {
|
| -// static X Convert(const Y& input);
|
| -// };
|
| -// template <>
|
| -// struct TypeConverter<Y, X> {
|
| -// static Y Convert(const X& input);
|
| -// };
|
| -// }
|
| -//
|
| -// EXAMPLE:
|
| -//
|
| -// Suppose you have the following Mojom-defined struct:
|
| -//
|
| -// module geometry {
|
| -// struct Point {
|
| -// int32 x;
|
| -// int32 y;
|
| -// };
|
| -// }
|
| -//
|
| -// Now, imagine you wanted to write a TypeConverter specialization for
|
| -// gfx::Point. It might look like this:
|
| -//
|
| -// namespace mojo {
|
| -// template <>
|
| -// struct TypeConverter<geometry::PointPtr, gfx::Point> {
|
| -// static geometry::PointPtr Convert(const gfx::Point& input) {
|
| -// geometry::PointPtr result;
|
| -// result->x = input.x();
|
| -// result->y = input.y();
|
| -// return result.Pass();
|
| -// }
|
| -// };
|
| -// template <>
|
| -// struct TypeConverter<gfx::Point, geometry::PointPtr> {
|
| -// static gfx::Point Convert(const geometry::PointPtr& input) {
|
| -// return input ? gfx::Point(input->x, input->y) : gfx::Point();
|
| -// }
|
| -// };
|
| -// }
|
| -//
|
| -// With the above TypeConverter defined, it is possible to write code like this:
|
| -//
|
| -// void AcceptPoint(const geometry::PointPtr& input) {
|
| -// // With an explicit cast using the .To<> method.
|
| -// gfx::Point pt = input.To<gfx::Point>();
|
| -//
|
| -// // With an explicit cast using the static From() method.
|
| -// geometry::PointPtr output = geometry::Point::From(pt);
|
| -//
|
| -// // Inferring the input type using the ConvertTo helper function.
|
| -// gfx::Point pt2 = ConvertTo<gfx::Point>(input);
|
| -// }
|
| -//
|
| -template <typename T, typename U>
|
| -struct TypeConverter;
|
| -
|
| -// The following specialization is useful when you are converting between
|
| -// Array<POD> and std::vector<POD>.
|
| -template <typename T>
|
| -struct TypeConverter<T, T> {
|
| - static T Convert(const T& obj) { return obj; }
|
| -};
|
| -
|
| -// The following helper function is useful for shorthand. The compiler can infer
|
| -// the input type, so you can write:
|
| -// OutputType out = ConvertTo<OutputType>(input);
|
| -template <typename T, typename U>
|
| -inline T ConvertTo(const U& obj) {
|
| - return TypeConverter<T, U>::Convert(obj);
|
| -};
|
| -
|
| -} // namespace mojo
|
| -
|
| -#endif // MOJO_PUBLIC_CPP_BINDINGS_TYPE_CONVERTER_H_
|
|
|