internal DynamicBoundConfiguration(
     char valueSeparator,
     char escapedValueStartAndStop,
     char escapeValueEscapeChar,
     RowEndings rowEndings,
     ReadHeaders readHeader,
     WriteHeaders writeHeaders,
     WriteTrailingNewLines writeTrailingNewLine,
     MemoryPool <char> memoryPool,
     char?commentChar,
     int?writeBufferSizeHint,
     int readBufferSizeHint,
     IDynamicTypeConverter dynamicTypeConverter,
     DynamicRowDisposal dynamicRowDisposal
     ) :
     base(
         valueSeparator,
         escapedValueStartAndStop,
         escapeValueEscapeChar,
         rowEndings,
         readHeader,
         writeHeaders,
         writeTrailingNewLine,
         memoryPool,
         commentChar,
         writeBufferSizeHint,
         readBufferSizeHint,
         dynamicTypeConverter,
         dynamicRowDisposal
         )
 {
 }
Пример #2
0
        /// <summary>
        /// Set the ITypeDescriber used to discover and configure the
        /// columns that are read and written.
        /// </summary>
        public OptionsBuilder WithDynamicTypeConverter(IDynamicTypeConverter converter)
        {
            converter = converter ?? DynamicTypeConverters.Default;

            DynamicTypeConverter = converter;
            return(this);
        }
Пример #3
0
        /// <summary>
        /// For working with concrete types.
        /// </summary>
        protected BoundConfigurationBase(
            InstanceBuilderDelegate <T> newCons,
            Column[] deserializeColumns,
            Column[] serializeColumns,
            bool[] serializeColumnsNeedEscape,
            char valueSeparator,
            char escapedValueStartAndStop,
            char escapeValueEscapeChar,
            RowEndings rowEndings,
            ReadHeaders readHeader,
            WriteHeaders writeHeaders,
            WriteTrailingNewLines writeTrailingNewLine,
            MemoryPool <char> memoryPool,
            char?commentChar,
            int?writeBufferSizeHint,
            int readBufferSizeHint
            )
        {
            NewCons                    = newCons;
            DeserializeColumns         = deserializeColumns;
            SerializeColumns           = serializeColumns;
            SerializeColumnsNeedEscape = serializeColumnsNeedEscape;
            ValueSeparator             = valueSeparator;
            ValueSeparatorMemory       = ValueSeparator.ToString().AsMemory();
            EscapedValueStartAndStop   = escapedValueStartAndStop;
            EscapeValueEscapeChar      = escapeValueEscapeChar;
            RowEnding                  = rowEndings;
            WriteBufferSizeHint        = writeBufferSizeHint;
            ReadBufferSizeHint         = readBufferSizeHint;

            switch (RowEnding)
            {
            case RowEndings.CarriageReturn:
                RowEndingMemory = CarriageReturn;
                break;

            case RowEndings.CarriageReturnLineFeed:
                RowEndingMemory = CarriageReturnLineFeed;
                break;

            case RowEndings.LineFeed:
                RowEndingMemory = LineFeed;
                break;

            default:
                // for cases like detecting headers, actually trying to write is NO GOOD...
                //     but construction is fine
                RowEndingMemory = default;
                break;
            }

            ReadHeader           = readHeader;
            WriteHeader          = writeHeaders;
            WriteTrailingNewLine = writeTrailingNewLine;
            MemoryPool           = memoryPool;
            CommentChar          = commentChar;
            DynamicTypeConverter = null;
        }
Пример #4
0
        internal void Init(IDynamicRowOwner owner, int rowNumber, int width, IDynamicTypeConverter converter, string[] names, MemoryPool <char> pool)
        {
            if (!IsDisposed)
            {
                Throw.InvalidOperationException("DynamicRow not in an uninitializable state");
            }

            Owner      = owner;
            RowNumber  = rowNumber;
            Converter  = converter;
            MemoryPool = pool;
            Width      = width;
            Names      = names;
            Generation++;
        }
Пример #5
0
 public DynamicTypeFactory(DynamicModuleManager manager, Type itemType)
 {
     this.manager   = manager;
     this.itemType  = itemType;
     this.converter = new DynamicTypeConverter();
 }
Пример #6
0
        public void AddDynamicConverter(IDynamicTypeConverter dynamicConverter)
        {
            var typeTuple = Tuple.Create(dynamicConverter.SourceType, dynamicConverter.DestinationType);

            this.converterFactories.Add(typeTuple, dynamicConverter.ConverterFactory);
        }