-
Notifications
You must be signed in to change notification settings - Fork 7
/
IStreamService.cs
46 lines (41 loc) · 1.83 KB
/
IStreamService.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
* Magic Cloud, copyright (c) 2023 Thomas Hansen. See the attached LICENSE file for details. For license inquiries you can send an email to thomas@ainiro.io
*/
using System.IO;
using System.Threading.Tasks;
namespace magic.node.contracts
{
/// <summary>
/// Contract for handling streams in Magic.
/// </summary>
public interface IStreamService
{
/// <summary>
/// Returns a stream wrapping the specified filename.
/// </summary>
/// <param name="path">Absolute path to file.</param>
/// <returns>Open Stream object.</returns>
Stream OpenFile(string path);
/// <summary>
/// Returns a stream wrapping the specified filename async.
/// </summary>
/// <param name="path">Absolute path to file.</param>
/// <returns>Open Stream object.</returns>
Task<Stream> OpenFileAsync(string path);
/// <summary>
/// Saves the specified stream to the specified filename.
/// </summary>
/// <param name="stream">Stream wrapping content to save.</param>
/// <param name="path">Absolute path to filename to save stream's content to.</param>
/// <param name="overwrite">If true will overwrite existing file at specified path.</param>
void SaveFile(Stream stream, string path, bool overwrite);
/// <summary>
/// Saves the specified stream to the specified filename async.
/// </summary>
/// <param name="stream">Stream wrapping content to save.</param>
/// <param name="path">Absolute path to filename to save stream's content to.</param>
/// <param name="overwrite">If true will overwrite existing file at specified path.</param>
/// <returns>Awaitable task.</returns>
Task SaveFileAsync(Stream stream, string path, bool overwrite);
}
}