OSDN Git Service

Ver.1.0.0.185 Task187 Interface based design
[simplebackup/SBTGitRepository.git] / Main / SimpleBackup.Core / Services / IBackupService.cs
1 //-----------------------------------------------------------------------
2 // <copyright file="IBackupService.cs" company="Takayoshi Matsuyama">
3 //     Copyright (c) Takayoshi Matsuyama. All rights reserved.
4 // </copyright>
5 //-----------------------------------------------------------------------
6
7 // This file is part of Simple Backup.
8 //
9 // Simple Backup is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // Simple Backup is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with Simple Backup.  If not, see <http://www.gnu.org/licenses/>.
21
22 namespace SimpleBackup.Core.Services
23 {
24     using System;
25     using System.Threading;
26     using SimpleBackup.Core.Models;
27
28     /// <summary>
29     /// Provides backup function.
30     /// </summary>
31     public interface IBackupService
32     {
33         /// <summary>
34         /// Occurs when file backup progress is updated.
35         /// </summary>
36         event EventHandler<FileBackupProgressEventArgs> NofityFileBackupProgress;
37
38         /// <summary>
39         /// Gets a value indicating whether this service is ready for backup.
40         /// </summary>
41         bool IsReadyForBackup { get; }
42
43         /// <summary>
44         /// Gets a value indicating whether this service is executing backup.
45         /// </summary>
46         bool IsExecutingBackup { get; }
47
48         /// <summary>
49         /// Backups multipul files.
50         /// </summary>
51         /// <param name="cancellationToken">The cancellation token.</param>
52         /// <param name="resultInfos">The array of result information.</param>
53         void BackupMultipulFiles(CancellationToken cancellationToken, out IResultInfo[] resultInfos);
54
55         /// <summary>
56         /// Backups single file.
57         /// </summary>
58         /// <param name="backupInfoId">The backup information identifier.</param>
59         /// <returns>The result information.</returns>
60         IResultInfo BackupSingleFile(Guid backupInfoId);
61     }
62 }