forked from JMS-1/DVB.NET---VCR.NET
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDataGraph.Decryption.cs
More file actions
85 lines (74 loc) · 3.24 KB
/
DataGraph.Decryption.cs
File metadata and controls
85 lines (74 loc) · 3.24 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using JMS.DVB.DeviceAccess.Pipeline;
using JMS.DVB.DeviceAccess.Interfaces;
namespace JMS.DVB.DeviceAccess
{
partial class DataGraph
{
/// <summary>
/// Enthält alle Informationen zum Entschlüsseln einer Quelle.
/// </summary>
public partial class DecryptToken : PipelineToken<DecryptToken>, IDisposable
{
/// <summary>
/// Die Liste der zu entschlüsselnden Quellen.
/// </summary>
public SourceIdentifier[] Sources { get; private set; }
/// <summary>
/// Erzeugt eine neue Beschreibung.
/// </summary>
/// <param name="pipeline">Die zugehörige Gesamtliste aller Aktionen gleicher Art.</param>
/// <param name="sources">Die Liste der zu entschlüsselnden Quellen.</param>
private DecryptToken( ActionPipeline<DecryptToken> pipeline, SourceIdentifier[] sources )
: base( pipeline )
{
// Remember
Sources = sources;
}
/// <summary>
/// Erzeugt ein neue Zustandsinformation.
/// </summary>
/// <param name="pipeline">Die zugehörige Gesamtliste aller Aktionen gleicher Art.</param>
/// <param name="sources">Die Liste der zu entschlüsselnden Quellen.</param>
/// <returns>Die gewünschte Information.</returns>
/// <exception cref="ArgumentNullException">Es wurde kein Graph übergeben.</exception>
internal static DecryptToken Create( ActionPipeline<DecryptToken> pipeline, SourceIdentifier[] sources )
{
// Create new
return new DecryptToken( pipeline, sources );
}
/// <summary>
/// Meldet das Warten auf die Informationen zu einer Quelle an.
/// </summary>
/// <param name="source">Die betroffene Quelle.</param>
/// <param name="consumer">Die bei Bereitstellung der Informationen zu startende Aktion.</param>
public void WaitForPMT( SourceIdentifier source, Action<EPG.Tables.PMT> consumer )
{
// Blind forward
Pipeline.Graph.ActivatePMTWatchDog( source, consumer );
}
/// <summary>
/// Erstellt eine neue Überwachung der Nutzdatenströme.
/// </summary>
/// <param name="processor">Der Verarbeitungsalgorithmus.</param>
/// <param name="services">Die Liste der Dienste.</param>
public void WaitForPMTs( Func<EPG.Tables.PMT, bool, bool> processor, params SourceIdentifier[] services )
{
// Forward
Pipeline.Graph.ActivatePMTWatchDog( processor, services );
}
#region IDisposable Members
/// <summary>
/// Beendet die Nutzung dieser Instanz endgültig.
/// </summary>
public void Dispose()
{
}
#endregion
}
/// <summary>
/// Die für die Entschlüsselung einer Quelle verantwortliche Aktionslist.
/// </summary>
public ActionPipeline<DecryptToken> DecryptionPipeline { get; private set; }
}
}