Cpp bindings: add typedef for callbacks.
BUG=None
TEST=None
R=jamesr@chromium.org
Review URL: https://codereview.chromium.org/884043003
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl
index 30d20d8..25c01bb 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl
@@ -14,19 +14,19 @@
public:
static const char* Name_;
- typedef {{interface.name}}Proxy Proxy_;
- typedef {{interface.name}}Stub Stub_;
+ using Proxy_ = {{interface.name}}Proxy;
+ using Stub_ = {{interface.name}}Stub;
- typedef {{interface.name}}RequestValidator RequestValidator_;
+ using RequestValidator_ = {{interface.name}}RequestValidator;
{%- if interface|has_callbacks %}
- typedef {{interface.name}}ResponseValidator ResponseValidator_;
+ using ResponseValidator_ = {{interface.name}}ResponseValidator;
{%- else %}
- typedef mojo::PassThroughFilter ResponseValidator_;
+ using ResponseValidator_ = mojo::PassThroughFilter;
{%- endif %}
{% if interface.client %}
- typedef {{interface.client}} Client;
+ using Client = {{interface.client}};
{% else %}
- typedef mojo::NoInterface Client;
+ using Client = mojo::NoInterface;
{% endif %}
{#--- Constants #}
@@ -44,6 +44,9 @@
virtual ~{{interface.name}}() {}
{%- for method in interface.methods %}
+{% if method.response_parameters != None %}
+ using {{method.name}}Callback = {{interface_macros.declare_callback(method)}};
+{%- endif %}
virtual void {{method.name}}({{interface_macros.declare_request_params("", method)}}) = 0;
{%- endfor %}
};
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
index fdbe8ca..2b45808 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
@@ -104,12 +104,12 @@
: public mojo::MessageReceiver {
public:
{{class_name}}_{{method.name}}_ForwardToCallback(
- const {{interface_macros.declare_callback(method)}}& callback)
+ const {{class_name}}::{{method.name}}Callback& callback)
: callback_(callback) {
}
virtual bool Accept(mojo::Message* message) override;
private:
- {{interface_macros.declare_callback(method)}} callback_;
+ {{class_name}}::{{method.name}}Callback callback_;
MOJO_DISALLOW_COPY_AND_ASSIGN({{class_name}}_{{method.name}}_ForwardToCallback);
};
bool {{class_name}}_{{method.name}}_ForwardToCallback::Accept(
@@ -175,7 +175,7 @@
{%- set params_description =
"%s.%s response"|format(interface.name, method.name) %}
class {{class_name}}_{{method.name}}_ProxyToResponder
- : public {{interface_macros.declare_callback(method)}}::Runnable {
+ : public {{class_name}}::{{method.name}}Callback::Runnable {
public:
virtual ~{{class_name}}_{{method.name}}_ProxyToResponder() {
delete responder_;
@@ -257,10 +257,10 @@
message->mutable_payload());
params->DecodePointersAndHandles(message->mutable_handles());
- {{interface_macros.declare_callback(method)}}::Runnable* runnable =
+ {{class_name}}::{{method.name}}Callback::Runnable* runnable =
new {{class_name}}_{{method.name}}_ProxyToResponder(
message->request_id(), responder);
- {{interface_macros.declare_callback(method)}} callback(runnable);
+ {{class_name}}::{{method.name}}Callback callback(runnable);
{{alloc_params(method.parameters)|indent(6)}}
// A null |sink_| typically means there is a missing call to
// InterfacePtr::set_client().
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_macros.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_macros.tmpl
index fbefce2..7644b2e 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/interface_macros.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_macros.tmpl
@@ -17,7 +17,7 @@
{%- macro declare_request_params(prefix, method) -%}
{{declare_params(prefix, method.parameters)}}
{%- if method.response_parameters != None -%}
-{%- if method.parameters %}, {% endif %}
-const {{declare_callback(method)}}& callback
+{%- if method.parameters %}, {% endif -%}
+const {{method.name}}Callback& callback
{%- endif -%}
{%- endmacro -%}
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
index 3da6c32..25449b7 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
@@ -40,16 +40,16 @@
{#--- Interface Forward Declarations -#}
{% for interface in interfaces %}
class {{interface.name}};
-typedef mojo::InterfacePtr<{{interface.name}}> {{interface.name}}Ptr;
+using {{interface.name}}Ptr = mojo::InterfacePtr<{{interface.name}}>;
{% endfor %}
{#--- Struct Forward Declarations -#}
{% for struct in structs %}
class {{struct.name}};
{% if struct|should_inline %}
-typedef mojo::InlinedStructPtr<{{struct.name}}> {{struct.name}}Ptr;
+using {{struct.name}}Ptr = mojo::InlinedStructPtr<{{struct.name}}>;
{% else %}
-typedef mojo::StructPtr<{{struct.name}}> {{struct.name}}Ptr;
+using {{struct.name}}Ptr = mojo::StructPtr<{{struct.name}}>;
{% endif %}
{% endfor %}
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl
index 25b39b3..ebcba7b 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl
@@ -1,7 +1,7 @@
class {{struct.name}} {
public:
- typedef internal::{{struct.name}}_Data Data_;
+ using Data_ = internal::{{struct.name}}_Data;
{#--- Constants #}
{%- for constant in struct.constants %}
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_declaration.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_declaration.tmpl
index 91ea7cf..0420c8d 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_declaration.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_declaration.tmpl
@@ -1,7 +1,7 @@
class {{union.name}} {
public:
- typedef internal::{{union.name}}_Data Data_;
- typedef Data_::{{union.name}}_Tag Tag;
+ using Data_ = internal::{{union.name}}_Data;
+ using Tag = Data_::{{union.name}}_Tag;
static {{union.name}}Ptr New();