internal void Write(TextWriter writer) { writer.Write(MimeVersionPrefix); writer.WriteLine(MimeVersion); if (RootPart != null) { RootPart.Write(writer); } if (IsMultipart) { boundary = RootPart.ContentTypeParameters["boundary"]; if (string.IsNullOrEmpty(boundary)) { Error("Missing 'boundary' parameter on root Content-Type"); } foreach (MimePart part in Parts) { writer.Write("--"); writer.WriteLine(boundary); part.Write(writer); } // write terminator writer.Write("--"); writer.Write(boundary); writer.WriteLine("--"); } }
/// <summary> /// Flushes all parts in order /// </summary> public void Flush() { try { if (!Monitor.TryEnter(this)) { return; } foreach (var byteCounterStreamPart in Partials.ToArray()) { if (byteCounterStreamPart.State == ByteCounterStreamPartType.Closed) { using (var baseWriterBaseStream = byteCounterStreamPart.BaseStream()) { baseWriterBaseStream.CopyTo(RootPart.BaseStream()); } } Partials.RemoveAt(0); } } finally { if (Monitor.IsEntered(this)) { Monitor.Exit(this); } } }
public override void UpdateMovement() { float cpu = m_counter.NextValue() / 40f; Vector3 size = new Vector3(cpu, cpu, cpu); RootPart.Resize(size); base.UpdateMovement(); }
public void CompositionServiceFromRootSatisfiesRootImports(IContainer container) { var root = container.GetExportedValue <RootPart>(); var myOwnRoot = new RootPart(); root.CompositionService.SatisfyImportsOnce(myOwnRoot); Assert.NotNull(myOwnRoot.CompositionService); Assert.Same(root.AnotherRootPart, myOwnRoot.AnotherRootPart); }
public void AggregatePerms() { lock (m_PermissionsLock) { // aux const uint allmask = (uint)PermissionMask.AllEffective; const uint movemodmask = (uint)(PermissionMask.Move | PermissionMask.Modify); const uint copytransfermast = (uint)(PermissionMask.Copy | PermissionMask.Transfer); uint basePerms = (RootPart.BaseMask & allmask) | (uint)PermissionMask.Move; bool noBaseTransfer = (basePerms & (uint)PermissionMask.Transfer) == 0; uint rootOwnerPerms = RootPart.OwnerMask; uint owner = rootOwnerPerms; uint rootGroupPerms = RootPart.GroupMask; uint group = rootGroupPerms; uint rootEveryonePerms = RootPart.EveryoneMask; uint everyone = rootEveryonePerms; bool needUpdate = false; // date is time of writing april 30th 2017 bool newobj = (RootPart.CreationDate == 0 || RootPart.CreationDate > 1493574994); SceneObjectPart[] parts = m_parts.GetArray(); for (int i = 0; i < parts.Length; i++) { SceneObjectPart part = parts[i]; if (m_DeepEffectivePermsInvalid) { part.AggregatedInnerPermsForGroup(); } owner &= part.AggregatedInnerOwnerPerms; group &= part.AggregatedInnerGroupPerms; if (newobj) { group &= part.AggregatedInnerGroupPerms; } if (newobj) { everyone &= part.AggregatedInnerEveryonePerms; } } // recover modify and move rootOwnerPerms &= movemodmask; owner |= rootOwnerPerms; if ((owner & copytransfermast) == 0) { owner |= (uint)PermissionMask.Transfer; } owner &= basePerms; if (owner != m_EffectiveOwnerPerms) { needUpdate = true; m_EffectiveOwnerPerms = owner; } uint ownertransfermask = owner & (uint)PermissionMask.Transfer; // recover modify and move rootGroupPerms &= movemodmask; group |= rootGroupPerms; if (noBaseTransfer) { group &= ~(uint)PermissionMask.Copy; } else { group |= ownertransfermask; } uint groupOrEveryone = group; uint tmpPerms = group & owner; if (tmpPerms != m_EffectiveGroupPerms) { needUpdate = true; m_EffectiveGroupPerms = tmpPerms; } // recover move rootEveryonePerms &= (uint)PermissionMask.Move; everyone |= rootEveryonePerms; everyone &= ~(uint)PermissionMask.Modify; if (noBaseTransfer) { everyone &= ~(uint)PermissionMask.Copy; } else { everyone |= ownertransfermask; } groupOrEveryone |= everyone; tmpPerms = everyone & owner; if (tmpPerms != m_EffectiveEveryOnePerms) { needUpdate = true; m_EffectiveEveryOnePerms = tmpPerms; } tmpPerms = groupOrEveryone & owner; if (tmpPerms != m_EffectiveGroupOrEveryOnePerms) { needUpdate = true; m_EffectiveGroupOrEveryOnePerms = tmpPerms; } m_DeepEffectivePermsInvalid = false; m_EffectivePermsInvalid = false; if (needUpdate) { RootPart.ScheduleFullUpdate(); } } }
public void ClearVehicleFlags(VehicleFlags value) { RootPart.ClearVehicleFlags(value); }
public void SetVehicleFlags(VehicleFlags value) { RootPart.SetVehicleFlags(value); }
public void ToXml(XmlTextWriter writer, UGUI nextOwner, Vector3 offsetpos, XmlSerializationOptions options = XmlSerializationOptions.None, bool writeOffsetPos = true) { List <ObjectPart> parts = Values; writer.WriteStartElement("SceneObjectGroup"); if (writeOffsetPos) { Vector3 opos = Position - offsetpos; writer.WriteAttributeString("x", opos.X.ToString(System.Globalization.CultureInfo.InvariantCulture)); writer.WriteAttributeString("y", opos.Y.ToString(System.Globalization.CultureInfo.InvariantCulture)); writer.WriteAttributeString("z", opos.Z.ToString(System.Globalization.CultureInfo.InvariantCulture)); } if ((options & XmlSerializationOptions.WriteXml2) == 0) { writer.WriteStartElement("RootPart"); } RootPart.ToXml(writer, options); if ((options & XmlSerializationOptions.WriteXml2) == 0) { writer.WriteEndElement(); } writer.WriteStartElement("OtherParts"); foreach (ObjectPart p in parts) { if (p.ID != RootPart.ID) { if ((options & XmlSerializationOptions.WriteXml2) == 0) { writer.WriteStartElement("Part"); } p.ToXml(writer, nextOwner, options); if ((options & XmlSerializationOptions.WriteXml2) == 0) { writer.WriteEndElement(); } } } writer.WriteEndElement(); bool haveScriptState = false; foreach (ObjectPart p in parts) { foreach (ObjectPartInventoryItem i in p.Inventory.Values) { IScriptState scriptState = i.ScriptState; if (scriptState != null) { if (!haveScriptState) { writer.WriteStartElement("GroupScriptStates"); haveScriptState = true; } writer.WriteStartElement("SavedScriptState"); writer.WriteAttributeString("UUID", i.ID.ToString()); scriptState.ToXml(writer); writer.WriteEndElement(); } } } if (haveScriptState) { writer.WriteEndElement(); } writer.WriteEndElement(); }
/// <inheritdoc /> public void Write(string content) { RootPart.Write(content); }