コード例 #1
0
 public EventListenerRequest(IEventContract contract, Cache cache)
     : base(contract.Reference, HttpMethod.Get)
 {
     this.contract = contract;
     this.cache = cache;
     cts = new CancellationTokenSource();
 }
コード例 #2
0
 public EventListenerRequest(IEventContract contract, Cache cache)
     : base(contract.Reference, HttpMethod.Get)
 {
     this.contract = contract;
     this.cache    = cache;
     cts           = new CancellationTokenSource();
 }
コード例 #3
0
        public void AddContract(IEventContract contract)
        {
            if (_contracts.Any(c => c.Name == contract.Name))
            {
                throw new EventNameInUseException(contract.Name);
            }

            _contracts.Add(contract);
        }
コード例 #4
0
 public bool Equals(IEventContract other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(Reference.Equals(other.Reference));
 }
コード例 #5
0
 public bool Equals(IEventContract other)
 {
     if (ReferenceEquals(null, other))
     {
         return false;
     }
     if (ReferenceEquals(this, other))
     {
         return true;
     }
     return Reference.Equals(other.Reference);
 }
コード例 #6
0
        public void RemoveEventListener(IEventContract contract)
        {
            CheckDisposed();

            ArgUtils.CheckForNull(contract, nameof(contract));

            EventListenerRequest eventListenerRequest;
            if (!eventListenerRequests.TryGetValue(contract, out eventListenerRequest))
                return;

            eventListenerRequests.Remove(contract);

            eventListenerRequest.Stop();
        }
コード例 #7
0
        public void RemoveEventListener(IEventContract contract)
        {
            CheckDisposed();

            ArgUtils.CheckForNull(contract, nameof(contract));

            EventListenerRequest eventListenerRequest;

            if (!eventListenerRequests.TryGetValue(contract, out eventListenerRequest))
            {
                return;
            }

            eventListenerRequests.Remove(contract);

            eventListenerRequest.Stop();
        }
コード例 #8
0
        public async void AddEventListener(IEventContract contract)
        {
            CheckDisposed();

            ArgUtils.CheckForNull(contract, nameof(contract));

            if (eventListenerRequests.ContainsKey(contract))
                return;

            var eventListenerRequest = new EventListenerRequest(contract, new Cache());
            eventListenerRequests.Add(contract, eventListenerRequest);

            HttpRequestMessage requestMessage = eventListenerRequest.CreateRequestMessage(Context);
            HttpResponseMessage httpResponseMessage =
                await SendRequestMessage(requestMessage, HttpCompletionOption.ResponseHeadersRead);
            eventListenerRequest.CreateResult(httpResponseMessage, Context);
        }
コード例 #9
0
        public async void AddEventListener(IEventContract contract)
        {
            CheckDisposed();

            ArgUtils.CheckForNull(contract, nameof(contract));

            if (eventListenerRequests.ContainsKey(contract))
            {
                return;
            }

            var eventListenerRequest = new EventListenerRequest(contract, new Cache());

            eventListenerRequests.Add(contract, eventListenerRequest);

            HttpRequestMessage  requestMessage      = eventListenerRequest.CreateRequestMessage(Context);
            HttpResponseMessage httpResponseMessage =
                await SendRequestMessage(requestMessage, HttpCompletionOption.ResponseHeadersRead);

            eventListenerRequest.CreateResult(httpResponseMessage, Context);
        }