protected override bool GenerateValueDeclaration(CodeContainerBase container, string variableName, string sourceName) { container.AddDeclaration(new VariableDeclaration( new VariableType(variableName + "_high", LwipDefs.Vt_U32, "*"), "(" + new VariableType(null, LwipDefs.Vt_U32, "*").ToString() + ")" + sourceName)); container.AddDeclaration(new VariableDeclaration( new VariableType(variableName + "_low", LwipDefs.Vt_U32, "*"), variableName + "_high + 1")); container.AddCode(String.Format("LWIP_UNUSED_ARG({0}_high);", variableName)); container.AddCode(String.Format("LWIP_UNUSED_ARG({0}_low);", variableName)); return false; }
protected override void GenerateGetMethodCodeCore(CodeContainerBase container, string localValueVarName, ref bool localValueVarUsed, string retLenVarName) { container.AddCodeFormat("snmp_encode_truthvalue({0}, /* TODO: put requested bool value here */ 0);", localValueVarName); localValueVarUsed = true; container.AddCode(String.Format("{0} = {1};", retLenVarName, (!String.IsNullOrWhiteSpace(this.FixedValueLength)) ? this.FixedValueLength : "0")); }
public override void GenerateGetMethodCode(CodeContainerBase container, string valueVarName, ref bool valueVarUsed, string retLenVarName) { container.AddCode(String.Format( "{0} = snmp_encode_bits(({1} *){2}, SNMP_MAX_VALUE_SIZE, 0 /* TODO: pass real value here */, {3});", retLenVarName, LwipDefs.Vt_U8, valueVarName, this.bitCount)); valueVarUsed = true; }
protected override void GenerateTestMethodCodeCore(CodeContainerBase container, string localValueVarName, ref bool localValueVarUsed, string lenVarName, ref bool lenVarUsed, string retErrVarName) { VariableDeclaration objIdLenVar = new VariableDeclaration( new VariableType(localValueVarName + "_len", LwipDefs.Vt_U8), String.Format("{0} / sizeof({1})", lenVarName, LwipDefs.Vt_U32)); lenVarUsed = true; container.Declarations.Add(objIdLenVar); base.GenerateTestMethodCodeCore(container, localValueVarName, ref localValueVarUsed, lenVarName, ref lenVarUsed, retErrVarName); container.AddCode(String.Format("LWIP_UNUSED_ARG({0});", objIdLenVar.Type.Name)); }
public virtual void GenerateTestMethodCode(CodeContainerBase container, string valueVarName, ref bool valueVarUsed, string lenVarName, ref bool lenVarUsed, string retErrVarName) { if (this.Restrictions.Count > 0) { bool localVarUsed; if (GenerateValueDeclaration(container, LocalValueName, valueVarName)) { valueVarUsed = true; localVarUsed = false; } else { localVarUsed = true; // do not generate UNUSED_ARG code } if (!String.IsNullOrWhiteSpace(this.FixedValueLength)) { // check for fixed value container.AddCodeFormat("LWIP_ASSERT(\"Invalid length for datatype\", ({0} == {1}));", lenVarName, this.FixedValueLength); lenVarUsed = true; } GenerateTestMethodCodeCore(container, LocalValueName, ref localVarUsed, lenVarName, ref lenVarUsed, retErrVarName); if (!localVarUsed) { container.AddCode(String.Format("LWIP_UNUSED_ARG({0});", LocalValueName)); } } else { container.AddCodeFormat("{0} == {1};", retErrVarName, LwipDefs.Def_ErrorCode_Ok); } }
public virtual void GenerateSetMethodCode(CodeContainerBase container, string valueVarName, ref bool valueVarUsed, string lenVarName, ref bool lenVarUsed, string retErrVarName) { bool localVarUsed; if (GenerateValueDeclaration(container, LocalValueName, valueVarName)) { valueVarUsed = true; localVarUsed = false; } else { localVarUsed = true; // do not generate UNUSED_ARG code } GenerateSetMethodCodeCore(container, LocalValueName, ref localVarUsed, lenVarName, ref lenVarUsed, retErrVarName); if (!localVarUsed) { container.AddCode(String.Format("LWIP_UNUSED_ARG({0});", LocalValueName)); } }
public virtual void GenerateGetMethodCode(CodeContainerBase container, string valueVarName, ref bool valueVarUsed, string retLenVarName) { bool localValueVarUsed; if (GenerateValueDeclaration(container, LocalValueName, valueVarName)) { valueVarUsed = true; localValueVarUsed = false; } else { localValueVarUsed = true; // do not generate UNUSED_ARG code } if (this.FixedValueLength == null) { // check that value with variable length fits into buffer container.AddElement(new Comment(String.Format("TODO: take care that value with variable length fits into buffer: ({0} <= SNMP_MAX_VALUE_SIZE)", retLenVarName), singleLine: true)); } GenerateGetMethodCodeCore(container, LocalValueName, ref localValueVarUsed, retLenVarName); if (!localValueVarUsed) { container.AddCode(String.Format("LWIP_UNUSED_ARG({0});", LocalValueName)); } }
protected override void GenerateGetMethodCodeCore(CodeContainerBase container, string localValueVarName, ref bool localValueVarUsed, string retLenVarName) { container.AddElement(new Comment(String.Format("TODO: put requested value to '*{0}' here. '{0}' has to be interpreted as {1}[]", localValueVarName, LwipDefs.Vt_U32), singleLine: true)); container.AddElement(EmptyLine.SingleLine); container.AddCode(String.Format("{0} = 0; // TODO: return real value length here (should be 'numOfElements * sizeof({1})')", retLenVarName, LwipDefs.Vt_U32)); }