/// <summary> /// Shutdown the Process /// </summary> public void Shutdown() { lock (_lock) { if (_shutdowndone == true) { return; } InternalSave(); if (_deleted != null) { _deleted.SaveIndex(); _deleted.Shutdown(); _deleted = null; } if (_bitmaps != null) { _bitmaps.Commit(Global.FreeBitmapMemoryOnSave); _bitmaps.Shutdown(); _bitmaps = null; } if (HootConfOptions.DocMode) { _docs.Shutdown(); } _shutdowndone = true; } }
private void InternalSave() { _log.Debug("saving index..."); DateTime dt = FastDateTime.Now; // save deleted if (_deleted != null) { _deleted.SaveIndex(); } // save docs if (_docMode) { _docs.SaveIndex(); } if (_bitmaps != null) { _bitmaps.Commit(false); } if (_words != null && _wordschanged == true) { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms, Encoding.UTF8); // save words and bitmaps using (FileStream words = new FileStream(_Path + _FileName + ".words", FileMode.Create)) { var keys = _words.Keys(); int c = keys.Length; _log.Debug("key count = " + c); foreach (string key in _words.Keys()) { try//FIX : remove when bug found { bw.Write(key); bw.Write(_words[key]); } catch (Exception ex) { _log.Error(" on key = " + key); throw ex; } } byte[] b = ms.ToArray(); words.Write(b, 0, b.Length); words.Flush(); words.Close(); } } _log.Debug("save time (ms) = " + FastDateTime.Now.Subtract(dt).TotalMilliseconds); }
private void InternalSave() { _log.Info("saving index..."); DateTime dt = FastDateTime.Now; // save deleted if (_deleted != null) { _deleted.SaveIndex(); } // save docs if (_docMode) { _docs.SaveIndex(); } if (_bitmaps != null) { _bitmaps.Commit(false); } if (_words != null && _wordschanged == true) { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms, Encoding.UTF8); // save words and bitmaps using (FileStream words = new FileStream(_Path + _FileName + ".words", FileMode.Create)) { foreach (string key in _words.Keys()) { bw.Write(key); bw.Write(_words[key]); } byte[] b = ms.ToArray(); words.Write(b, 0, b.Length); words.Flush(); words.Close(); } _wordschanged = false; } _log.Info("save time (ms) = " + FastDateTime.Now.Subtract(dt).TotalMilliseconds); }
/// <summary> /// Save the index file /// </summary> public void SaveIndex() { if (_index != null) { lock (_savelock) { log.Debug("saving to disk"); _index.SaveIndex(); _deleted.SaveIndex(); log.Debug("index saved"); } } }