protected Hashtable CreateWriterMap()
        {
            Hashtable result = new Hashtable();
            Writer    w1     = new OnePassWriter(this);
            Writer    w2     = new FixWriter(this);
            Writer    w3     = new HeapWriterWithTempTable(this);
            Writer    w4     = new HeapWriter(this);
            Writer    w5     = new HeapWriterWithTempTable(this);
            Writer    w6     = new PadWriter(this);

            // have nrows, have strings, destination seekable, write mode
            result.Add(new Config(true, true, true, StringWriteMode.TRUNCATE), w1);
            result.Add(new Config(true, true, true, StringWriteMode.HEAP), w4);
            result.Add(new Config(true, true, true, StringWriteMode.PAD), w6);
            result.Add(new Config(true, true, false, StringWriteMode.TRUNCATE), w1);
            result.Add(new Config(true, true, false, StringWriteMode.HEAP), w5);
            result.Add(new Config(true, true, false, StringWriteMode.PAD), w6);

            result.Add(new Config(true, false, true, StringWriteMode.TRUNCATE), w1);
            result.Add(new Config(true, false, true, StringWriteMode.HEAP), w1);
            result.Add(new Config(true, false, true, StringWriteMode.PAD), w1);
            result.Add(new Config(true, false, false, StringWriteMode.TRUNCATE), w1);
            result.Add(new Config(true, false, false, StringWriteMode.HEAP), w1);
            result.Add(new Config(true, false, false, StringWriteMode.PAD), w1);

            result.Add(new Config(false, true, true, StringWriteMode.TRUNCATE), w2);
            result.Add(new Config(false, true, true, StringWriteMode.HEAP), w4);
            result.Add(new Config(false, true, true, StringWriteMode.PAD), w6);
            result.Add(new Config(false, true, false, StringWriteMode.TRUNCATE), w3);
            result.Add(new Config(false, true, false, StringWriteMode.HEAP), w5);
            result.Add(new Config(false, true, false, StringWriteMode.PAD), w6);

            result.Add(new Config(false, false, true, StringWriteMode.TRUNCATE), w2);
            result.Add(new Config(false, false, true, StringWriteMode.HEAP), w2);
            result.Add(new Config(false, false, true, StringWriteMode.PAD), w2);
            result.Add(new Config(false, false, false, StringWriteMode.TRUNCATE), w3);
            result.Add(new Config(false, false, false, StringWriteMode.HEAP), w3);
            result.Add(new Config(false, false, false, StringWriteMode.PAD), w3);

            return(result);
        }
Пример #2
0
        protected Hashtable CreateWriterMap()
        {
            Hashtable result = new Hashtable();
              Writer w1 = new OnePassWriter(this);
              Writer w2 = new FixWriter(this);
              Writer w3 = new HeapWriterWithTempTable(this);
              Writer w4 = new HeapWriter(this);
              Writer w5 = new HeapWriterWithTempTable(this);
              Writer w6 = new PadWriter(this);

              // have nrows, have strings, destination seekable, write mode
              result.Add(new Config(true, true, true, StringWriteMode.TRUNCATE), w1);
              result.Add(new Config(true, true, true, StringWriteMode.HEAP), w4);
              result.Add(new Config(true, true, true, StringWriteMode.PAD), w6);
              result.Add(new Config(true, true, false, StringWriteMode.TRUNCATE), w1);
              result.Add(new Config(true, true, false, StringWriteMode.HEAP), w5);
              result.Add(new Config(true, true, false, StringWriteMode.PAD), w6);

              result.Add(new Config(true, false, true, StringWriteMode.TRUNCATE), w1);
              result.Add(new Config(true, false, true, StringWriteMode.HEAP), w1);
              result.Add(new Config(true, false, true, StringWriteMode.PAD), w1);
              result.Add(new Config(true, false, false, StringWriteMode.TRUNCATE), w1);
              result.Add(new Config(true, false, false, StringWriteMode.HEAP), w1);
              result.Add(new Config(true, false, false, StringWriteMode.PAD), w1);

              result.Add(new Config(false, true, true, StringWriteMode.TRUNCATE), w2);
              result.Add(new Config(false, true, true, StringWriteMode.HEAP), w4);
              result.Add(new Config(false, true, true, StringWriteMode.PAD), w6);
              result.Add(new Config(false, true, false, StringWriteMode.TRUNCATE), w3);
              result.Add(new Config(false, true, false, StringWriteMode.HEAP), w5);
              result.Add(new Config(false, true, false, StringWriteMode.PAD), w6);

              result.Add(new Config(false, false, true, StringWriteMode.TRUNCATE), w2);
              result.Add(new Config(false, false, true, StringWriteMode.HEAP), w2);
              result.Add(new Config(false, false, true, StringWriteMode.PAD), w2);
              result.Add(new Config(false, false, false, StringWriteMode.TRUNCATE), w3);
              result.Add(new Config(false, false, false, StringWriteMode.HEAP), w3);
              result.Add(new Config(false, false, false, StringWriteMode.PAD), w3);

              return result;
        }