コード例 #1
0
 public Program(string name, ushort port, X509Certificate2 certificate)
 {
     _dlcs = new DataLinkCollectionStore(port);
     _dlf  = new DataLinkFactory(_dlcs, this, port, certificate);
     _dlcs.Add(nameof(Program), this, name);
     _dlc = _dlcs.Get(nameof(Program));
     _dlc.Subscribe(BroadcastChannel, OnBroadcast);
     _dlc.Subscribe(P2PChannel, OnP2P);
     _dlc.Subscribe(PerfChannel, OnPerf);
     _ = StartAutoSync();
 }
コード例 #2
0
ファイル: DLCExtensions.cs プロジェクト: vwxyzh/dl
 public static void Subscribe(this DataLinkCollection dlc, string channel, Action <DataLink, string, Memory <byte> > action) =>
 dlc.Subscribe(
     channel,
     (d, s, m) =>
 {
     action(d, s, m);
     return(new ValueTask <bool>(true));
 });
コード例 #3
0
ファイル: DLCExtensions.cs プロジェクト: vwxyzh/dl
 public static void Subscribe(this DataLinkCollection dlc, string channel, Func <DataLink, string, Memory <byte>, ValueTask> action) =>
 dlc.Subscribe(
     channel,
     async(d, s, m) =>
 {
     await action(d, s, m);
     return(true);
 });
コード例 #4
0
        private void JoinGroup(string line)
        {
            var groupName = line.Substring(2).Trim();

            if (groupName.Length == 0 || groupName.Length > 1024 || !NameRegex.IsMatch(groupName))
            {
                Console.WriteLine("Bad command.");
                return;
            }
            _dlc.Subscribe(groupName, OnGroupMessage);
        }
コード例 #5
0
ファイル: DLCExtensions.cs プロジェクト: vwxyzh/dl
 public static void Subscribe(this DataLinkCollection dlc, string channel, Func <DataLink, string, Memory <byte>, bool> action) =>
 dlc.Subscribe(
     channel,
     (d, s, m) => new ValueTask <bool>(action(d, s, m)));