private StreamDescription ReadStreamDescriptor(EmberReader reader) { reader.AssertInnerNumber(GlowStreamDescription.InnerNumber); reader.ReadAndAssertOuter(GlowStreamDescription.Format.OuterId); var streamFormat = this.ReadEnum <StreamFormat>(reader, GlowStreamDescription.Format.Name); reader.ReadAndAssertOuter(GlowStreamDescription.Offset.OuterId); var offset = this.ReadInt(reader, GlowStreamDescription.Offset.Name); while (reader.Read() && (reader.InnerNumber != InnerNumber.EndContainer)) { reader.Skip(); } return(new StreamDescription(streamFormat, offset)); }
internal void Read( EmberReader reader, IDictionary <int, IInvocationResult> pendingInvocations, IReadOnlyDictionary <int, IEnumerable <IStreamedParameter> > streamedParameters) { reader.ReadAndAssertOuter(GlowGlobal.Root.OuterId); switch (reader.InnerNumber) { case GlowRootElementCollection.InnerNumber: this.ReadChildren(reader); break; case GlowInvocationResult.InnerNumber: ReadInvocationResult(reader, pendingInvocations); break; case GlowStreamCollection.InnerNumber: ReadStreamCollection(reader, streamedParameters); break; default: reader.Skip(); break; } }
private void ReadQualifiedChild(EmberReader reader, ElementType actualType) { reader.ReadAndAssertOuter(GlowQualifiedNode.Path.OuterId); var path = reader.AssertAndReadContentsAsInt32Array(); if (path.Length == 0) { throw new ModelException("Invalid path for a qualified element."); } this.ReadQualifiedChild(reader, actualType, path, 0); }
private List <KeyValuePair <string, int> > ReadEnumMap(EmberReader reader) { reader.AssertInnerNumber(GlowStringIntegerCollection.InnerNumber); var result = new List <KeyValuePair <string, int> >(); while (reader.Read() && (reader.InnerNumber != InnerNumber.EndContainer)) { reader.AssertInnerNumber(GlowStringIntegerPair.InnerNumber); reader.ReadAndAssertOuter(GlowStringIntegerPair.EntryString.OuterId); var entryString = reader.AssertAndReadContentsAsString(); reader.ReadAndAssertOuter(GlowStringIntegerPair.EntryInteger.OuterId); var entryInteger = this.ReadInt(reader, GlowStringIntegerPair.EntryInteger.Name); while (reader.Read() && (reader.InnerNumber != InnerNumber.EndContainer)) { reader.Skip(); } result.Add(new KeyValuePair <string, int>(entryString, entryInteger)); } return(result); }
internal virtual KeyValuePair <string, ParameterType> ReadTupleItemDescription( EmberReader reader, KeyValuePair <string, ParameterType>[] expectedTypes, int index) { reader.AssertInnerNumber(GlowTupleItemDescription.InnerNumber); reader.ReadAndAssertOuter(GlowTupleItemDescription.Type.OuterId); var type = this.ReadEnum <ParameterType>(reader, GlowTupleItemDescription.Type.Name); string name = null; while (reader.Read() && (reader.InnerNumber != InnerNumber.EndContainer)) { switch (reader.GetContextSpecificOuterNumber()) { case GlowTupleItemDescription.TheName.OuterNumber: name = reader.AssertAndReadContentsAsString(); break; default: reader.Skip(); break; } } return(new KeyValuePair <string, ParameterType>(name, type)); }
internal void ReadChild(EmberReader reader, ElementType actualType) { reader.ReadAndAssertOuter(GlowNode.Number.OuterId); this.ReadChild(reader, actualType, reader.AssertAndReadContentsAsInt32()); }