OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2011 Google Inc. All rights reserved. | 2 # Copyright (c) 2011 Google Inc. All rights reserved. |
3 # Copyright (c) 2012 Intel Corporation. All rights reserved. | 3 # Copyright (c) 2012 Intel Corporation. All rights reserved. |
4 # | 4 # |
5 # Redistribution and use in source and binary forms, with or without | 5 # Redistribution and use in source and binary forms, with or without |
6 # modification, are permitted provided that the following conditions are | 6 # modification, are permitted provided that the following conditions are |
7 # met: | 7 # met: |
8 # | 8 # |
9 # * Redistributions of source code must retain the above copyright | 9 # * Redistributions of source code must retain the above copyright |
10 # notice, this list of conditions and the following disclaimer. | 10 # notice, this list of conditions and the following disclaimer. |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 possible_abbreviation = "".join(output[array_pos:array_p
os_end]) | 149 possible_abbreviation = "".join(output[array_pos:array_p
os_end]) |
150 if possible_abbreviation.upper() in Capitalizer.ABBREVIA
TION: | 150 if possible_abbreviation.upper() in Capitalizer.ABBREVIA
TION: |
151 output[array_pos:array_pos_end] = [possible_abbrevia
tion] | 151 output[array_pos:array_pos_end] = [possible_abbrevia
tion] |
152 else: | 152 else: |
153 array_pos = array_pos_end - 1 | 153 array_pos = array_pos_end - 1 |
154 array_pos += 1 | 154 array_pos += 1 |
155 return output | 155 return output |
156 | 156 |
157 ABBREVIATION = frozenset(["XHR", "DOM", "CSS"]) | 157 ABBREVIATION = frozenset(["XHR", "DOM", "CSS"]) |
158 | 158 |
159 VALIDATOR_IFDEF_NAME = "!ASSERT_DISABLED" | 159 VALIDATOR_IFDEF_NAME = "ASSERT_ENABLED" |
160 | 160 |
161 | 161 |
162 class DomainNameFixes: | 162 class DomainNameFixes: |
163 @classmethod | 163 @classmethod |
164 def get_fixed_data(cls, domain_name): | 164 def get_fixed_data(cls, domain_name): |
165 field_name_res = Capitalizer.upper_camel_case_to_lower(domain_name) + "A
gent" | 165 field_name_res = Capitalizer.upper_camel_case_to_lower(domain_name) + "A
gent" |
166 | 166 |
167 class Res(object): | 167 class Res(object): |
168 agent_field_name = field_name_res | 168 agent_field_name = field_name_res |
169 | 169 |
(...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1186 writer.newline(" * Synthetic constructor:\n"
) | 1186 writer.newline(" * Synthetic constructor:\n"
) |
1187 writer.newline(" * RefPtr<%s> result = %s::c
reate()" % (class_name, class_name)) | 1187 writer.newline(" * RefPtr<%s> result = %s::c
reate()" % (class_name, class_name)) |
1188 for prop_data in resolve_data.main_properties: | 1188 for prop_data in resolve_data.main_properties: |
1189 writer.append_multiline("\n * .set%s
(...)" % Capitalizer.lower_camel_case_to_upper(prop_data.p["name"])) | 1189 writer.append_multiline("\n * .set%s
(...)" % Capitalizer.lower_camel_case_to_upper(prop_data.p["name"])) |
1190 writer.append_multiline(";\n */\n") | 1190 writer.append_multiline(";\n */\n") |
1191 | 1191 |
1192 writer.newline_multiline(CodeGeneratorInspectorS
trings.class_binding_builder_part_4) | 1192 writer.newline_multiline(CodeGeneratorInspectorS
trings.class_binding_builder_part_4) |
1193 | 1193 |
1194 writer.newline(" typedef TypeBuilder::StructI
temTraits ItemTraits;\n") | 1194 writer.newline(" typedef TypeBuilder::StructI
temTraits ItemTraits;\n") |
1195 | 1195 |
| 1196 for prop_data in resolve_data.main_properties: |
| 1197 prop_name = prop_data.p["name"] |
| 1198 param_type_binding = prop_data.param_type_bi
nding |
| 1199 raw_type = param_type_binding.reduce_to_raw_
type() |
| 1200 if isinstance(param_type_binding.get_type_mo
del(), TypeModel.ValueType): |
| 1201 writer.append_multiline("\n void %s"
% prop_name) |
| 1202 writer.append("(%s value)\n" % param_typ
e_binding.get_type_model().get_command_return_pass_model().get_output_parameter_
type()) |
| 1203 writer.newline(" {\n") |
| 1204 writer.newline(" JSONObjectBase::
get%s(\"%s\", value);\n" |
| 1205 % (param_type_binding.reduce_to_raw_
type().get_setter_name(), prop_data.p["name"])) |
| 1206 writer.newline(" }\n") |
| 1207 |
1196 for prop_data in resolve_data.optional_propertie
s: | 1208 for prop_data in resolve_data.optional_propertie
s: |
1197 prop_name = prop_data.p["name"] | 1209 prop_name = prop_data.p["name"] |
1198 param_type_binding = prop_data.param_type_bi
nding | 1210 param_type_binding = prop_data.param_type_bi
nding |
1199 setter_name = "set%s" % Capitalizer.lower_ca
mel_case_to_upper(prop_name) | 1211 setter_name = "set%s" % Capitalizer.lower_ca
mel_case_to_upper(prop_name) |
1200 | 1212 |
1201 writer.append_multiline("\n void %s" % se
tter_name) | 1213 writer.append_multiline("\n void %s" % se
tter_name) |
1202 writer.append("(%s value)\n" % param_type_bi
nding.get_type_model().get_input_param_type_text()) | 1214 writer.append("(%s value)\n" % param_type_bi
nding.get_type_model().get_input_param_type_text()) |
1203 writer.newline(" {\n") | 1215 writer.newline(" {\n") |
1204 writer.newline(" this->set%s(\"%s\",
%s);\n" | 1216 writer.newline(" this->set%s(\"%s\",
%s);\n" |
1205 % (param_type_binding.reduce_to_raw_type
().get_setter_name(), prop_data.p["name"], | 1217 % (param_type_binding.reduce_to_raw_type
().get_setter_name(), prop_data.p["name"], |
1206 format_setter_value_expression(param_
type_binding, "value"))) | 1218 format_setter_value_expression(param_
type_binding, "value"))) |
1207 writer.newline(" }\n") | 1219 writer.newline(" }\n") |
1208 | 1220 |
1209 | |
1210 if setter_name in INSPECTOR_OBJECT_SETTER_NA
MES: | 1221 if setter_name in INSPECTOR_OBJECT_SETTER_NA
MES: |
1211 writer.newline(" using JSONObjectBase
::%s;\n\n" % setter_name) | 1222 writer.newline(" using JSONObjectBase
::%s;\n\n" % setter_name) |
1212 | 1223 |
1213 if class_binding_cls.need_user_runtime_cast_: | 1224 if class_binding_cls.need_user_runtime_cast_: |
1214 writer.newline(" static PassRefPtr<%s> ru
ntimeCast(PassRefPtr<JSONValue> value)\n" % class_name) | 1225 writer.newline(" static PassRefPtr<%s> ru
ntimeCast(PassRefPtr<JSONValue> value)\n" % class_name) |
1215 writer.newline(" {\n") | 1226 writer.newline(" {\n") |
1216 writer.newline(" RefPtr<JSONObject> o
bject;\n") | 1227 writer.newline(" RefPtr<JSONObject> o
bject;\n") |
1217 writer.newline(" bool castRes = value
->asObject(&object);\n") | 1228 writer.newline(" bool castRes = value
->asObject(&object);\n") |
1218 writer.newline(" ASSERT_UNUSED(castRe
s, castRes);\n") | 1229 writer.newline(" ASSERT_UNUSED(castRe
s, castRes);\n") |
1219 writer.append("#if %s\n" % VALIDATOR_IFDEF_N
AME) | 1230 writer.append("#if %s\n" % VALIDATOR_IFDEF_N
AME) |
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1842 Generator.backend_agent_interface_list.append(" virtual ~%s()
{ }\n" % agent_interface_name) | 1853 Generator.backend_agent_interface_list.append(" virtual ~%s()
{ }\n" % agent_interface_name) |
1843 Generator.backend_agent_interface_list.append(" };\n\n") | 1854 Generator.backend_agent_interface_list.append(" };\n\n") |
1844 | 1855 |
1845 Generator.backend_constructor_init_list.append(" , m_%s(0)" %
agent_field_name) | 1856 Generator.backend_constructor_init_list.append(" , m_%s(0)" %
agent_field_name) |
1846 Generator.backend_virtual_setters_list.append(" virtual void regi
sterAgent(%s* %s) = 0;" % (agent_interface_name, agent_field_name)) | 1857 Generator.backend_virtual_setters_list.append(" virtual void regi
sterAgent(%s* %s) = 0;" % (agent_interface_name, agent_field_name)) |
1847 Generator.backend_setters_list.append(" virtual void registerAgen
t(%s* %s) { ASSERT(!m_%s); m_%s = %s; }" % (agent_interface_name, agent_field_na
me, agent_field_name, agent_field_name, agent_field_name)) | 1858 Generator.backend_setters_list.append(" virtual void registerAgen
t(%s* %s) { ASSERT(!m_%s); m_%s = %s; }" % (agent_interface_name, agent_field_na
me, agent_field_name, agent_field_name, agent_field_name)) |
1848 Generator.backend_field_list.append(" %s* m_%s;" % (agent_interfa
ce_name, agent_field_name)) | 1859 Generator.backend_field_list.append(" %s* m_%s;" % (agent_interfa
ce_name, agent_field_name)) |
1849 | 1860 |
1850 @staticmethod | 1861 @staticmethod |
1851 def process_event(json_event, domain_name, frontend_method_declaration_lines
): | 1862 def process_event(json_event, domain_name, frontend_method_declaration_lines
): |
| 1863 if (("handlers" in json_event) and (not ("renderer" in json_event["handl
ers"]))): |
| 1864 return |
| 1865 |
1852 event_name = json_event["name"] | 1866 event_name = json_event["name"] |
1853 | 1867 |
1854 ad_hoc_type_output = [] | 1868 ad_hoc_type_output = [] |
1855 frontend_method_declaration_lines.append(ad_hoc_type_output) | 1869 frontend_method_declaration_lines.append(ad_hoc_type_output) |
1856 ad_hoc_type_writer = Writer(ad_hoc_type_output, " ") | 1870 ad_hoc_type_writer = Writer(ad_hoc_type_output, " ") |
1857 | 1871 |
1858 decl_parameter_list = [] | 1872 decl_parameter_list = [] |
1859 | 1873 |
1860 json_parameters = json_event.get("parameters") | 1874 json_parameters = json_event.get("parameters") |
1861 Generator.generate_send_method(json_parameters, event_name, domain_name,
ad_hoc_type_writer, | 1875 Generator.generate_send_method(json_parameters, event_name, domain_name,
ad_hoc_type_writer, |
(...skipping 10 matching lines...) Expand all Loading... |
1872 line_list.append(" RefPtr<JSONObject> paramsObject = JSONObject::
create();\n") | 1886 line_list.append(" RefPtr<JSONObject> paramsObject = JSONObject::
create();\n") |
1873 | 1887 |
1874 @staticmethod | 1888 @staticmethod |
1875 def append_epilog(line_list): | 1889 def append_epilog(line_list): |
1876 line_list.append(" jsonMessage->setObject(\"params\", paramsObjec
t);\n") | 1890 line_list.append(" jsonMessage->setObject(\"params\", paramsObjec
t);\n") |
1877 | 1891 |
1878 container_name = "paramsObject" | 1892 container_name = "paramsObject" |
1879 | 1893 |
1880 @staticmethod | 1894 @staticmethod |
1881 def process_command(json_command, domain_name, agent_field_name, agent_inter
face_name): | 1895 def process_command(json_command, domain_name, agent_field_name, agent_inter
face_name): |
| 1896 if (("handlers" in json_command) and (not ("renderer" in json_command["h
andlers"]))): |
| 1897 return |
| 1898 |
1882 json_command_name = json_command["name"] | 1899 json_command_name = json_command["name"] |
1883 | 1900 |
1884 cmd_enum_name = "k%s_%sCmd" % (domain_name, json_command["name"]) | 1901 cmd_enum_name = "k%s_%sCmd" % (domain_name, json_command["name"]) |
1885 | 1902 |
1886 Generator.method_name_enum_list.append(" %s," % cmd_enum_name) | 1903 Generator.method_name_enum_list.append(" %s," % cmd_enum_name) |
1887 Generator.method_handler_list.append(" &InspectorBackendDispa
tcherImpl::%s_%s," % (domain_name, json_command_name)) | 1904 Generator.method_handler_list.append(" &InspectorBackendDispa
tcherImpl::%s_%s," % (domain_name, json_command_name)) |
1888 Generator.backend_method_declaration_list.append(" void %s_%s(long ca
llId, JSONObject* requestMessageObject);" % (domain_name, json_command_name)) | 1905 Generator.backend_method_declaration_list.append(" void %s_%s(long ca
llId, JSONObject* requestMessageObject, JSONArray* protocolErrors);" % (domain_n
ame, json_command_name)) |
1889 | 1906 |
1890 backend_agent_interface_list = [] if "redirect" in json_command else Gen
erator.backend_agent_interface_list | 1907 backend_agent_interface_list = [] if "redirect" in json_command else Gen
erator.backend_agent_interface_list |
1891 | 1908 |
1892 ad_hoc_type_output = [] | 1909 ad_hoc_type_output = [] |
1893 backend_agent_interface_list.append(ad_hoc_type_output) | 1910 backend_agent_interface_list.append(ad_hoc_type_output) |
1894 ad_hoc_type_writer = Writer(ad_hoc_type_output, " ") | 1911 ad_hoc_type_writer = Writer(ad_hoc_type_output, " ") |
1895 | 1912 |
1896 backend_agent_interface_list.append(" virtual void %s(ErrorString
*" % json_command_name) | 1913 backend_agent_interface_list.append(" virtual void %s(ErrorString
*" % json_command_name) |
1897 | 1914 |
1898 method_in_code = "" | 1915 method_in_code = "" |
1899 method_out_code = "" | 1916 method_out_code = "" |
1900 agent_call_param_list = [] | 1917 result_object_declaration = "" |
| 1918 agent_call_param_list = ["&error"] |
| 1919 agent_call_params_declaration_list = [" ErrorString error;"] |
| 1920 send_response_call_params_list = ["error"] |
1901 request_message_param = "" | 1921 request_message_param = "" |
1902 normal_response_cook_text = "" | 1922 normal_response_cook_text = "" |
1903 error_response_cook_text = "" | |
1904 error_type_binding = None | 1923 error_type_binding = None |
1905 if "error" in json_command: | 1924 if "error" in json_command: |
1906 json_error = json_command["error"] | 1925 json_error = json_command["error"] |
1907 error_type_binding = Generator.resolve_type_and_generate_ad_hoc(json
_error, json_command_name + "Error", json_command_name, domain_name, ad_hoc_type
_writer, agent_interface_name + "::") | 1926 error_type_binding = Generator.resolve_type_and_generate_ad_hoc(json
_error, json_command_name + "Error", json_command_name, domain_name, ad_hoc_type
_writer, agent_interface_name + "::") |
1908 error_type_model = error_type_binding.get_type_model().get_optional(
) | 1927 error_type_model = error_type_binding.get_type_model().get_optional(
) |
1909 error_annotated_type = error_type_model.get_command_return_pass_mode
l().get_output_parameter_type() | 1928 error_annotated_type = error_type_model.get_command_return_pass_mode
l().get_output_parameter_type() |
1910 agent_call_param_list.append(", %serrorData" % error_type_model.get_
command_return_pass_model().get_output_argument_prefix()) | 1929 agent_call_param_list.append("%serrorData" % error_type_model.get_co
mmand_return_pass_model().get_output_argument_prefix()) |
1911 backend_agent_interface_list.append(", %s errorData" % error_annotat
ed_type) | 1930 backend_agent_interface_list.append(", %s errorData" % error_annotat
ed_type) |
1912 method_in_code += " %s errorData;\n" % error_type_model.get_comma
nd_return_pass_model().get_return_var_type() | 1931 method_in_code += " %s errorData;\n" % error_type_model.get_comma
nd_return_pass_model().get_return_var_type() |
1913 | 1932 send_response_call_params_list.append("errorData") |
1914 setter_argument = error_type_model.get_command_return_pass_model().g
et_output_to_raw_expression() % "errorData" | |
1915 if error_type_binding.get_setter_value_expression_pattern(): | |
1916 setter_argument = error_type_binding.get_setter_value_expression
_pattern() % setter_argument | |
1917 error_assigment_value = error_type_binding.reduce_to_raw_type().get_
constructor_pattern() % setter_argument | |
1918 | |
1919 cook = " resultErrorData = %s;\n" % error_assigment_value | |
1920 | |
1921 error_condition_pattern = error_type_model.get_command_return_pass_m
odel().get_set_return_condition() | |
1922 cook = (" if (%s)\n " % (error_condition_pattern % "er
rorData")) + cook | |
1923 error_response_cook_text = " if (error.length()) {\n" + cook
+ " }\n" | |
1924 | 1933 |
1925 if "parameters" in json_command: | 1934 if "parameters" in json_command: |
1926 json_params = json_command["parameters"] | 1935 json_params = json_command["parameters"] |
1927 request_message_param = " requestMessageObject" | 1936 request_message_param = " requestMessageObject" |
1928 | 1937 |
1929 if json_params: | 1938 if json_params: |
1930 method_in_code += Templates.param_container_access_code | 1939 method_in_code += Templates.param_container_access_code |
1931 | 1940 |
1932 for json_parameter in json_params: | 1941 for json_parameter in json_params: |
1933 json_param_name = json_parameter["name"] | 1942 json_param_name = json_parameter["name"] |
1934 param_raw_type = resolve_param_raw_type(json_parameter, domain_n
ame) | 1943 param_raw_type = resolve_param_raw_type(json_parameter, domain_n
ame) |
1935 | 1944 |
1936 getter_name = param_raw_type.get_getter_name() | 1945 getter_name = param_raw_type.get_getter_name() |
1937 | 1946 |
1938 optional = json_parameter.get("optional") | 1947 optional = json_parameter.get("optional") |
1939 | 1948 |
1940 non_optional_type_model = param_raw_type.get_raw_type_model() | 1949 non_optional_type_model = param_raw_type.get_raw_type_model() |
1941 if optional: | 1950 if optional: |
1942 type_model = non_optional_type_model.get_optional() | 1951 type_model = non_optional_type_model.get_optional() |
1943 else: | 1952 else: |
1944 type_model = non_optional_type_model | 1953 type_model = non_optional_type_model |
1945 | 1954 |
1946 if optional: | 1955 if optional: |
1947 code = (" bool %s_valueFound = false;\n" | 1956 code = (" bool %s_valueFound = false;\n" |
1948 " %s in_%s = get%s(paramsContainerPtr, \"%s\", &%
s_valueFound, protocolErrorsPtr);\n" % | 1957 " %s in_%s = get%s(paramsContainerPtr, \"%s\", &%
s_valueFound, protocolErrors);\n" % |
1949 (json_param_name, non_optional_type_model.get_command
_return_pass_model().get_return_var_type(), json_param_name, getter_name, json_p
aram_name, json_param_name)) | 1958 (json_param_name, non_optional_type_model.get_command
_return_pass_model().get_return_var_type(), json_param_name, getter_name, json_p
aram_name, json_param_name)) |
1950 param = ", %s_valueFound ? &in_%s : 0" % (json_param_name, j
son_param_name) | 1959 param = "%s_valueFound ? &in_%s : 0" % (json_param_name, jso
n_param_name) |
1951 # FIXME: pass optional refptr-values as PassRefPtr | 1960 # FIXME: pass optional refptr-values as PassRefPtr |
1952 formal_param_type_pattern = "const %s*" | 1961 formal_param_type_pattern = "const %s*" |
1953 else: | 1962 else: |
1954 code = (" %s in_%s = get%s(paramsContainerPtr, \"%s\", 0,
protocolErrorsPtr);\n" % | 1963 code = (" %s in_%s = get%s(paramsContainerPtr, \"%s\", 0,
protocolErrors);\n" % |
1955 (non_optional_type_model.get_command_return_pass_mod
el().get_return_var_type(), json_param_name, getter_name, json_param_name)) | 1964 (non_optional_type_model.get_command_return_pass_mod
el().get_return_var_type(), json_param_name, getter_name, json_param_name)) |
1956 param = ", in_%s" % json_param_name | 1965 param = "in_%s" % json_param_name |
1957 # FIXME: pass not-optional refptr-values as NonNullPassRefPt
r | 1966 # FIXME: pass not-optional refptr-values as NonNullPassRefPt
r |
1958 if param_raw_type.is_heavy_value(): | 1967 if param_raw_type.is_heavy_value(): |
1959 formal_param_type_pattern = "const %s&" | 1968 formal_param_type_pattern = "const %s&" |
1960 else: | 1969 else: |
1961 formal_param_type_pattern = "%s" | 1970 formal_param_type_pattern = "%s" |
1962 | 1971 |
1963 method_in_code += code | 1972 method_in_code += code |
1964 agent_call_param_list.append(param) | 1973 agent_call_param_list.append(param) |
1965 backend_agent_interface_list.append(", %s in_%s" % (formal_param
_type_pattern % non_optional_type_model.get_command_return_pass_model().get_retu
rn_var_type(), json_param_name)) | 1974 backend_agent_interface_list.append(", %s in_%s" % (formal_param
_type_pattern % non_optional_type_model.get_command_return_pass_model().get_retu
rn_var_type(), json_param_name)) |
1966 | 1975 |
(...skipping 24 matching lines...) Expand all Loading... |
1991 | 2000 |
1992 assigment_value = error_type_model.get_event_setter_expression_p
attern() % "errorData" | 2001 assigment_value = error_type_model.get_event_setter_expression_p
attern() % "errorData" |
1993 assigment_value = error_type_binding.reduce_to_raw_type().get_co
nstructor_pattern() % assigment_value | 2002 assigment_value = error_type_binding.reduce_to_raw_type().get_co
nstructor_pattern() % assigment_value |
1994 | 2003 |
1995 Generator.backend_method_implementation_list.append(Templates.ca
llback_failure_method.substitute(None, | 2004 Generator.backend_method_implementation_list.append(Templates.ca
llback_failure_method.substitute(None, |
1996 agentName=agent_interface_name, | 2005 agentName=agent_interface_name, |
1997 callbackName=callback_name, | 2006 callbackName=callback_name, |
1998 parameter=annotated_type + " errorData", | 2007 parameter=annotated_type + " errorData", |
1999 argument=assigment_value)) | 2008 argument=assigment_value)) |
2000 | 2009 |
2001 | |
2002 | |
2003 ad_hoc_type_output.append(callback_output) | 2010 ad_hoc_type_output.append(callback_output) |
2004 | 2011 |
2005 method_out_code += " RefPtr<" + agent_interface_name + "::" + cal
lback_name + "> callback = adoptRef(new " + agent_interface_name + "::" + callba
ck_name + "(this, callId));\n" | 2012 method_out_code += " RefPtr<" + agent_interface_name + "::" + cal
lback_name + "> callback = adoptRef(new " + agent_interface_name + "::" + callba
ck_name + "(this, callId));\n" |
2006 agent_call_param_list.append(", callback") | 2013 agent_call_param_list.append("callback") |
2007 normal_response_cook_text += " if (!error.length()) \n" | 2014 normal_response_cook_text += " if (!error.length()) \n" |
2008 normal_response_cook_text += " return;\n" | 2015 normal_response_cook_text += " return;\n" |
2009 normal_response_cook_text += " callback->disable();\n" | 2016 normal_response_cook_text += " callback->disable();\n" |
2010 backend_agent_interface_list.append(", PassRefPtr<%s> callback" % ca
llback_name) | 2017 backend_agent_interface_list.append(", PassRefPtr<%s> callback" % ca
llback_name) |
2011 else: | 2018 else: |
2012 if "returns" in json_command: | 2019 if "returns" in json_command: |
2013 method_out_code += "\n" | 2020 method_out_code += "\n" |
| 2021 agent_call_params_declaration_list.append(" RefPtr<JSONObject
> result = JSONObject::create();") |
| 2022 send_response_call_params_list.append("result") |
2014 response_cook_list = [] | 2023 response_cook_list = [] |
2015 for json_return in json_command["returns"]: | 2024 for json_return in json_command["returns"]: |
2016 | 2025 |
2017 json_return_name = json_return["name"] | 2026 json_return_name = json_return["name"] |
2018 | 2027 |
2019 optional = bool(json_return.get("optional")) | 2028 optional = bool(json_return.get("optional")) |
2020 | 2029 |
2021 return_type_binding = Generator.resolve_param_type_and_gener
ate_ad_hoc(json_return, json_command_name, domain_name, ad_hoc_type_writer, agen
t_interface_name + "::") | 2030 return_type_binding = Generator.resolve_param_type_and_gener
ate_ad_hoc(json_return, json_command_name, domain_name, ad_hoc_type_writer, agen
t_interface_name + "::") |
2022 | 2031 |
2023 raw_type = return_type_binding.reduce_to_raw_type() | 2032 raw_type = return_type_binding.reduce_to_raw_type() |
2024 setter_type = raw_type.get_setter_name() | 2033 setter_type = raw_type.get_setter_name() |
2025 initializer = raw_type.get_c_initializer() | 2034 initializer = raw_type.get_c_initializer() |
2026 | 2035 |
2027 type_model = return_type_binding.get_type_model() | 2036 type_model = return_type_binding.get_type_model() |
2028 if optional: | 2037 if optional: |
2029 type_model = type_model.get_optional() | 2038 type_model = type_model.get_optional() |
2030 | 2039 |
2031 code = " %s out_%s;\n" % (type_model.get_command_return_p
ass_model().get_return_var_type(), json_return_name) | 2040 code = " %s out_%s;\n" % (type_model.get_command_return_p
ass_model().get_return_var_type(), json_return_name) |
2032 param = ", %sout_%s" % (type_model.get_command_return_pass_m
odel().get_output_argument_prefix(), json_return_name) | 2041 param = "%sout_%s" % (type_model.get_command_return_pass_mod
el().get_output_argument_prefix(), json_return_name) |
2033 var_name = "out_%s" % json_return_name | 2042 var_name = "out_%s" % json_return_name |
2034 setter_argument = type_model.get_command_return_pass_model()
.get_output_to_raw_expression() % var_name | 2043 setter_argument = type_model.get_command_return_pass_model()
.get_output_to_raw_expression() % var_name |
2035 if return_type_binding.get_setter_value_expression_pattern()
: | 2044 if return_type_binding.get_setter_value_expression_pattern()
: |
2036 setter_argument = return_type_binding.get_setter_value_e
xpression_pattern() % setter_argument | 2045 setter_argument = return_type_binding.get_setter_value_e
xpression_pattern() % setter_argument |
2037 | 2046 |
2038 cook = " result->set%s(\"%s\", %s);\n" % (setter_
type, json_return_name, | 2047 cook = " result->set%s(\"%s\", %s);\n" % (setter_type
, json_return_name, |
2039 setter_
argument) | 2048 setter_
argument) |
2040 | 2049 |
2041 set_condition_pattern = type_model.get_command_return_pass_m
odel().get_set_return_condition() | 2050 set_condition_pattern = type_model.get_command_return_pass_m
odel().get_set_return_condition() |
2042 if set_condition_pattern: | 2051 if set_condition_pattern: |
2043 cook = (" if (%s)\n " % (set_condition_pat
tern % var_name)) + cook | 2052 cook = (" if (%s)\n " % (set_condition_pattern
% var_name)) + cook |
2044 annotated_type = type_model.get_command_return_pass_model().
get_output_parameter_type() | 2053 annotated_type = type_model.get_command_return_pass_model().
get_output_parameter_type() |
2045 | 2054 |
2046 param_name = var_name | 2055 param_name = var_name |
2047 if optional: | 2056 if optional: |
2048 param_name = "opt_" + param_name | 2057 param_name = "opt_" + param_name |
2049 | 2058 |
2050 backend_agent_interface_list.append(", %s %s" % (annotated_t
ype, param_name)) | 2059 backend_agent_interface_list.append(", %s %s" % (annotated_t
ype, param_name)) |
2051 response_cook_list.append(cook) | 2060 response_cook_list.append(cook) |
2052 | 2061 |
2053 method_out_code += code | 2062 method_out_code += code |
2054 agent_call_param_list.append(param) | 2063 agent_call_param_list.append(param) |
2055 | 2064 |
2056 normal_response_cook_text += "".join(response_cook_list) | 2065 normal_response_cook_text += "".join(response_cook_list) |
2057 | 2066 |
2058 if len(normal_response_cook_text) != 0: | 2067 if len(normal_response_cook_text) != 0: |
2059 normal_response_cook_text = " if (!error.length()) {\
n" + normal_response_cook_text + " }" | 2068 normal_response_cook_text = " if (!error.length()) {\n" +
normal_response_cook_text + " }" |
2060 | 2069 |
2061 # Redirect to another agent's implementation. | 2070 # Redirect to another agent's implementation. |
2062 agent_field = "m_" + agent_field_name | 2071 agent_field = "m_" + agent_field_name |
2063 if "redirect" in json_command: | 2072 if "redirect" in json_command: |
2064 domain_fixes = DomainNameFixes.get_fixed_data(json_command.get("redi
rect")) | 2073 domain_fixes = DomainNameFixes.get_fixed_data(json_command.get("redi
rect")) |
2065 agent_field = "m_" + domain_fixes.agent_field_name | 2074 agent_field = "m_" + domain_fixes.agent_field_name |
2066 | 2075 |
2067 Generator.backend_method_implementation_list.append(Templates.backend_me
thod.substitute(None, | 2076 Generator.backend_method_implementation_list.append(Templates.backend_me
thod.substitute(None, |
2068 domainName=domain_name, methodName=json_command_name, | 2077 domainName=domain_name, methodName=json_command_name, |
2069 agentField=agent_field, | 2078 agentField=agent_field, |
2070 methodInCode=method_in_code, | 2079 methodCode="".join([method_in_code, method_out_code]), |
2071 methodOutCode=method_out_code, | 2080 agentCallParamsDeclaration="\n".join(agent_call_params_declaration_l
ist), |
2072 agentCallParams="".join(agent_call_param_list), | 2081 agentCallParams=", ".join(agent_call_param_list), |
2073 requestMessageObject=request_message_param, | 2082 requestMessageObject=request_message_param, |
2074 responseCook=normal_response_cook_text, | 2083 responseCook=normal_response_cook_text, |
2075 errorCook=error_response_cook_text, | 2084 sendResponseCallParams=", ".join(send_response_call_params_list), |
2076 commandNameIndex=cmd_enum_name)) | 2085 commandNameIndex=cmd_enum_name)) |
2077 declaration_command_name = "%s.%s\\0" % (domain_name, json_command_name) | 2086 declaration_command_name = "%s.%s\\0" % (domain_name, json_command_name) |
2078 Generator.backend_method_name_declaration_list.append(" \"%s\"" % dec
laration_command_name) | 2087 Generator.backend_method_name_declaration_list.append(" \"%s\"" % dec
laration_command_name) |
2079 Generator.backend_method_name_declaration_index_list.append(" %d," %
Generator.backend_method_name_declaration_current_index) | 2088 Generator.backend_method_name_declaration_index_list.append(" %d," %
Generator.backend_method_name_declaration_current_index) |
2080 Generator.backend_method_name_declaration_current_index += len(declarati
on_command_name) - 1 | 2089 Generator.backend_method_name_declaration_current_index += len(declarati
on_command_name) - 1 |
2081 | 2090 |
2082 backend_agent_interface_list.append(") = 0;\n") | 2091 backend_agent_interface_list.append(") = 0;\n") |
2083 | 2092 |
2084 class CallbackMethodStructTemplate: | 2093 class CallbackMethodStructTemplate: |
2085 @staticmethod | 2094 @staticmethod |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2346 validatorIfdefName=VALIDATOR_IFDEF_NAME)) | 2355 validatorIfdefName=VALIDATOR_IFDEF_NAME)) |
2347 | 2356 |
2348 backend_h_file.close() | 2357 backend_h_file.close() |
2349 backend_cpp_file.close() | 2358 backend_cpp_file.close() |
2350 | 2359 |
2351 frontend_h_file.close() | 2360 frontend_h_file.close() |
2352 frontend_cpp_file.close() | 2361 frontend_cpp_file.close() |
2353 | 2362 |
2354 typebuilder_h_file.close() | 2363 typebuilder_h_file.close() |
2355 typebuilder_cpp_file.close() | 2364 typebuilder_cpp_file.close() |
OLD | NEW |