Tpm2Lib.TpmStructureBase.ToNet C# (CSharp) Method

ToNet() private method

Implements marshaling logic for most of the TPM object types. Can be overridden if a custom marshaling logic is required (e.g. when marshaling of a field depends on other field's value).
private ToNet ( Marshaller m ) : void
m Marshaller
return void
        internal virtual void ToNet(Marshaller m)
        {
            var members = GetFieldsToMarshal();
            dbg.Indent();
            for (int i = 0; i < members.Length; ++i)
            {
                var mem = members[i];
                object memVal = Globs.GetMember(mem, this);
                dbg.Trace(i + ": " + mem.Name  +  " = " + memVal);
                if (mem.SizeLength > 0)
                {
                    bool arr = mem.WireType == MarshalType.VariableLengthArray;
                    int len = arr ? (memVal == null ? 0 : ((Array)memVal).Length)
                                  : Marshaller.GetTpmRepresentation(memVal).Length;
                    dbg.Trace("Sending " + (arr ? "Array " : "Struct ") + mem.Name + " of size " + len);
                    m.PutSizeTag(len, mem.SizeLength, mem.SizeName);
                }
                m.Put(memVal, mem.Name);
            }
            dbg.Unindent();
        }