| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- using System;
- using System.Collections.Generic;
- using JetBrains.Annotations;
- using Unity.Cloud.Collaborate.Models.Enums;
- using Unity.Cloud.Collaborate.Models.Structures;
- namespace Unity.Cloud.Collaborate.Models.Api
- {
- internal interface ISourceControlProvider
- {
- /// <summary>
- /// Event called whenever the change list is updated.
- /// </summary>
- event Action UpdatedChangeList;
- /// <summary>
- /// Event called whenever the selected change list is updated.
- /// </summary>
- event Action<IReadOnlyList<string>> UpdatedSelectedChangeList;
- /// <summary>
- /// Event called whenever the list of historical revisions is updated.
- /// </summary>
- event Action UpdatedHistoryEntries;
- /// <summary>
- /// Event called whenever a long operation (with progress) has completed / started.
- /// </summary>
- event Action<bool> UpdatedOperationStatus;
- /// <summary>
- /// Event called whenever a long operation progress has changed.
- /// </summary>
- event Action<IProgressInfo> UpdatedOperationProgress;
- /// <summary>
- /// Event called whenever an error has occurred.
- /// </summary>
- event Action<IErrorInfo> ErrorOccurred;
- /// <summary>
- /// Event called whenever an error has cleared.
- /// </summary>
- event Action ErrorCleared;
- /// <summary>
- /// Event called whenever the conflict state changes.
- /// </summary>
- event Action<bool> UpdatedConflictState;
- /// <summary>
- /// Event called whenever the availability of remote revisions changes.
- /// </summary>
- event Action<bool> UpdatedRemoteRevisionsAvailability;
- /// <summary>
- /// Event that is triggered when the project status changes.
- /// </summary>
- event Action<ProjectStatus> UpdatedProjectStatus;
- /// <summary>
- /// Get whether there are available revisions to fetch.
- /// </summary>
- /// <returns>True if there are revisions available</returns>
- bool GetRemoteRevisionAvailability();
- /// <summary>
- /// Get whether there is a conflict or not.
- /// </summary>
- /// <returns>True if there is a conflict.</returns>
- bool GetConflictedState();
- /// <summary>
- /// Get the current progress state.
- /// </summary>
- /// <returns>The current progress state. Null if no operation ongoing.</returns>
- [CanBeNull]
- IProgressInfo GetProgressState();
- /// <summary>
- /// Get the current error state.
- /// </summary>
- /// <returns>The current error state. Null if no errors presently.</returns>
- [CanBeNull]
- IErrorInfo GetErrorState();
- /// <summary>
- /// Returns the current project status.
- /// </summary>
- /// <returns>Current project status.</returns>
- ProjectStatus GetProjectStatus();
- /// <summary>
- /// Request the current change list.
- /// </summary>
- /// <param name="callback">Callback for the result.</param>
- void RequestChangeList([NotNull] Action<IReadOnlyList<IChangeEntry>> callback);
- /// <summary>
- /// Publish files to Collaborate.
- /// </summary>
- /// <param name="message">Message to commit with.</param>
- /// <param name="changes">Changes to publish. Pass null to publish all.</param>
- void RequestPublish([NotNull] string message, [CanBeNull] IReadOnlyList<IChangeEntry> changes = null);
- /// <summary>
- /// Request a single historical revision.
- /// </summary>
- /// <param name="revisionId">Id of the revision to request.</param>
- /// <param name="callback">Callback for the result.</param>
- void RequestHistoryEntry([NotNull] string revisionId, [NotNull] Action<IHistoryEntry> callback);
- /// <summary>
- /// Request a page of historical revisions.
- /// </summary>
- /// <param name="offset">Where to start the page from.</param>
- /// <param name="pageSize">Number of entries in the page.</param>
- /// <param name="callback">Callback for the result.</param>
- void RequestHistoryPage(int offset, int pageSize, [NotNull] Action<IReadOnlyList<IHistoryEntry>> callback);
- /// <summary>
- /// Request the total number of historical revisions.
- /// </summary>
- /// <param name="callback">Callback for the result.</param>
- void RequestHistoryCount([NotNull] Action<int?> callback);
- /// <summary>
- /// Revert the specified file to the state of the current revision.
- /// of the source control system, or delete it if it's a new file.
- /// </summary>
- /// <param name="entry">Entry to discard.</param>
- void RequestDiscard([NotNull] IChangeEntry entry);
- /// <summary>
- /// Revert the specified files to the state of the current revision.
- /// of the source control system.
- /// </summary>
- /// <param name="paths">List of entries to discard.</param>
- void RequestBulkDiscard([NotNull] IReadOnlyList<IChangeEntry> entries);
- /// <summary>
- /// Diff the changes for the file at the given path.
- /// </summary>
- /// <param name="path">Path of the file to diff.</param>
- void RequestDiffChanges([NotNull] string path);
- /// <summary>
- /// Returns true if the provider supports revert.
- /// </summary>
- bool SupportsRevert { get; }
- /// <summary>
- /// Request revert the specified files to the given revision.
- /// </summary>
- /// <param name="revisionId">Revision to revert the files back to.</param>
- /// <param name="files">Files to revert back.</param>
- void RequestRevert([NotNull] string revisionId, [NotNull] IReadOnlyList<string> files);
- /// <summary>
- /// Request to update the state of the project to a new provided revision.
- /// </summary>
- /// <param name="revisionId">New revision id of the project to go to.</param>
- void RequestUpdateTo([NotNull] string revisionId);
- /// <summary>
- /// Request to take the state of the project back to the given (and current) revision.
- /// </summary>
- /// <param name="revisionId">Current revision id of the project to go back to.</param>
- void RequestRestoreTo([NotNull] string revisionId);
- /// <summary>
- /// Request to take the state of the project back to the given revision, but do not change the current revision or history.
- /// </summary>
- /// <param name="revisionId">Revision id to go back to.</param>
- void RequestGoBackTo([NotNull] string revisionId);
- /// <summary>
- /// Clears the error state.
- /// </summary>
- void ClearError();
- /// <summary>
- /// Show the difference between both version of a conlicted file.
- /// </summary>
- /// <param name="path">Path of the file to show.</param>
- void RequestShowConflictedDifferences([NotNull] string path);
- /// <summary>
- /// Request to choose merge for the provided conflict.
- /// </summary>
- /// <param name="path">Path of the file to choose merge for.</param>
- void RequestChooseMerge([NotNull] string path);
- /// <summary>
- /// Request to choose mine for the provided conflict.
- /// </summary>
- /// <param name="paths">Paths of the files to choose mine for.</param>
- void RequestChooseMine([NotNull] string[] paths);
- /// <summary>
- /// Request to choose remote for the provided conflict.
- /// </summary>
- /// <param name="paths">Paths of the files to choose remote for.</param>
- void RequestChooseRemote([NotNull] string[] paths);
- /// <summary>
- /// Request sync to latest revision.
- /// </summary>
- void RequestSync();
- /// <summary>
- /// Request cancel current job.
- /// </summary>
- void RequestCancelJob();
- /// <summary>
- /// Request to turn on the service.
- /// </summary>
- /// <returns></returns>
- void RequestTurnOnService();
- /// <summary>
- /// Show the service page.
- /// </summary>
- void ShowServicePage();
- /// <summary>
- /// Show login page.
- /// </summary>
- void ShowLoginPage();
- /// <summary>
- /// Show no seat page.
- /// </summary>
- void ShowNoSeatPage();
- }
- }
|