public void Write(hsStream s) { pnVaultNodeFields f = Fields; s.WriteULong((ulong)f); for (ulong bit = 1; bit != 0 && bit <= (ulong)f; bit <<= 1) { switch (f & (pnVaultNodeFields)bit) { case pnVaultNodeFields.Blob_1: s.WriteInt(fBlob[0].Length); s.WriteBytes(fBlob[0]); break; case pnVaultNodeFields.Blob_2: s.WriteInt(fBlob[1].Length); s.WriteBytes(fBlob[1]); break; case pnVaultNodeFields.CreateAgeName: pnHelpers.WriteString(s, fCreateAgeName); break; case pnVaultNodeFields.CreateAgeUuid: pnHelpers.WriteUuid(s, fCreateAgeGuid.Value); break; case pnVaultNodeFields.CreateTime: TimeSpan cts = fCreateTime.Value - plUnifiedTime.Epoch; s.WriteUInt((uint)cts.Seconds); break; case pnVaultNodeFields.CreatorIdx: s.WriteUInt(fCreatorID.Value); break; case pnVaultNodeFields.CreatorUuid: pnHelpers.WriteUuid(s, fCreatorGuid.Value); break; case pnVaultNodeFields.Int32_1: s.WriteInt(fInt32[0].Value); break; case pnVaultNodeFields.Int32_2: s.WriteInt(fInt32[1].Value); break; case pnVaultNodeFields.Int32_3: s.WriteInt(fInt32[2].Value); break; case pnVaultNodeFields.Int32_4: s.WriteInt(fInt32[3].Value); break; case pnVaultNodeFields.IString64_1: pnHelpers.WriteString(s, fIString64[0]); break; case pnVaultNodeFields.IString64_2: pnHelpers.WriteString(s, fIString64[1]); break; case pnVaultNodeFields.ModifyTime: TimeSpan mts = fModifyTime.Value - plUnifiedTime.Epoch; s.WriteUInt((uint)mts.Seconds); break; case pnVaultNodeFields.NodeIdx: s.WriteUInt(fNodeID.Value); break; case pnVaultNodeFields.NodeType: s.WriteUInt((uint)fNodeType); break; case pnVaultNodeFields.String64_1: pnHelpers.WriteString(s, fString64[0]); break; case pnVaultNodeFields.String64_2: pnHelpers.WriteString(s, fString64[1]); break; case pnVaultNodeFields.String64_3: pnHelpers.WriteString(s, fString64[2]); break; case pnVaultNodeFields.String64_4: pnHelpers.WriteString(s, fString64[3]); break; case pnVaultNodeFields.String64_5: pnHelpers.WriteString(s, fString64[4]); break; case pnVaultNodeFields.String64_6: pnHelpers.WriteString(s, fString64[5]); break; case pnVaultNodeFields.Text_1: pnHelpers.WriteString(s, fText[0]); break; case pnVaultNodeFields.Text_2: pnHelpers.WriteString(s, fText[1]); break; case pnVaultNodeFields.UInt32_1: s.WriteUInt(fUInt32[0].Value); break; case pnVaultNodeFields.UInt32_2: s.WriteUInt(fUInt32[1].Value); break; case pnVaultNodeFields.UInt32_3: s.WriteUInt(fUInt32[2].Value); break; case pnVaultNodeFields.UInt32_4: s.WriteUInt(fUInt32[3].Value); break; case pnVaultNodeFields.Uuid_1: pnHelpers.WriteUuid(s, fGuid[0].Value); break; case pnVaultNodeFields.Uuid_2: pnHelpers.WriteUuid(s, fGuid[1].Value); break; case pnVaultNodeFields.Uuid_3: pnHelpers.WriteUuid(s, fGuid[2].Value); break; case pnVaultNodeFields.Uuid_4: pnHelpers.WriteUuid(s, fGuid[3].Value); break; } } }