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"));
		}
Beispiel #3
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));
		}
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
        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));
            }
        }
Beispiel #7
0
        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));
		}