Exemple #1
0
 public BlockingRouteActor(
     ActorConfiguration configuration,
     IActorMessageEncoder encoder,
     IActorMessageDecoder decoder)
     : base(configuration, encoder, decoder)
 {
 }
        public ActorDirectory(
            ActorDescription centerActor, IActorChannel centerChannel,
            IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (centerActor == null)
            {
                throw new ArgumentNullException("centerActor");
            }
            if (centerChannel == null)
            {
                throw new ArgumentNullException("centerChannel");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            _centerActor   = centerActor;
            _centerChannel = centerChannel;
            _encoder       = encoder;
            _decoder       = decoder;
        }
        private ConcurrentDictionary <string, string> _actorKeys = new ConcurrentDictionary <string, string>();                        // ActorKey -> SessionKey

        public ActorListenerChannel(
            ActorDescription localActor, ActorTransportListener localListener,
            IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (localActor == null)
            {
                throw new ArgumentNullException("localActor");
            }
            if (localListener == null)
            {
                throw new ArgumentNullException("localListener");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            _localActor = localActor;
            _listener   = localListener;
            _encoder    = encoder;
            _decoder    = decoder;
        }
        public ActorConnectorChannel(
            ActorDescription localActor, ActorTransportConnector remoteConnector,
            IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (localActor == null)
            {
                throw new ArgumentNullException("localActor");
            }
            if (remoteConnector == null)
            {
                throw new ArgumentNullException("remoteConnector");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            _localActor = localActor;
            _connector  = remoteConnector;
            _encoder    = encoder;
            _decoder    = decoder;
        }
 public ActorConnectorReconnectableChannel(
     ActorDescription localActor, ActorTransportConnector remoteConnector,
     IActorMessageEncoder encoder, IActorMessageDecoder decoder)
     : base(localActor, remoteConnector, encoder, decoder)
 {
     this.RetryPeriod = TimeSpan.FromSeconds(15);
 }
Exemple #6
0
 public RouteActor(
     ActorConfiguration configuration,
     IActorMessageEncoder encoder,
     IActorMessageDecoder decoder)
     : base(configuration)
 {
     _encoder = encoder;
     _decoder = decoder;
 }
        public ActorConfiguration(IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            _encoder = encoder;
            _decoder = decoder;
        }
Exemple #8
0
        public ActorChannelFactory(
            ActorDirectory directory,
            IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (directory == null)
            {
                throw new ArgumentNullException("directory");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            _directory = directory;
            _encoder   = encoder;
            _decoder   = decoder;
        }
Exemple #9
0
        public void Bootup(IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            if (_localActor != null)
            {
                throw new InvalidOperationException("Already bootup.");
            }

            var configruation = new RpcActorConfiguration();

            configruation.Build();

            _localActor = new BlockingRouteActor(configruation, encoder, decoder);
            _localActor.Bootup();
        }
Exemple #10
0
        public static void HandledBy <T>(this ActorMessageEnvelope envelope, object handlerFrom, Type messageType, IActorMessageDecoder decoder, T state, Func <object, MethodInfo> getHandlerMethod) where T : class
        {
            var instantiateMethod = typeof(ActorMessageEnvelopeExtensions)
                                    .GetMethod("Instantiate", new Type[] { typeof(ActorMessageEnvelope), typeof(IActorMessageDecoder) })
                                    .MakeGenericMethod(messageType);
            var instantiatedEnvelope = instantiateMethod.Invoke(null, new object[] { envelope, decoder });

            try
            {
                var messageHandlerMethod = getHandlerMethod(handlerFrom);
                messageHandlerMethod.Invoke(handlerFrom, new object[] { state, instantiatedEnvelope });
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("HandledBy, MessageType[{0}], ErrorMessage[{1}].", messageType.Name, ex);
                throw;
            }
        }
Exemple #11
0
 public static void HandledBy <T>(this ActorMessageEnvelope envelope, object handlerFrom, Type messageType, IActorMessageDecoder decoder, T state, Func <string, string> getHandlerName) where T : class
 {
     HandledBy <T>(envelope, handlerFrom, messageType, decoder, state,
                   (object o) =>
     {
         return(o.GetType().GetMethod(getHandlerName(envelope.MessageType), BindingFlags.NonPublic | BindingFlags.Instance));
     });
 }
Exemple #12
0
 public static void HandledBy <T>(this ActorMessageEnvelope envelope, object handlerFrom, Type messageType, IActorMessageDecoder decoder, T state) where T : class
 {
     HandledBy <T>(envelope, handlerFrom, messageType, decoder, state, (string s) => { return(@"On" + s); });
 }
Exemple #13
0
 public static void HandledBy(this ActorMessageEnvelope envelope, object handlerFrom, Type messageType, IActorMessageDecoder decoder)
 {
     HandledBy(envelope, handlerFrom, messageType, decoder, (string s) => { return(@"On" + s); });
 }
Exemple #14
0
        public static ActorMessageEnvelope <T> Instantiate <T>(this ActorMessageEnvelope envelope, IActorMessageDecoder decoder)
        {
            var message = envelope.ConvertTo <T>();

            message.Message = decoder.DecodeMessage <T>(envelope.MessageData, 0, envelope.MessageData.Length);
            return(message);
        }
Exemple #15
0
        public RpcActor(ActorConfiguration configuration, IActorMessageEncoder encoder, IActorMessageDecoder decoder)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }

            _localActor = new BlockingRouteActor(configuration, encoder, decoder);
        }