Beispiel #1
0
        public ClientInterceptor(IContractDescription contractDescription)
        {
            _contractDescription = contractDescription;

            _logger = Logger.Factory.Create(GetType());
            _logger.Info(() => $"Created (contract = {_contractDescription})");
        }
Beispiel #2
0
 public Connection(string objectId,
                   object outerProxy,
                   IEventHandlersRepository eventHandlersRepository,
                   IContractDescription contractDescription,
                   ISerializer serializer,
                   IEloquentClient eloquentClient,
                   IOutputChannel outputChannel,
                   IHostAddress clientHostAddress)
 {
     _objectId   = objectId;
     _outerProxy = outerProxy;
     _eventHandlersRepository = eventHandlersRepository;
     _contractDescription     = contractDescription;
     _serializer        = serializer;
     _eloquentClient    = eloquentClient;
     _outputChannel     = outputChannel;
     _clientHostAddress = clientHostAddress;
 }
Beispiel #3
0
        public ObjectAdapter(string objectId, IContractDescription contractDescription,
                             ISerializer serializer,
                             SynchronizationContext synchronizationContext,
                             object objectToHost, IObjectsRepository objectsRepository)
        {
            _contractDescription    = contractDescription;
            _serializer             = serializer;
            _synchronizationContext = synchronizationContext;
            Object             = objectToHost;
            _objectsRepository = objectsRepository;

            var events = new Dictionary <string, IEvent>();

            foreach (var eventDescription in _contractDescription.Events)
            {
                var handler = CreateHandler(eventDescription.Event, args => SendEventToAllClients(eventDescription.Name, eventDescription.IsStandardEvent, args));
                eventDescription.Event.AddEventHandler(objectToHost, handler);
                _hostedEvents.Add(new HostedEvent(eventDescription.Event, handler));
                events.Add(eventDescription.Name, new Event(objectId, eventDescription.Name, serializer, objectsRepository));
            }

            Events = new ReadOnlyDictionary <string, IEvent>(events);
        }