using System; using System.Text; using p4dn; using System.IO; namespace P4API { public enum MergeAction { Quit, // CMS_QUIT user wants to quit Skip, // CMS_SKIP skip the integration record AcceptMerged, // CMS_MERGED accepted merged theirs and yours AcceptEdit, // CMS_EDIT accepted edited merge AcceptTheirs, // CMS_THEIRS accepted theirs AcceptYours // CMS_YOUR accepted yours } public class MergeData { private P4MergeData _mergeData; internal MergeData(P4MergeData mergeData) { _mergeData = mergeData; } public FileInfo BaseFile { get { return _mergeData.GetBasePath(); } } public FileInfo YourFile { get { return _mergeData.GetYourPath(); } } public MergeAction MergeHint { get { switch (_mergeData.GetMergeHint()) { case P4MergeStatus.CMS_QUIT: return MergeAction.Quit; case P4MergeStatus.CMS_SKIP: return MergeAction.Skip; case P4MergeStatus.CMS_EDIT: return MergeAction.AcceptEdit; case P4MergeStatus.CMS_MERGED: return MergeAction.AcceptMerged; case P4MergeStatus.CMS_YOURS: return MergeAction.AcceptYours; case P4MergeStatus.CMS_THEIRS: return MergeAction.AcceptTheirs; } return MergeAction.Quit; } } public FileInfo TheirFile { get { return _mergeData.GetTheirPath(); } } public FileInfo ResultFile { get { return _mergeData.GetResultPath(); } } public string BaseName { get { return _mergeData.GetBaseName(); } } public string YourName { get { return _mergeData.GetYourName(); } } public string TheirName { get { return _mergeData.GetTheirName(); } } public bool RunMergeTool() { return _mergeData.RunMergeTool(); } } }