示例#1
0
 public Reader(Stream input, IImmutableDictionary <string, IReadHandler> handlers, IDefaultReadHandler <object> defaultHandler)
 {
     this.initialized    = false;
     this.input          = input;
     this.handlers       = handlers;
     this.defaultHandler = defaultHandler;
     this.cache          = new ReadCache();
 }
示例#2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonParser"/> class.
 /// </summary>
 /// <param name="jsonTextReader">The json text reader.</param>
 /// <param name="handlers">The handlers.</param>
 /// <param name="defaultHandler">The default handler.</param>
 /// <param name="dictionaryBuilder">The dictionary builder.</param>
 /// <param name="listBuilder">The list builder.</param>
 public JsonParser(
     JsonTextReader jsonTextReader,
     IImmutableDictionary<string, IReadHandler> handlers,
     IDefaultReadHandler<object> defaultHandler,
     IDictionaryReader dictionaryBuilder,
     IListReader listBuilder)
     : base(handlers, defaultHandler, dictionaryBuilder, listBuilder)
 {
     this.jp = jsonTextReader;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AbstractParser"/> class.
 /// </summary>
 /// <param name="handlers">The handlers.</param>
 /// <param name="defaultHandler">The default handler.</param>
 /// <param name="dictionaryBuilder">The dictionary builder.</param>
 /// <param name="listBuilder">The list builder.</param>
 protected AbstractParser(IImmutableDictionary<string, IReadHandler> handlers,
     IDefaultReadHandler<object> defaultHandler,
     IDictionaryReader dictionaryBuilder,
     IListReader listBuilder)
 {
     this.handlers = handlers;
     this.defaultHandler = defaultHandler;
     this.dictionaryBuilder = (IDictionaryReader)dictionaryBuilder;
     this.listBuilder = (IListReader)listBuilder;
 }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AbstractParser"/> class.
 /// </summary>
 /// <param name="handlers">The handlers.</param>
 /// <param name="defaultHandler">The default handler.</param>
 /// <param name="dictionaryBuilder">The dictionary builder.</param>
 /// <param name="listBuilder">The list builder.</param>
 protected AbstractParser(IImmutableDictionary <string, IReadHandler> handlers,
                          IDefaultReadHandler <object> defaultHandler,
                          IDictionaryReader dictionaryBuilder,
                          IListReader listBuilder)
 {
     this.handlers          = handlers;
     this.defaultHandler    = defaultHandler;
     this.dictionaryBuilder = (IDictionaryReader)dictionaryBuilder;
     this.listBuilder       = (IListReader)listBuilder;
 }
示例#5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonParser"/> class.
 /// </summary>
 /// <param name="jsonTextReader">The json text reader.</param>
 /// <param name="handlers">The handlers.</param>
 /// <param name="defaultHandler">The default handler.</param>
 /// <param name="dictionaryBuilder">The dictionary builder.</param>
 /// <param name="listBuilder">The list builder.</param>
 public JsonParser(
     JsonTextReader jsonTextReader,
     IImmutableDictionary <string, IReadHandler> handlers,
     IDefaultReadHandler <object> defaultHandler,
     IDictionaryReader dictionaryBuilder,
     IListReader listBuilder)
     : base(handlers, defaultHandler, dictionaryBuilder, listBuilder)
 {
     this.jp = jsonTextReader;
 }
示例#6
0
        /// <summary>
        /// Creates a reader instance.
        /// </summary>
        /// <param name="type">The format to read in.</param>
        /// <param name="input">The input stream to read from.</param>
        /// <param name="customHandlers">
        /// A dictionary of custom ReadHandlers to use in addition or in place of the default ReadHandlers.
        /// </param>
        /// <param name="customDefaultHandler">
        /// A DefaultReadHandler to use for processing encoded values for which there is no read handler.
        /// </param>
        /// <returns>A reader.</returns>
        public static IReader Reader(Format type, Stream input,
                                     IImmutableDictionary <string, IReadHandler> customHandlers,
                                     IDefaultReadHandler <object> customDefaultHandler)
        {
            switch (type)
            {
            case Format.Json:
            case Format.JsonVerbose:
                // TODO: Check if this is true in C# too.
                // JSON parser creation blocks on input stream until 4 bytes
                // are available to determine character encoding - this is
                // unexpected, so defer creation until first read
                return(new DeferredJsonReader(input, customHandlers, customDefaultHandler));

            case Format.MsgPack:
                return(ReaderFactory.GetMsgPackInstance(input, customHandlers, customDefaultHandler));

            default:
                throw new ArgumentException("Unknown Reader type: " + type.ToString());
            }
        }
示例#7
0
 public JsonReader(Stream input, IImmutableDictionary <string, IReadHandler> handlers, IDefaultReadHandler <object> defaultHandler)
     : base(input, handlers, defaultHandler)
 {
 }
示例#8
0
 /// <summary>
 /// Gets the MessagePack instance.
 /// </summary>
 /// <param name="input">The input.</param>
 /// <param name="customHandlers">The custom handlers.</param>
 /// <param name="customDefaultHandler">The custom default handler.</param>
 /// <returns>A reader.</returns>
 public static IReader GetMsgPackInstance(Stream input,
                                          IImmutableDictionary <string, IReadHandler> customHandlers,
                                          IDefaultReadHandler <object> customDefaultHandler)
 {
     throw new NotImplementedException();
 }
示例#9
0
 /// <summary>
 /// Gets the JSON instance.
 /// </summary>
 /// <param name="input">The input.</param>
 /// <param name="customHandlers">The custom handlers.</param>
 /// <param name="customDefaultHandler">The custom default handler.</param>
 /// <returns>A reader.</returns>
 public static IReader GetJsonInstance(Stream input,
                                       IImmutableDictionary <string, IReadHandler> customHandlers,
                                       IDefaultReadHandler <object> customDefaultHandler)
 {
     return(new JsonReader(input, Handlers(customHandlers), DefaultHandler(customDefaultHandler)));
 }
示例#10
0
 private static IDefaultReadHandler <object> DefaultHandler(IDefaultReadHandler <object> customDefaultHandler)
 {
     return(customDefaultHandler != null ? customDefaultHandler : DefaultDefaultHandler());
 }
示例#11
0
 public DeferredJsonReader(Stream input, IImmutableDictionary <string, IReadHandler> customHandlers, IDefaultReadHandler <object> customDefaultHandler)
 {
     this.input                = input;
     this.customHandlers       = customHandlers;
     this.customDefaultHandler = customDefaultHandler;
 }
示例#12
0
 /// <summary>
 /// Creates a reader instance.
 /// </summary>
 /// <param name="type">The format to read in.</param>
 /// <param name="input">The input stream to read from.</param>
 /// <param name="customDefaultHandler">
 /// A DefaultReadHandler to use for processing encoded values for which there is no read handler
 /// </param>
 /// <returns>A reader</returns>
 public static IReader Reader(Format type, Stream input, IDefaultReadHandler <object> customDefaultHandler)
 {
     return(Reader(type, input, null, customDefaultHandler));
 }