private IntPtr SvnStreamWriteWrapper(IntPtr baton, IntPtr data, ref uint len) { SvnError err = SvnError.NoError; SvnStream.WriteFunc func = mFunc as SvnStream.WriteFunc; try { Debug.Write(String.Format("[Callback:{0}]SvnStreamWriteFunc({1:X},{2:X},{3})...", func.Method.Name, baton.ToInt32(), data.ToInt32(), len)); int slen = unchecked ((int)len); err = func(baton, data, ref slen); len = unchecked ((uint)slen); Debug.WriteLine(String.Format("Done({0})", len)); } catch (SvnException e) { err = SvnError.Create(e.AprErr, SvnError.NoError, e.Message); } catch (Exception e) { err = SvnError.Create(215000, SvnError.NoError, e.Message); } return(err); }
// svn_write_fn_t Wrapper public SvnDelegate(SvnStream.WriteFunc func) { mFunc = func; mWrapperFunc = new Svn.svn_write_fn_t(SvnStreamWriteWrapper); }