Exemple #1
0
 public Dacs7ParameterException(ushort errorCode) :
     base($"No success error code: <{Dacs7Exception.ResolveErrorCode<ErrorParameter>(errorCode)}>")
 {
     ErrorCode = (ErrorParameter)errorCode;
 }
Exemple #2
0
        public void errorParameterConstruction()
        {
            ErrorParameter errParam = ErrorParameter.CreateInstance(this.errorResponse, "error(0).parameter", 0);

            Assert.AreEqual("shippingTaxName", errParam.name);
        }
Exemple #3
0
        public bool Validate(LogWriter log)
        {
            if (_valid)
            {
                return(true);
            }

            if (_element == null)
            {
                return(false);
            }

            for (var i = _firstIsInstance ? 1 : 0; i < _element.ChildNodes.Count; i++)
            {
                var elementChildNode = _element.ChildNodes[i] as XmlElement;

                if (elementChildNode == null || elementChildNode.Name != "parameter")
                {
                    continue;
                }

                var parameter = new Parameter(elementChildNode);

                if (parameter.IsEllipsis)
                {
                    log.Warn("Ellipsis parameter: hide and bind manually if no alternative exists.");
                    Clear();

                    return(false);
                }

                if (parameter.CsType == "" || parameter.Name == "" ||
                    parameter.MarshalType == "" || SymbolTable.Table.CallByName(parameter.CType, parameter.Name) == "")
                {
                    log.Warn($"Unknown type {parameter.Name} on parameter {parameter.CType}");
                    Clear();

                    return(false);
                }

                if (parameter.IsOptional && parameter.PassAs == string.Empty && parameter.IsUserData == false)
                {
                    HasOptional = true;
                }

                var generatable = parameter.Generatable;

                if (parameter.IsArray)
                {
                    parameter = new ArrayParameter(elementChildNode);

                    if (i < _element.ChildNodes.Count - 1)
                    {
                        if (_element.ChildNodes[i + 1] is XmlElement nextElement && nextElement.Name == "parameter")
                        {
                            var nextElementParam = new Parameter(nextElement);

                            if (nextElementParam.IsCount)
                            {
                                parameter = new ArrayCountPair(elementChildNode, nextElement, false);
                                i++;
                            }
                        }
                    }
                }
                else if (parameter.IsCount)
                {
                    parameter.IsCount = false;

                    if (i < _element.ChildNodes.Count - 1)
                    {
                        if (_element.ChildNodes[i + 1] is XmlElement nextElement && nextElement.Name == "parameter")
                        {
                            var nextElementParam = new Parameter(nextElement);

                            if (nextElementParam.IsArray)
                            {
                                parameter = new ArrayCountPair(nextElement, elementChildNode, true);
                                i++;
                            }
                        }
                    }
                }
                else if (parameter.CType == "GError**" && Throws)
                {
                    parameter = new ErrorParameter(elementChildNode);
                }
                else
                {
                    switch (generatable)
                    {
                    case StructBase _:
                    case ByRefGen _:
                        parameter = new StructParameter(elementChildNode);
                        break;

                    case CallbackGen _:
                        HasCallback = true;
                        break;
                    }
                }

                _paramList.Add(parameter);
            }

            if (Parser.GetVersion(_element.OwnerDocument.DocumentElement) < 3 &&
                HasCallback && Count > 2 && this[Count - 3].Generatable is CallbackGen &&
                this[Count - 2].IsUserData && this[Count - 1].IsDestroyNotify)
            {
                this[Count - 3].Scope = "notified";
            }

            _valid = true;
            return(_valid);
        }
Exemple #4
0
        public void errorParameterConstruction()
        {
            ErrorParameter errParam = new ErrorParameter(this.errorResponse, "error(0).parameter(0).");

            Assert.AreEqual("shippingTaxName", errParam.name);
        }