예제 #1
0
        public override EmberNode CreateNodeFromReader(uint type, BerLib.BerReaderBase reader)
        {
            var tag = reader.Tag;

            switch (type)
            {
            case GlowType.Parameter:               return(new GlowParameter(tag));

            case GlowType.Command:                 return(new GlowCommand(tag));

            case GlowType.Node:                    return(new GlowNode(tag));

            case GlowType.ElementCollection:       return(new GlowElementCollection(tag));

            case GlowType.StreamEntry:             return(new GlowStreamEntry(tag));

            case GlowType.StreamCollection:        return(new GlowStreamCollection(tag));

            case GlowType.StringIntegerPair:       return(new GlowStringIntegerPair(tag));

            case GlowType.StringIntegerCollection: return(new GlowStringIntegerCollection(tag));

            case GlowType.QualifiedNode:           return(new GlowQualifiedNode(tag));

            case GlowType.QualifiedParameter:      return(new GlowQualifiedParameter(tag));

            case GlowType.RootElementCollection:   return(new GlowRootElementCollection(tag));

            case GlowType.StreamDescription:       return(new GlowStreamDescription(tag));

            case GlowType.Matrix:                  return(new GlowMatrix(tag));

            case GlowType.Target:                  return(new GlowTarget(tag));

            case GlowType.Source:                  return(new GlowSource(tag));

            case GlowType.Connection:              return(new GlowConnection(tag));

            case GlowType.QualifiedMatrix:         return(new GlowQualifiedMatrix(tag));

            case GlowType.Label:                   return(new GlowLabel(tag));

            case GlowType.Function:                return(new GlowFunction(tag));

            case GlowType.QualifiedFunction:       return(new GlowQualifiedFunction(tag));

            case GlowType.TupleItemDescription:    return(new GlowTupleItemDescription(tag));

            case GlowType.Invocation:              return(new GlowInvocation(tag));

            case GlowType.InvocationResult:        return(new GlowInvocationResult(tag));

            case GlowType.Template:                return(new GlowTemplate(tag));

            case GlowType.QualifiedTemplate:       return(new GlowQualifiedTemplate(tag));
            }

            return(null);
        }
예제 #2
0
파일: Program.cs 프로젝트: jv42/ember-plus
        public override EmberNode CreateNodeFromReader(uint type, BerReaderBase reader)
        {
            switch(type & ~BerType.ApplicationFlag)
             {
            case 1:
               return CreateSet(type, reader);

            case 2:
               return CreateSequence(type, reader);
             }

             return null;
        }
예제 #3
0
 /// <summary>
 /// Override this method to create custom EmberNode-derived objects.
 /// This method is called when a decoder encounters a TLV with an
 /// application-defined type.
 /// </summary>
 /// <param name="type">The type of the decoded TLV, with BerType.ApplicationFlag set.</param>
 /// <param name="reader">A reader positioned on the TLV. Use the Get() methods of
 /// BerReaderBase to retrieve the value of the TLV.</param>
 /// <returns>Return a new instance of a type derived from EmberNode or null
 /// if no application-defined type is mapped to the passed <paramref name="type"/>.</returns>
 public abstract EmberNode CreateNodeFromReader(uint type, BerReaderBase reader);
예제 #4
0
        /// <summary>
        /// Creates an EmberSet object with the passed BerType. Convenience method
        /// to be called from an overridden CreateNodeFromReader method.
        /// </summary>
        protected EmberNode CreateSet(uint type, BerReaderBase reader)
        {
            var tag = reader.Tag;
             var node = new EmberSet(tag, null);

             node.BerTypeNumber = type;
             return node;
        }