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();
}