コード例 #1
0
        private void OnGet(GetHandlerEventArgs e)
        {
            EventHandler handler = GetHandler;

            handler?.Invoke(this, e);
        }
コード例 #2
0
        public void Receive(string responseMessage)
        {
            var dhtProtocolCommandDto = JsonSerializer.Deserialize <DhtProtocolCommandDto>(responseMessage);

            Log.Debug(dhtProtocolCommandDto.ToString());
            switch (dhtProtocolCommandDto.Command)
            {
            case DhtCommand.NOTIFY:
                NotifyEventArgs notifyEventArgs =
                    new NotifyEventArgs {
                    NodeDto = dhtProtocolCommandDto.NodeDto
                };
                OnNotify(notifyEventArgs);
                break;

            case DhtCommand.STABILIZE:
                StabilizeEventArgs stabilizeEventArgs =
                    new StabilizeEventArgs {
                    DestinationNode = dhtProtocolCommandDto.NodeDto
                };
                OnStabilizeHandler(stabilizeEventArgs);
                break;

            case DhtCommand.FIND_SUCCESSOR:
                FindSuccessorEventArgs findSuccessorEventArgs = new FindSuccessorEventArgs
                {
                    Key = dhtProtocolCommandDto.Key, DestinationNode = dhtProtocolCommandDto.NodeDto
                };
                OnFindSuccessor(findSuccessorEventArgs);
                break;

            case DhtCommand.FOUND_SUCCESSOR:
                FoundSuccessorEventArgs foundSuccessorEventArgs = new FoundSuccessorEventArgs
                {
                    SuccessorNode = dhtProtocolCommandDto.NodeDto, Key = dhtProtocolCommandDto.Key
                };
                OnFoundSuccessor(foundSuccessorEventArgs);
                break;

            case DhtCommand.CHECK_PREDECESSOR:
                CheckPredecessorEventArgs checkPredecessorEventArgs = new CheckPredecessorEventArgs
                {
                    DestinationNode = dhtProtocolCommandDto.NodeDto
                };
                OnCheckPredecessorHandler(checkPredecessorEventArgs);
                break;

            case DhtCommand.STABILIZE_RESPONSE:
                StabilizeResponseEventArgs stabilizeResponseEventArgs = new StabilizeResponseEventArgs
                {
                    PredecessorOfSuccessor = dhtProtocolCommandDto.NodeDto
                };
                OnStabilizeResponseHandler(stabilizeResponseEventArgs);
                break;

            case DhtCommand.CHECK_PREDECESSOR_RESPONSE:
                CheckPredecessorResponseEventArgs checkPredecessorResponseEventArgs =
                    new CheckPredecessorResponseEventArgs {
                    Predecessor = dhtProtocolCommandDto.NodeDto
                };
                OnCheckPredecessorResponseHandler(checkPredecessorResponseEventArgs);
                break;

            case DhtCommand.GET:
                GetHandlerEventArgs getHandlerEventArgs = new GetHandlerEventArgs
                {
                    DhtProtocolCommandDto = dhtProtocolCommandDto
                };
                OnGet(getHandlerEventArgs);
                break;

            case DhtCommand.GET_RESPONSE:
                GetResponseHandlerEventArgs getResponseHandlerEventArgs = new GetResponseHandlerEventArgs
                {
                    DestinationNode = dhtProtocolCommandDto.NodeDto,
                    Key             = dhtProtocolCommandDto.Key,
                    Value           = dhtProtocolCommandDto.Value,
                };
                OnGetResponseHandler(getResponseHandlerEventArgs);
                break;

            case DhtCommand.PUT:
                PutHandlerEventArgs putHandlerEventArgs = new PutHandlerEventArgs
                {
                    ProtocolCommandDto = dhtProtocolCommandDto
                };
                OnPut(putHandlerEventArgs);
                break;

            case DhtCommand.PUT_RESPONSE:
                GetResponseHandlerEventArgs putReponseHandlerEventArgs = new GetResponseHandlerEventArgs
                {
                    DestinationNode = dhtProtocolCommandDto.NodeDto,
                    Key             = dhtProtocolCommandDto.Key,
                    Value           = dhtProtocolCommandDto.Value,
                };
                OnPutResponseHandler(putReponseHandlerEventArgs);
                break;

            case DhtCommand.REMOVE_DATA_FROM_EXPIRED_REPLICAS:
                GetHandlerEventArgs removeDataFromExpiredReplicasEventArgs = new GetHandlerEventArgs
                {
                    DhtProtocolCommandDto = dhtProtocolCommandDto
                };
                OnRemoveDataFromExpiredReplicas(removeDataFromExpiredReplicasEventArgs);
                break;

            case DhtCommand.REMOVE_DATA_FROM_EXPIRED_REPLICAS_RESPONSE:
                GetHandlerEventArgs removeDataFromExpiredReplicasResponseEventArgs = new GetHandlerEventArgs
                {
                    DhtProtocolCommandDto = dhtProtocolCommandDto
                };
                OnRemoveDataFromExpiredReplicasResponseHandler(removeDataFromExpiredReplicasResponseEventArgs);
                break;

            default:
                break;
            }
        }
コード例 #3
0
        private void OnRemoveDataFromExpiredReplicasResponseHandler(GetHandlerEventArgs e)
        {
            EventHandler handler = RemoveDataFromExpiredReplicasResponseHandler;

            handler?.Invoke(this, e);
        }