Пример #1
0
    public CefCallbackType(CefStructType parent, StructCategory category, string name, CefConfigData cefConfig, Parser.SignatureData sd, ApiTypeBuilder api, CommentData comments)
        : base(name)
    {
        this.Parent   = parent;
        this.Comments = comments;
        if (cefConfig == null)
        {
            CefConfig = new CefConfigData();
        }
        else
        {
            CefConfig = cefConfig;
        }

        if (category == StructCategory.ApiCallbacks)
        {
            m_callMode     = CfxCallMode.Callback;
            this.Signature = Signature.Create(SignatureType.ClientCallback, this, sd, api);
        }
        else
        {
            m_callMode     = CfxCallMode.FunctionCall;
            this.Signature = Signature.Create(SignatureType.LibraryCall, this, sd, api);
        }
    }
Пример #2
0
    public CefCallbackFunction(CefStructType parent, StructCategory category, string name, CefConfigNode cefConfig, Parser.SignatureNode sd, ApiTypeBuilder api, CommentNode comments)
    {
        Name          = name;
        this.Parent   = parent;
        this.Comments = comments;
        if (cefConfig == null)
        {
            CefConfig = new CefConfigNode();
        }
        else
        {
            CefConfig = cefConfig;
        }

        if (category == StructCategory.Client)
        {
            m_callMode     = CfxCallMode.Callback;
            this.Signature = Signature.Create(SignatureType.ClientCallback, CefName, CefConfig, CallMode, sd, api);
        }
        else
        {
            m_callMode     = CfxCallMode.FunctionCall;
            this.Signature = Signature.Create(SignatureType.LibraryCall, CefName, CefConfig, CallMode, sd, api);
        }
    }
Пример #3
0
    public bool IsPropertySetterFor(CefCallbackFunction getter)
    {
        var retval = IsPropertySetterForPrivate(getter);

        if (retval)
        {
            m_callMode = CfxCallMode.PropertySetter;
        }
        return(retval);
    }
Пример #4
0
    public bool IsPropertyGetter(ref bool isBoolean)
    {
        var retval = IsPropertyGetterPrivate(ref isBoolean);

        if (retval)
        {
            m_callMode = CfxCallMode.PropertyGetter;
        }
        return(retval);
    }
 public override void DebugPrintUnhandledArrayParameters(string cefName, CefConfigNode cefConfig, CfxCallMode callMode)
 {
 }
Пример #6
0
    public virtual void DebugPrintUnhandledArrayArguments(string cefName, CefConfigData cefConfig, CfxCallMode callMode)
    {
        if (cefName == "cef_binary_value_create")
        {
            return;
        }
        if (cefName == "cef_binary_value::get_data")
        {
            return;
        }
        if (cefName == "cef_resource_handler::get_response_headers")
        {
            return;
        }
        if (cefName == "cef_resource_bundle_handler::get_data_resource")
        {
            return;
        }
        if (cefName == "cef_resource_bundle_handler::get_data_resource_for_scale")
        {
            return;
        }
        if (cefName == "cef_urlrequest_client::on_download_data")
        {
            return;
        }
        if (cefName == "cef_zip_reader::read_file")
        {
            return;
        }
        if (cefName == "cef_resource_bundle::get_data_resource")
        {
            return;
        }
        if (cefName == "cef_resource_bundle::get_data_resource_for_scale")
        {
            return;
        }
        if (cefName == "cef_response_filter::filter")
        {
            return;
        }
        if (cefName.StartsWith("cef_image::add_"))
        {
            return;
        }


        for (var i = 0; i <= Arguments.Length - 1; i++)
        {
            var suffixLength = CountArgumentSuffixLength(Arguments[i]);
            if (suffixLength > 0)
            {
                var arrName = Arguments[i].VarName.Substring(0, Arguments[i].VarName.Length - suffixLength);
                if (i > 0 && Arguments[i - 1].VarName.StartsWith(arrName))
                {
                    Debug.Print("UnhandledArrayArgument {0} {1} {2} {3}", callMode, cefName, Arguments[i - 1], Arguments[i]);
                }
                else if (i < Arguments.Length - 1 && Arguments[i + 1].VarName.StartsWith(arrName))
                {
                    Debug.Print("UnhandledArrayArgument {0} {1} {2} {3}", callMode, cefName, Arguments[i], Arguments[i + 1]);
                }
                else
                {
                }
            }
        }
    }
Пример #7
0
    public static Signature Create(SignatureType type, string cefName, CefConfigData cefConfig, CfxCallMode callMode, Parser.SignatureData sd, ApiTypeBuilder api)
    {
        var s  = new Signature(type, sd, api);
        var cs = CustomSignatures.ForFunction(s, cefName, cefConfig);

        if (cs == null)
        {
            s.DebugPrintUnhandledArrayArguments(cefName, cefConfig, callMode);
            AllSignatures.Add(s);
            return(s);
        }
        else
        {
            cs.DebugPrintUnhandledArrayArguments(cefName, cefConfig, callMode);
            AllSignatures.Add(cs);
            return(cs);
        }
    }
 public override void DebugPrintUnhandledArrayArguments(string cefName, CefConfigData cefConfig, CfxCallMode callMode)
 {
 }
Пример #9
0
    public virtual void DebugPrintUnhandledArrayParameters(string cefName, CefConfigNode cefConfig, CfxCallMode callMode)
    {
        if (cefName == "cef_resource_handler::get_response_headers")
        {
            return;
        }

        for (var i = 0; i <= Parameters.Length - 1; i++)
        {
            var suffixLength = CountParameterSuffixLength(Parameters[i]);
            if (suffixLength > 0)
            {
                var arrName = Parameters[i].VarName.Substring(0, Parameters[i].VarName.Length - suffixLength);
                int iArray  = -1;
                if (i > 0 && Parameters[i - 1].VarName.StartsWith(arrName))
                {
                    iArray = i - 1;
                }
                else if (i < Parameters.Length - 1 && Parameters[i + 1].VarName.StartsWith(arrName))
                {
                    iArray = i + 1;
                }
                else
                {
                }
                if (iArray >= 0)
                {
                    switch (Parameters[iArray].ParameterType.Name)
                    {
                    case "void*":
                    case "void**":
                        //binary data
                        break;

                    default:
                        Debug.Print("UnhandledArrayArgument {0} {1} {2} {3}", callMode, cefName, Parameters[i], Parameters[iArray]);
                        break;
                    }
                }
            }
        }
    }