コード例 #1
0
ファイル: ServiceAdapter.cs プロジェクト: KeitoTobi1/xeus
    public async ValueTask <Shout?> TryExportShoutAsync(OmniSignature signature, CancellationToken cancellationToken = default)
    {
        var input  = new TryExportShoutRequest(signature);
        var output = await _axisService.TryExportShoutAsync(input, cancellationToken);

        return(output.Shout);
    }
コード例 #2
0
    public static string SignatureToString(OmniSignature signature)
    {
        using var bytesPipe = new BytesPipe(BytesPool.Shared);
        signature.Export(bytesPipe.Writer, BytesPool.Shared);
        var hash = new OmniHash(OmniHashAlgorithmType.Sha2_256, Sha2_256.ComputeHash(bytesPipe.Reader.GetSequence()));

        return(hash.ToString(ConvertStringType.Base16));
    }
コード例 #3
0
        public bool Exists(OmniSignature signature)
        {
            lock (_lockObject)
            {
                var signatureEntity = OmniSignatureEntity.Import(signature);

                var col = this.GetCollection();
                return(col.Exists(n => n.Signature == signatureEntity));
            }
        }
コード例 #4
0
        public void Delete(OmniSignature signature)
        {
            lock (_lockObject)
            {
                var signatureEntity = OmniSignatureEntity.Import(signature);

                var col = this.GetCollection();
                col.DeleteMany(n => n.Signature == signatureEntity);
            }
        }
コード例 #5
0
        public PublishedProfileItem?FindOne(OmniSignature signature)
        {
            lock (_lockObject)
            {
                var signatureEntity = OmniSignatureEntity.Import(signature);

                var col = this.GetCollection();
                return(col.FindOne(n => n.Signature == signatureEntity).Export());
            }
        }
コード例 #6
0
        public IEnumerable <SubscribedShoutItem> Find(OmniSignature signature)
        {
            lock (_lockObject)
            {
                var signatureEntity = OmniSignatureEntity.Import(signature);

                var col = this.GetCollection();
                return(col.Find(n => n.Signature == signatureEntity).Select(n => n.Export()));
            }
        }
コード例 #7
0
        public void Delete(OmniSignature signature, string registrant)
        {
            lock (_lockObject)
            {
                var signatureEntity = OmniSignatureEntity.Import(signature);

                var col = this.GetCollection();
                col.DeleteMany(n => n.Signature == signatureEntity && n.Registrant == registrant);
            }
        }
コード例 #8
0
        public SubscribedShoutItem?FindOne(OmniSignature signature, string registrant)
        {
            lock (_lockObject)
            {
                var signatureEntity = OmniSignatureEntity.Import(signature);

                var col = this.GetCollection();
                return(col.FindOne(n => n.Signature == signatureEntity && n.Registrant == registrant).Export());
            }
        }
コード例 #9
0
        public IEnumerable <UnicastClue> GetUnicastClues(OmniSignature signature)
        {
            lock (_lockObject)
            {
                var list = new List <UnicastClue>();

                foreach (var dic in _UnicastClues.Values)
                {
                    if (dic.TryGetValue(signature, out var dic2))
                    {
                        list.AddRange(dic2.Values.SelectMany(n => n));
                    }
                }

                return(list);
            }
        }
コード例 #10
0
        public BroadcastClue GetBroadcastClue(OmniSignature signature, string type)
        {
            lock (_lockObject)
            {
                _broadcastTypes[type] = DateTime.UtcNow;

                if (_BroadcastClues.TryGetValue(type, out var dic))
                {
                    if (dic.TryGetValue(signature, out var BroadcastClue))
                    {
                        return(BroadcastClue);
                    }
                }

                return(null);
            }
        }
コード例 #11
0
        public IEnumerable <BroadcastClue> GetBroadcastClues(OmniSignature signature)
        {
            lock (_lockObject)
            {
                var list = new List <BroadcastClue>();

                foreach (var dic in _BroadcastClues.Values)
                {
                    if (dic.TryGetValue(signature, out var BroadcastClue))
                    {
                        list.Add(BroadcastClue);
                    }
                }

                return(list);
            }
        }
コード例 #12
0
        public IEnumerable <UnicastClue> GetUnicastClues(OmniSignature signature, string type)
        {
            lock (_lockObject)
            {
                _unicastTypes[type] = DateTime.UtcNow;

                var list = new List <UnicastClue>();

                if (_UnicastClues.TryGetValue(type, out var dic))
                {
                    if (dic.TryGetValue(signature, out var dic2))
                    {
                        list.AddRange(dic2.Values.SelectMany(n => n));
                    }
                }

                return(list);
            }
        }
コード例 #13
0
ファイル: UnicastMetadata.cs プロジェクト: abd0ahmed/xeus
        public static UnicastClue Create(string type, OmniSignature signature, Timestamp creationTime, Clue clue, OmniDigitalSignature digitalSignature)
        {
            var hub = new Hub();

            try
            {
                var target = new UnicastClue(type, signature, creationTime, clue, null);
                target.Export(hub.Writer, BufferPool.Shared);
                hub.Writer.Complete();

                var certificate = OmniCertificate.Create(digitalSignature, hub.Reader.GetSequence());
                hub.Reader.Complete();

                return(new UnicastClue(type, signature, creationTime, clue, certificate));
            }
            finally
            {
                hub.Reset();
            }
        }
コード例 #14
0
ファイル: Session.cs プロジェクト: KeitoTobi1/xeus
 public Session(IConnection connection, OmniAddress address, SessionHandshakeType handshakeType, OmniSignature signature, string scheme)
 {
     this.Connection    = connection;
     this.Address       = address;
     this.HandshakeType = handshakeType;
     this.Signature     = signature;
     this.Scheme        = scheme;
 }
コード例 #15
0
ファイル: ServiceAdapter.cs プロジェクト: KeitoTobi1/xeus
 public async ValueTask UnsubscribeShoutAsync(OmniSignature signature, string registrant, CancellationToken cancellationToken = default)
 {
     var input = new UnsubscribeShoutRequest(signature, registrant);
     await _axisService.UnsubscribeShoutAsync(input, cancellationToken);
 }