diff --git a/generator/main.py b/generator/main.py index 339bcb0dc0..0f58ed2838 100644 --- a/generator/main.py +++ b/generator/main.py @@ -444,16 +444,16 @@ def main(): if 'blink' in targets: js_params = {'native_methods': lambda typ: js_native_methods(api_params['types'], typ)} - renders.append(FileRender('blink/autogen.gni', 'autogen.gni', [base_params, api_params, js_params])) - renders.append(FileRender('blink/Objects.cpp', 'NXT.cpp', [base_params, api_params, js_params])) - renders.append(FileRender('blink/Forward.h', 'Forward.h', [base_params, api_params, js_params])) + renders.append(FileRender('autogen.gni', 'autogen.gni', [base_params, api_params, js_params])) + renders.append(FileRender('Objects.cpp', 'NXT.cpp', [base_params, api_params, js_params])) + renders.append(FileRender('Forward.h', 'Forward.h', [base_params, api_params, js_params])) for typ in api_params['by_category']['object']: file_prefix = 'NXT' + typ.name.CamelCase() params = [base_params, api_params, js_params, {'type': typ}] - renders.append(FileRender('blink/Object.h', file_prefix + '.h', params)) - renders.append(FileRender('blink/Object.idl', file_prefix + '.idl', params)) + renders.append(FileRender('Object.h', file_prefix + '.h', params)) + renders.append(FileRender('Object.idl', file_prefix + '.idl', params)) output_separator = '\n' if args.gn else ';' if args.print_dependencies: diff --git a/generator/templates/blink/Forward.h b/generator/templates/blink/Forward.h deleted file mode 100644 index ab52c40c23..0000000000 --- a/generator/templates/blink/Forward.h +++ /dev/null @@ -1,43 +0,0 @@ -//* Copyright 2017 The NXT Authors -//* -//* Licensed under the Apache License, Version 2.0 (the "License"); -//* you may not use this file except in compliance with the License. -//* You may obtain a copy of the License at -//* -//* http://www.apache.org/licenses/LICENSE-2.0 -//* -//* Unless required by applicable law or agreed to in writing, software -//* distributed under the License is distributed on an "AS IS" BASIS, -//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -//* See the License for the specific language governing permissions and -//* limitations under the License. - -#ifndef NXTForward_H -#define NXTForward_H - -namespace blink { - - {% for other_type in by_category["object"] %} - class NXT{{other_type.name.CamelCase()}}; - {% endfor %} - - class V8NXTDeviceErrorCallback; - using NXTDeviceErrorCallback = V8NXTDeviceErrorCallback*; - - class V8NXTBuilderErrorCallback; - using NXTBuilderErrorCallback = V8NXTBuilderErrorCallback*; - - class V8NXTBufferMapReadCallback; - using NXTBufferMapReadCallback = V8NXTBufferMapReadCallback*; - - using NXTCallbackUserdata = uint64_t; -} - -struct nxtProcTable_s; -typedef struct nxtProcTable_s nxtProcTable; - -{% for type in by_category["object"] %} - typedef struct {{as_cType(type.name)}}Impl* {{as_cType(type.name)}}; -{% endfor %} - -#endif //NXTForward_H diff --git a/generator/templates/blink/Object.h b/generator/templates/blink/Object.h deleted file mode 100644 index 8dd47f957d..0000000000 --- a/generator/templates/blink/Object.h +++ /dev/null @@ -1,101 +0,0 @@ -//* Copyright 2017 The NXT Authors -//* -//* Licensed under the Apache License, Version 2.0 (the "License"); -//* you may not use this file except in compliance with the License. -//* You may obtain a copy of the License at -//* -//* http://www.apache.org/licenses/LICENSE-2.0 -//* -//* Unless required by applicable law or agreed to in writing, software -//* distributed under the License is distributed on an "AS IS" BASIS, -//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -//* See the License for the specific language governing permissions and -//* limitations under the License. - -{% macro blinkType(type) -%} - {%- if type.category == "object" -%} - NXT{{type.name.CamelCase()}}* - {%- elif type.category == "enum" or type.category == "bitmask" -%} - uint32_t - {%- elif type.category == "natively defined" -%} - NXT{{type.name.CamelCase()}} - {%- else -%} - {{as_cType(type.name)}} - {%- endif -%} -{%- endmacro %} - -{% set Class = "NXT" + type.name.CamelCase() %} - -#ifndef {{Class}}_H -#define {{Class}}_H - -#include "platform/bindings/ScriptWrappable.h" -#include "platform/heap/GarbageCollected.h" -#include "platform/wtf/text/WTFString.h" - -#include "../NXTState.h" -#include "Forward.h" - -namespace blink { - -class {{Class}} final : - public GarbageCollectedFinalized<{{Class}}>, - public ScriptWrappable { - - WTF_MAKE_NONCOPYABLE({{Class}}); - USING_PRE_FINALIZER({{Class}}, Dispose); - public: - DEFINE_INLINE_TRACE() { - visitor->Trace(state_); - }; - - public: - DEFINE_WRAPPERTYPEINFO(); - - public: - {{Class}}({{as_cType(type.name)}} self, Member state); - void Dispose(); - - {% for method in native_methods(type) %} - {% if method.return_type.name.concatcase() == "void" %} - {{Class}}* - {%- else %} - {{blinkType(method.return_type)}} - {%- endif -%} - {{" "}}{{method.name.camelCase()}}( - {%- for arg in method.arguments -%} - {%- if not loop.first %}, {% endif -%} - {%- if arg.annotation == "value" -%} - {{blinkType(arg.type)}} {{as_varName(arg.name)}} - {%- elif arg.annotation == "const*" and arg.length == "strlen" -%} - String {{as_varName(arg.name)}} - {%- else -%} - {%- if arg.type.category == "object" -%} - const HeapVector>& {{as_varName(arg.name)}} - {%- else -%} - const Vector<{{blinkType(arg.type)}}>& {{as_varName(arg.name)}} - {%- endif -%} - {%- endif -%} - {%- endfor -%} - ); - {% endfor %} - - {{as_cType(type.name)}} GetNXT(); - - {% if type.name.canonical_case() == "device" %} - {% for type in by_category["enum"] + by_category["bitmask"] %} - {% for value in type.values %} - static constexpr uint32_t k{{type.name.CamelCase()}}{{value.name.CamelCase()}} = 0x{{format(value.value, "08X")}}; - {% endfor %} - {% endfor %} - {% endif %} - - private: - {{as_cType(type.name)}} self_ = nullptr; - Member state_; -}; - -} - -#endif // {{Class}}_H - diff --git a/generator/templates/blink/Object.idl b/generator/templates/blink/Object.idl deleted file mode 100644 index 7dbee3ab3d..0000000000 --- a/generator/templates/blink/Object.idl +++ /dev/null @@ -1,64 +0,0 @@ -//* Copyright 2017 The NXT Authors -//* -//* Licensed under the Apache License, Version 2.0 (the "License"); -//* you may not use this file except in compliance with the License. -//* You may obtain a copy of the License at -//* -//* http://www.apache.org/licenses/LICENSE-2.0 -//* -//* Unless required by applicable law or agreed to in writing, software -//* distributed under the License is distributed on an "AS IS" BASIS, -//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -//* See the License for the specific language governing permissions and -//* limitations under the License. - -typedef unsigned long uint32_t; -typedef unsigned long long uint64_t; -typedef boolean bool; - -typedef unsigned long long NXTCallbackUserdata; -callback NXTDeviceErrorCallback = void(DOMString message); -callback NXTBuilderErrorCallback = void(uint32_t status, DOMString message); -callback NXTBufferMapReadCallback = void(uint32_t status, ArrayBufferView data); - -{% macro idlType(type) -%} - {%- if type.category == "object" -%} - NXT{{type.name.CamelCase()}} - {%- elif type.category == "enum" or type.category == "bitmask" -%} - uint32_t - {%- elif type.category == "natively defined" -%} - NXT{{type.name.CamelCase()}} - {%- else -%} - {{as_cType(type.name)}} - {%- endif -%} -{%- endmacro %} - -interface {{idlType(type)}} { - {% if type.name.canonical_case() == "device" %} - {% for type in by_category["enum"] + by_category["bitmask"] %} - {% for value in type.values %} - const uint32_t {{type.name.SNAKE_CASE()}}_{{value.name.SNAKE_CASE()}} = 0x{{format(value.value, "08X")}}; - {% endfor %} - {% endfor %} - {% endif %} - - {% for method in native_methods(type) %} - {% if method.return_type.name.concatcase() == "void" %} - {{idlType(type)}} - {%- else %} - {{idlType(method.return_type)}} - {%- endif -%} - {{" "}}{{method.name.camelCase()}}( - {%- for arg in method.arguments -%} - {%- if not loop.first %}, {% endif -%} - {%- if arg.annotation == "value" -%} - {{idlType(arg.type)}} {{as_varName(arg.name)}} - {%- elif arg.annotation == "const*" and arg.length == "strlen" -%} - DOMString {{as_varName(arg.name)}} - {%- else -%} - sequence<{{idlType(arg.type)}}> {{as_varName(arg.name)}} - {%- endif -%} - {%- endfor -%} - ); - {% endfor %} -}; diff --git a/generator/templates/blink/Objects.cpp b/generator/templates/blink/Objects.cpp deleted file mode 100644 index aee0aae3fb..0000000000 --- a/generator/templates/blink/Objects.cpp +++ /dev/null @@ -1,136 +0,0 @@ -//* Copyright 2017 The NXT Authors -//* -//* Licensed under the Apache License, Version 2.0 (the "License"); -//* you may not use this file except in compliance with the License. -//* You may obtain a copy of the License at -//* -//* http://www.apache.org/licenses/LICENSE-2.0 -//* -//* Unless required by applicable law or agreed to in writing, software -//* distributed under the License is distributed on an "AS IS" BASIS, -//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -//* See the License for the specific language governing permissions and -//* limitations under the License. - -{% macro blinkType(type) -%} - {%- if type.category == "object" -%} - NXT{{type.name.CamelCase()}}* - {%- elif type.category == "enum" or type.category == "bitmask" -%} - uint32_t - {%- elif type.category == "natively defined" -%} - NXT{{type.name.CamelCase()}} - {%- else -%} - {{as_cType(type.name)}} - {%- endif -%} -{%- endmacro %} - -{% for other_type in by_category["object"] %} - #include "NXT{{other_type.name.CamelCase()}}.h" -{% endfor %} - -#include "nxt/nxt.h" -#include "platform/wtf/text/StringUTF8Adaptor.h" - -namespace blink { - - {% for type in by_category["object"] %} - {% set Class = "NXT" + type.name.CamelCase() %} - {{Class}}::{{Class}}({{as_cType(type.name)}} self, Member state) - : self_(self), state_(state) { - } - void {{Class}}::Dispose() { - {% if type.name.canonical_case() != "device" %} - state_->GetProcTable()->{{as_varName(type.name, Name("release"))}}(self_); - {% endif %} - } - - {% for method in type.methods %} - {% if method.return_type.name.concatcase() == "void" %} - {{Class}}* - {%- else %} - {{blinkType(method.return_type)}} - {%- endif -%} - {{" "}}{{Class}}::{{method.name.camelCase()}}( - {%- for arg in method.arguments -%} - {%- if not loop.first %}, {% endif -%} - {%- if arg.annotation == "value" -%} - {{blinkType(arg.type)}} {{as_varName(arg.name)}}_ - {%- elif arg.annotation == "const*" and arg.length == "strlen" -%} - String {{as_varName(arg.name)}}_ - {%- else -%} - {%- if arg.type.category == "object" -%} - const HeapVector>& {{as_varName(arg.name)}}_ - {%- else -%} - const Vector<{{blinkType(arg.type)}}>& {{as_varName(arg.name)}}_ - {%- endif -%} - {%- endif -%} - {%- endfor -%} - ) { - {% for arg in method.arguments %} - {% set argName = as_varName(arg.name) %} - {% set cType = as_cType(arg.type.name) %} - {% if arg.annotation == "value" %} - {% if arg.type.category == "object" %} - {{cType}} {{argName}} = {{argName}}_->GetNXT(); - {% else %} - {{cType}} {{argName}} = static_cast<{{cType}}>({{argName}}_); - {% endif %} - {% elif arg.annotation == "const*" %} - {% if arg.length == "strlen" %} - WTF::StringUTF8Adaptor {{argName}}Adaptor({{argName}}_); - std::string {{argName}}String({{argName}}Adaptor.Data(), {{argName}}Adaptor.length()); - const char* {{argName}} = {{argName}}String.c_str(); - {% elif arg.type.category == "object" %} - //* TODO error on bad length - auto {{argName}}Array = std::unique_ptr<{{cType}}[]>(new {{cType}}[{{argName}}_.size()]); - for (size_t i = 0; i < {{argName}}_.size(); i++) { - {{argName}}Array[i] = {{argName}}_[i]->GetNXT(); - } - const {{cType}}* {{argName}} = &{{argName}}Array[0]; - {% else %} - //* TODO error on bad length - const {{cType}}* {{argName}} = {{argName}}_.data(); - {% endif %} - {% endif %} - {% endfor %} - - {% if method.return_type.name.concatcase() != "void" %} - auto result = - {%- endif %} - state_->GetProcTable()->{{as_varName(type.name, method.name)}}(self_ - {%- for arg in method.arguments -%} - , {{as_varName(arg.name)}} - {%- endfor -%} - ); - - {% if method.return_type.name.concatcase() == "void" %} - return this; - {% else %} - // TODO actually return the object given by the call to the procs - return new NXT{{method.return_type.name.CamelCase()}}(result, state_); - {% endif %} - } - {% endfor %} - - {% if type.is_builder %} - {{Class}}* {{Class}}::setErrorCallback(V8NXTBuilderErrorCallback*, unsigned long, unsigned long) { - //TODO - return this; - } - {% endif %} - - {{as_cType(type.name)}} {{Class}}::GetNXT() { - return self_; - } - - {% endfor %} - - NXTDevice* NXTDevice::setErrorCallback(V8NXTDeviceErrorCallback*, unsigned long) { - return this; - } - - NXTBuffer* NXTBuffer::mapReadAsync(unsigned int, unsigned int, V8NXTBufferMapReadCallback*, unsigned long) { - return this; - } - -} diff --git a/generator/templates/blink/api.idl b/generator/templates/blink/api.idl deleted file mode 100644 index 9ed081ce53..0000000000 --- a/generator/templates/blink/api.idl +++ /dev/null @@ -1,53 +0,0 @@ -//* Copyright 2017 The NXT Authors -//* -//* Licensed under the Apache License, Version 2.0 (the "License"); -//* you may not use this file except in compliance with the License. -//* You may obtain a copy of the License at -//* -//* http://www.apache.org/licenses/LICENSE-2.0 -//* -//* Unless required by applicable law or agreed to in writing, software -//* distributed under the License is distributed on an "AS IS" BASIS, -//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -//* See the License for the specific language governing permissions and -//* limitations under the License. - -typedef unsigned long uint32_t; - -{% macro idlType(type) -%} - {%- if type.category == "object" -%} - NXT{{type.name.CamelCase()}} - {%- else -%} - {{as_cType(type.name)}} - {%- endif -%} -{%- endmacro %} - -interface {{as_idlType(type.name)}} { - {% if type.name.canonical_case() == "device" %} - {% for type in by_category["enum"] + by_category["bitmask"] %} - {% for value in type.values %} - const uint32_t {{type.name.SNAKE_CASE()}}_{{value.name.SNAKE_CASE()}} = 0x{{format(value.value, "08X")}}; - {% endfor %} - {% endfor %} - {% endif %} - - {% for method in type.methods %} - {% if method.return_type.name.concatcase() == "void" %} - {{as_idlType(type.name)}} - {%- else %} - {{as_idlType(method.return_type.name)}} - {%- endif -%} - {{" "}}{{method.name.camelCase()}}( - {%- for arg in method.arguments -%} - {%- if not loop.first %}, {% endif -%} - {%- if arg.annotation == "value" -%} - {{as_idlType(arg.type.name)}} {{as_varName(arg.name)}} - {%- elif arg.annotation == "const*" and arg.length == "strlen" -%} - String {{as_varName(arg.name)}} - {%- else -%} - {{as_idlType(arg.type.name)}}[] {{as_varName(arg.name)}} - {%- endif -%} - {%- endfor -%} - ); - {% endfor %} -}; diff --git a/generator/templates/blink/autogen.gni b/generator/templates/blink/autogen.gni deleted file mode 100644 index bbcf6555d9..0000000000 --- a/generator/templates/blink/autogen.gni +++ /dev/null @@ -1,27 +0,0 @@ -//* Copyright 2017 The NXT Authors -//* -//* Licensed under the Apache License, Version 2.0 (the "License"); -//* you may not use this file except in compliance with the License. -//* You may obtain a copy of the License at -//* -//* http://www.apache.org/licenses/LICENSE-2.0 -//* -//* Unless required by applicable law or agreed to in writing, software -//* distributed under the License is distributed on an "AS IS" BASIS, -//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -//* See the License for the specific language governing permissions and -//* limitations under the License. - -autogen_nxt_sources = [ - "gen/NXT.cpp", - "gen/Forward.h", - {% for type in by_category["object"] %} - "gen/NXT{{type.name.CamelCase()}}.h", - {% endfor %} -] - -autogen_nxt_idl = [ - {% for type in by_category["object"] %} - "nxt/gen/NXT{{type.name.CamelCase()}}.idl", - {% endfor %} -]