protected virtual void WriteDictionary(string filename)
        {
            //new File(filename).getParentFile().mkdirs();
            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
            using (Stream os = new FileStream(filename, FileMode.Create, FileAccess.Write))
            {
                DataOutput @out = new OutputStreamDataOutput(os);
                CodecUtil.WriteHeader(@out, BinaryDictionary.DICT_HEADER, BinaryDictionary.VERSION);
                @out.WriteVInt32(m_buffer.Position);

                //WritableByteChannel channel = Channels.newChannel(os);
                // Write Buffer
                m_buffer.Flip();  // set position to 0, set limit to current position
                //channel.write(buffer);

                while (m_buffer.HasRemaining)
                {
                    @out.WriteByte(m_buffer.Get());
                }

                if (Debugging.AssertsEnabled)
                {
                    Debugging.Assert(m_buffer.Remaining == 0L);
                }
            }
        }
Example #2
0
        // TODO: maybe this int[] should instead be the output to the FST...
        protected virtual void WriteTargetMap(string filename)
        {
            //new File(filename).getParentFile().mkdirs();
            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
            using (Stream os = new FileStream(filename, FileMode.Create, FileAccess.Write))
            {
                DataOutput @out = new OutputStreamDataOutput(os);
                CodecUtil.WriteHeader(@out, BinaryDictionary.TARGETMAP_HEADER, BinaryDictionary.VERSION);

                int numSourceIds = lastSourceId + 1;
                @out.WriteVInt32(targetMapEndOffset); // <-- size of main array
                @out.WriteVInt32(numSourceIds + 1);   // <-- size of offset array (+ 1 more entry)
                int prev = 0, sourceId = 0;
                for (int ofs = 0; ofs < targetMapEndOffset; ofs++)
                {
                    int val = targetMap[ofs], delta = val - prev;
                    Debug.Assert(delta >= 0);
                    if (ofs == targetMapOffsets[sourceId])
                    {
                        @out.WriteVInt32((delta << 1) | 0x01);
                        sourceId++;
                    }
                    else
                    {
                        @out.WriteVInt32((delta << 1));
                    }
                    prev += delta;
                }
                Debug.Assert(sourceId == numSourceIds, "sourceId:" + sourceId + " != numSourceIds:" + numSourceIds);
            }
        }
 protected virtual void WritePosDict(string filename)
 {
     //new File(filename).getParentFile().mkdirs();
     System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
     using (Stream os = new FileStream(filename, FileMode.Create, FileAccess.Write))
     {
         DataOutput @out = new OutputStreamDataOutput(os);
         CodecUtil.WriteHeader(@out, BinaryDictionary.POSDICT_HEADER, BinaryDictionary.VERSION);
         @out.WriteVInt32(posDict.Count);
         foreach (string s in posDict)
         {
             if (s == null)
             {
                 @out.WriteByte((byte)0);
                 @out.WriteByte((byte)0);
                 @out.WriteByte((byte)0);
             }
             else
             {
                 string[] data = CSVUtil.Parse(s);
                 if (Debugging.AssertsEnabled)
                 {
                     Debugging.Assert(data.Length == 3, () => "malformed pos/inflection: " + s);
                 }
                 @out.WriteString(data[0]);
                 @out.WriteString(data[1]);
                 @out.WriteString(data[2]);
             }
         }
     }
 }
Example #4
0
            /// <summary>
            /// Sole constructor.
            /// </summary>
            public DiskOrdinalMap(string tmpfile)
            {
                this.tmpfile = tmpfile;
                var outfs = new FileStream(tmpfile, FileMode.OpenOrCreate, FileAccess.Write);

                @out = new OutputStreamDataOutput(outfs);
            }
