Task <ISagaInstance> ISagaActivator.Activate <TEvent>(IReceiveEvent <TEvent> eventReceiver, TEvent @event, CancellationToken cancellationToken)
 {
     Contract.Requires <ArgumentException>(eventReceiver != null, nameof(eventReceiver));
     Contract.Requires <ArgumentException>(@event != null, nameof(@event));
     Contract.Ensures(Contract.Result <Task <ISagaInstance> >() != null);
     return(null);
 }
Exemplo n.º 2
0
 ISagaInstance ISagaInstanceActivator.Activate <TEvent>(IReceiveEvent <TEvent> eventReceiver, SagaMetadata metadata, IClock clock)
 {
     Contract.Requires <ArgumentNullException>(eventReceiver != null, nameof(eventReceiver));
     Contract.Requires <ArgumentNullException>(metadata != null, nameof(metadata));
     Contract.Requires <ArgumentNullException>(clock != null, nameof(clock));
     Contract.Ensures(Contract.Result <ISagaInstance>() != null);
     return(null);
 }
Exemplo n.º 3
0
 public Connection(string name, TcpClient c, IReceiveEvent ire, ConnectionDroppedDelegate dropConDelegate)
 {
     onConnectionDropDelegate = dropConDelegate;
     IsServer     = false;
     Name         = name;
     tcpClient    = c;
     EventHandler = ire;
     semWrite     = new Semaphore(0, 1);
     semRead      = new Semaphore(0, 1);
     (threadRead = new Thread(new ThreadStart(SetupConn))).Start();
 }
Exemplo n.º 4
0
        public async Task <ISagaInstance> Activate <TEvent>(IReceiveEvent <TEvent> receiver, TEvent @event, CancellationToken cancellationToken) where TEvent : class, IEvent
        {
            Contract.Requires(receiver != null);
            Contract.Requires(@event != null);
            Contract.Ensures(Contract.Result <Task <ISagaInstance> >() != null);

            var sagaType     = receiver.GetType();
            var metadata     = sagaMetadata.Find(sagaType);
            var activator    = activators.GetOrAdd(metadata.SagaDataType, CreateActivator);
            var instance     = activator.Activate(receiver, metadata, clock);
            var searchResult = await activator.GetData(instance, storage, @event, cancellationToken).ConfigureAwait(false);

            await AttachData(instance, searchResult, @event, cancellationToken).ConfigureAwait(false);

            return(instance);
        }
Exemplo n.º 5
0
        void Listen()  // Listen to incoming connections.
        {
            log.InfoFormat("Listen");
            server = new TcpListener(ip, port);
            server.Start();

            while (running)
            {
                log.InfoFormat("[Listen:{0}] Waiting for new connection", port);
                TcpClient tcpClient = null;

                try
                {
                    tcpClient = server.AcceptTcpClient(); // Accept incoming connection.
                }
                catch (SocketException e)                 // detecto que se efectio un listener.stop
                {
                    log.ErrorFormat("Excepcion [Listen:{0}], se detiene la escucha", port, e);
                    running = false;
                }

                if (running)
                {
                    log.InfoFormat("nueva conexion de control(:{2}) desde {0}:{1}", ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Address, ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Port, port);
                    IReceiveEvent responseHandler = null;
                    if (isTransfer)
                    {
                        responseHandler = new ReceiveTransfersEventHandler();
                    }
                    else
                    {
                        responseHandler = new ReceiveEventHandler();
                    }
                    Connection conn = new Connection(connectionCounter.ToString(), tcpClient, responseHandler, delegado);     // Handle in another thread.
                    lock (openConnections)
                    {
                        openConnections.Add(conn.Name, conn);
                        connectionCounter++;
                    }
                }
            }
        }
 /// <summary>
 /// Returns a value indicating whether the event receiver is a saga.
 /// </summary>
 /// <typeparam name="TEvent">The type of event.</typeparam>
 /// <param name="eventReceiver">The <see cref="IReceiveEvent{T}">event receiver</see> to evaluate.</param>
 /// <returns>True if the <paramref name="eventReceiver">event receiver</paramref> is a saga; otherwise, false.</returns>
 public static bool IsSaga <TEvent>(this IReceiveEvent <TEvent> eventReceiver) where TEvent : IEvent
 {
     Arg.NotNull(eventReceiver, nameof(eventReceiver));
     return(eventReceiver.GetType().IsSaga());
 }
Exemplo n.º 7
0
 public Connection(string name, TcpClient c, IReceiveEvent ire)
     : this(name, c, ire, null)
 {
 }
Exemplo n.º 8
0
 public Connection(TcpClient c, IReceiveEvent ire)
     : this("Unknown", c, ire, null)
 {
 }
Exemplo n.º 9
0
 public Connection(TcpClient c, IReceiveEvent ire)
     : this(UNKNOWN, c, ire, null)
 {
 }
 public LoopbackEventReceiver(IReceiveEvent receiver)
 {
     _receiver = receiver;
 }
Exemplo n.º 11
0
 public EventReceiverCorrelationEnricherBehavior(IOptions <CorrelationLogOptions> options, CorrelationContext.Correlation correlation, IReceiveEvent next)
     : base(options, correlation)
 {
     _next = next;
 }
Exemplo n.º 12
0
 public HttpEventReceiver(ILogger log, IReceiveEvent eventReceiver)
 {
     _log           = log;
     _eventReceiver = eventReceiver;
 }
Exemplo n.º 13
0
 public RabbitEventReceiver(IReceiveEvent eventReceiver)
 {
     _eventReceiver = eventReceiver;
 }
 public PrometheusEventMetricsBehavior(IMetricsService metrics, IReceiveEvent next)
 {
     _metrics = metrics;
     _next    = next;
 }