public static int Status(SvnPath path, SvnOptRevision revision, SvnWcStatus.Func statusFunc, IntPtr statusBaton, bool descend, bool getAll, bool update, bool noIgnore, SvnClientContext ctx, AprPool pool) { int rev; SvnDelegate statusDelegate = new SvnDelegate(statusFunc); Debug.Write(String.Format("svn_client_status({0},{1},{2},{3},{4:X},{5},{6},{7},{8},{9})...", path, revision, statusFunc.Method.Name, statusBaton.ToInt32(), descend, getAll, update, noIgnore, ctx, pool)); SvnError err = Svn.svn_client_status(out rev, path, revision, (Svn.svn_wc_status_func_t)statusDelegate.Wrapper, statusBaton, (descend ? 1 : 0), (getAll ? 1 : 0), (update ? 1 : 0), (noIgnore ? 1 : 0), ctx, pool); if (!err.IsNoError) { throw new SvnException(err); } Debug.WriteLine(String.Format("Done({0})", rev)); if (update) { return(rev); } else { return(-1); } }
public int Status(string path, SvnRevision revision, SvnWcStatus.Func statusFunc, IntPtr statusBaton, bool descend, bool getAll, bool update, bool noIgnore) { return(Status(new SvnPath(path, mPool), revision.ToSvnOpt(mPool), statusFunc, statusBaton, descend, getAll, update, noIgnore, mContext, mPool)); }
private void SvnWcStatusFuncWrapper(IntPtr baton, IntPtr path, IntPtr status) { SvnWcStatus.Func func = mFunc as SvnWcStatus.Func; try { Debug.WriteLine(String.Format("[Callback:{0}]SvnWcStatusFunc({1:X},{2},{3})", func.Method.Name, baton.ToInt32(), new SvnPath(path), new SvnWcStatus(status))); func(baton, new SvnPath(path), (SvnWcStatus)status); } catch (Exception) { return; } }
// svn_wc_status_func_t Wrapper public SvnDelegate(SvnWcStatus.Func func) { mFunc = func; mWrapperFunc = new Svn.svn_wc_status_func_t(SvnWcStatusFuncWrapper); }