Example #5
0
        public void Write(string baseDir)
        {
            //string filename = baseDir + System.IO.Path.DirectorySeparatorChar +
            //    typeof(ConnectionCosts).FullName.Replace('.', System.IO.Path.DirectorySeparatorChar) + ConnectionCosts.FILENAME_SUFFIX;

            // LUCENENET specific: we don't need to do a "classpath" output directory, since we
            // are changing the implementation to read files dynamically instead of making the
            // user recompile with the new files.
            string filename = System.IO.Path.Combine(baseDir, typeof(ConnectionCosts).Name + CharacterDefinition.FILENAME_SUFFIX);

            //new File(filename).getParentFile().mkdirs();
            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
            using (Stream os = new FileStream(filename, FileMode.Create, FileAccess.Write))
            {
                DataOutput @out = new OutputStreamDataOutput(os);
                CodecUtil.WriteHeader(@out, ConnectionCosts.HEADER, ConnectionCosts.VERSION);
                @out.WriteVInt32(forwardSize);
                @out.WriteVInt32(backwardSize);
                int last = 0;
                Debug.Assert(costs.Length == backwardSize);
                foreach (short[] a in costs)
                {
                    Debug.Assert(a.Length == forwardSize);
                    for (int i = 0; i < a.Length; i++)
                    {
                        int delta = (int)a[i] - last;
                        @out.WriteVInt32((delta >> 31) ^ (delta << 1));
                        last = a[i];
                    }
                }
            }
        }
        public void Write(string baseDir)
        {
            //string filename = baseDir + System.IO.Path.DirectorySeparatorChar +
            //    typeof(CharacterDefinition).FullName.Replace('.', System.IO.Path.DirectorySeparatorChar) + CharacterDefinition.FILENAME_SUFFIX;

            // LUCENENET specific: we don't need to do a "classpath" output directory, since we
            // are changing the implementation to read files dynamically instead of making the
            // user recompile with the new files.
            string filename = System.IO.Path.Combine(baseDir, typeof(CharacterDefinition).Name + CharacterDefinition.FILENAME_SUFFIX);

            //new File(filename).getParentFile().mkdirs();
            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(baseDir));
            using (Stream os = new FileStream(filename, FileMode.Create, FileAccess.Write))
            {
                DataOutput @out = new OutputStreamDataOutput(os);
                CodecUtil.WriteHeader(@out, CharacterDefinition.HEADER, CharacterDefinition.VERSION);
                @out.WriteBytes(characterCategoryMap, 0, characterCategoryMap.Length);
                for (int i = 0; i < CharacterDefinition.CLASS_COUNT; i++)
                {
                    byte b = (byte)(
                        (invokeMap[i] ? 0x01 : 0x00) |
                        (groupMap[i] ? 0x02 : 0x00)
                        );
                    @out.WriteByte(b);
                }
            }
        }
Example #7
0
 public void AddDone()
 {
     if (@out != null)
     {
         @out.Dispose();
         @out = null;
     }
 }
Example #8
0
 internal virtual void Flush(OutputStreamDataOutput @out)
 {
     using (var ms = StreamUtils.SerializeToStream(this))
     {
         var bytes = ms.ToArray();
         @out.WriteBytes(bytes, 0, bytes.Length);
     }
 }
Example #9
0
        /// <summary>
        /// Calls <see cref="Store(DataOutput)"/> after converting
        /// <see cref="Stream"/> to <see cref="DataOutput"/>
        /// </summary>
        public virtual bool Store(Stream output)
        {
            DataOutput dataOut = new OutputStreamDataOutput(output);

            try
            {
                return(Store(dataOut));
            }
            finally
            {
                IOUtils.Dispose(output);
            }
        }
Example #10
0
        public virtual void Flush(Stream stream)
        {
            OutputStreamDataOutput dos = new OutputStreamDataOutput(stream);

            try
            {
                dos.WriteInt(this.counter);

                // write the labelRepository
                this.labelRepository.Flush(dos);
                // Closes the data output stream
                dos.Dispose();
            }
            finally
            {
                dos.Dispose();
            }
        }