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);
 }