コード例 #1
0
 def _generate_event_out_parameters(self, domain, event):
     lines = []
     lines.append(
         '    Ref<InspectorObject> paramsObject = InspectorObject::create();'
     )
     for parameter in event.event_parameters:
         keyed_set_method = CppGenerator.cpp_setter_method_for_type(
             parameter.type)
         var_name = parameter.parameter_name
         safe_var_name = '(*%s)' % var_name if parameter.is_optional else var_name
         export_expression = ObjCGenerator.objc_protocol_export_expression_for_variable(
             parameter.type, safe_var_name)
         if not parameter.is_optional:
             lines.append('    paramsObject->%s(ASCIILiteral("%s"), %s);' %
                          (keyed_set_method, parameter.parameter_name,
                           export_expression))
         else:
             lines.append('    if (%s)' % (parameter.parameter_name))
             lines.append(
                 '        paramsObject->%s(ASCIILiteral("%s"), %s);' %
                 (keyed_set_method, parameter.parameter_name,
                  export_expression))
     lines.append(
         '    jsonMessage->setObject(ASCIILiteral("params"), WTFMove(paramsObject));'
     )
     return lines
 def _generate_event_out_parameters(self, domain, event):
     lines = []
     lines.append('    RefPtr<InspectorObject> paramsObject = InspectorObject::create();')
     for parameter in event.event_parameters:
         keyed_set_method = CppGenerator.cpp_setter_method_for_type(parameter.type)
         var_name = parameter.parameter_name
         safe_var_name = '(*%s)' % var_name if parameter.is_optional else var_name
         export_expression = ObjCGenerator.objc_protocol_export_expression_for_variable(parameter.type, safe_var_name)
         if not parameter.is_optional:
             lines.append('    paramsObject->%s(ASCIILiteral("%s"), %s);' % (keyed_set_method, parameter.parameter_name, export_expression))
         else:
             lines.append('    if (%s)' % (parameter.parameter_name))
             lines.append('        paramsObject->%s(ASCIILiteral("%s"), %s);' % (keyed_set_method, parameter.parameter_name, export_expression))
     lines.append('    jsonMessage->setObject(ASCIILiteral("params"), paramsObject);')
     return lines
    def _generate_success_block_for_command(self, domain, command):
        lines = []

        if command.return_parameters:
            success_block_parameters = []
            for parameter in command.return_parameters:
                objc_type = ObjCGenerator.objc_type_for_param(domain, command.command_name, parameter)
                var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
                success_block_parameters.append(join_type_and_name(objc_type, var_name))
            lines.append('    id successCallback = ^(%s) {' % ', '.join(success_block_parameters))
        else:
            lines.append('    id successCallback = ^{')

        if command.return_parameters:
            lines.append('        Ref<InspectorObject> resultObject = InspectorObject::create();')

            required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
            for parameter in required_pointer_parameters:
                var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
                lines.append('        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name))
                objc_array_class = ObjCGenerator.objc_class_for_array_type(parameter.type)
                if objc_array_class and objc_array_class.startswith(ObjCGenerator.OBJC_PREFIX):
                    lines.append('        THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class))

            optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
            for parameter in optional_pointer_parameters:
                var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
                lines.append('        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name))
                objc_array_class = ObjCGenerator.objc_class_for_array_type(parameter.type)
                if objc_array_class and objc_array_class.startswith(ObjCGenerator.OBJC_PREFIX):
                    lines.append('        THROW_EXCEPTION_FOR_BAD_TYPE_IN_OPTIONAL_ARRAY(%s, [%s class]);' % (var_name, objc_array_class))

            for parameter in command.return_parameters:
                keyed_set_method = CppGenerator.cpp_setter_method_for_type(parameter.type)
                var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
                var_expression = '*%s' % var_name if parameter.is_optional else var_name
                export_expression = ObjCGenerator.objc_protocol_export_expression_for_variable(parameter.type, var_expression)
                if not parameter.is_optional:
                    lines.append('        resultObject->%s(ASCIILiteral("%s"), %s);' % (keyed_set_method, parameter.parameter_name, export_expression))
                else:
                    lines.append('        if (%s)' % var_name)
                    lines.append('            resultObject->%s(ASCIILiteral("%s"), %s);' % (keyed_set_method, parameter.parameter_name, export_expression))
            lines.append('        backendDispatcher()->sendResponse(requestId, WTF::move(resultObject));')
        else:
            lines.append('        backendDispatcher()->sendResponse(requestId, InspectorObject::create());')

        lines.append('    };')
        return '\n'.join(lines)
コード例 #4
0
    def _generate_success_block_for_command(self, domain, command):
        lines = []

        if command.return_parameters:
            success_block_parameters = []
            for parameter in command.return_parameters:
                objc_type = ObjCGenerator.objc_type_for_param(
                    domain, command.command_name, parameter)
                var_name = ObjCGenerator.identifier_to_objc_identifier(
                    parameter.parameter_name)
                success_block_parameters.append(
                    join_type_and_name(objc_type, var_name))
            lines.append('    id successCallback = ^(%s) {' %
                         ', '.join(success_block_parameters))
        else:
            lines.append('    id successCallback = ^{')

        if command.return_parameters:
            lines.append(
                '        Ref<InspectorObject> resultObject = InspectorObject::create();'
            )

            required_pointer_parameters = filter(
                lambda parameter: not parameter.is_optional and ObjCGenerator.
                is_type_objc_pointer_type(parameter.type),
                command.return_parameters)
            for parameter in required_pointer_parameters:
                var_name = ObjCGenerator.identifier_to_objc_identifier(
                    parameter.parameter_name)
                lines.append(
                    '        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");'
                    % (var_name, var_name))
                objc_array_class = ObjCGenerator.objc_class_for_array_type(
                    parameter.type)
                if objc_array_class and objc_array_class.startswith(
                        ObjCGenerator.OBJC_PREFIX):
                    lines.append(
                        '        THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);'
                        % (var_name, objc_array_class))

            optional_pointer_parameters = filter(
                lambda parameter: parameter.is_optional and ObjCGenerator.
                is_type_objc_pointer_type(parameter.type),
                command.return_parameters)
            for parameter in optional_pointer_parameters:
                var_name = ObjCGenerator.identifier_to_objc_identifier(
                    parameter.parameter_name)
                lines.append(
                    '        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");'
                    % (var_name, var_name))
                objc_array_class = ObjCGenerator.objc_class_for_array_type(
                    parameter.type)
                if objc_array_class and objc_array_class.startswith(
                        ObjCGenerator.OBJC_PREFIX):
                    lines.append(
                        '        THROW_EXCEPTION_FOR_BAD_TYPE_IN_OPTIONAL_ARRAY(%s, [%s class]);'
                        % (var_name, objc_array_class))

            for parameter in command.return_parameters:
                keyed_set_method = CppGenerator.cpp_setter_method_for_type(
                    parameter.type)
                var_name = ObjCGenerator.identifier_to_objc_identifier(
                    parameter.parameter_name)
                var_expression = '*%s' % var_name if parameter.is_optional else var_name
                export_expression = ObjCGenerator.objc_protocol_export_expression_for_variable(
                    parameter.type, var_expression)
                if not parameter.is_optional:
                    lines.append(
                        '        resultObject->%s(ASCIILiteral("%s"), %s);' %
                        (keyed_set_method, parameter.parameter_name,
                         export_expression))
                else:
                    lines.append('        if (%s)' % var_name)
                    lines.append(
                        '            resultObject->%s(ASCIILiteral("%s"), %s);'
                        % (keyed_set_method, parameter.parameter_name,
                           export_expression))
            lines.append(
                '        backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());'
            )
        else:
            lines.append(
                '        backendDispatcher()->sendResponse(callId, InspectorObject::create(), String());'
            )

        lines.append('    };')
        return '\n'.join(lines)