/// <exception cref="System.IO.IOException"/> internal static OfflineEditsLoader CreateLoader(OfflineEditsVisitor visitor, string inputFileName, bool xmlInput, OfflineEditsViewer.Flags flags) { if (xmlInput) { return(new OfflineEditsXmlLoader(visitor, new FilePath(inputFileName), flags)); } else { FilePath file = null; EditLogInputStream elis = null; OfflineEditsLoader loader = null; try { file = new FilePath(inputFileName); elis = new EditLogFileInputStream(file, HdfsConstants.InvalidTxid, HdfsConstants. InvalidTxid, false); loader = new OfflineEditsBinaryLoader(visitor, elis, flags); } finally { if ((loader == null) && (elis != null)) { elis.Close(); } } return(loader); } }
/// <summary>Process an edit log using the chosen processor or visitor.</summary> /// <param name="inputFilename">The file to process</param> /// <param name="outputFilename">The output file name</param> /// <param name="processor">If visitor is null, the processor to use</param> /// <param name="visitor">If non-null, the visitor to use.</param> /// <returns>0 on success; error code otherwise</returns> public virtual int Go(string inputFileName, string outputFileName, string processor , OfflineEditsViewer.Flags flags, OfflineEditsVisitor visitor) { if (flags.GetPrintToScreen()) { System.Console.Out.WriteLine("input [" + inputFileName + "]"); System.Console.Out.WriteLine("output [" + outputFileName + "]"); } try { if (visitor == null) { visitor = OfflineEditsVisitorFactory.GetEditsVisitor(outputFileName, processor, flags .GetPrintToScreen()); } bool xmlInput = inputFileName.EndsWith(".xml"); OfflineEditsLoader loader = OfflineEditsLoader.OfflineEditsLoaderFactory.CreateLoader (visitor, inputFileName, xmlInput, flags); loader.LoadEdits(); } catch (Exception e) { System.Console.Error.WriteLine("Encountered exception. Exiting: " + e.Message); Sharpen.Runtime.PrintStackTrace(e, System.Console.Error); return(-1); } return(0); }