public IWampClientProxy <TMessage> Create(IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler outgoingHandler = mOutgoingHandlerBuilder.Build(connection); WampConnectionMonitor <TMessage> monitor = new WampConnectionMonitor <TMessage>(connection); IDisposable disposable = new WampClientContainerDisposable <TMessage, IWampClientProxy <TMessage> > (mContainer, connection); WampClientProxy <TMessage> result = new WampClientProxy <TMessage>(outgoingHandler, mOutgoingSerializer, monitor, disposable); result.Session = (long)mContainer.GenerateClientId(result); result.Binding = mBinding; IDetailedWampConnection <TMessage> detailedConnection = connection as IDetailedWampConnection <TMessage>; if (detailedConnection != null) { result.TransportDetails = detailedConnection.TransportDetails; } monitor.Client = result; return(result); }
public TServer Create(TRawClient client, IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler handler = mOutgoingHandlerBuilder.Build(client, connection); WampOutgoingInterceptor <TMessage> interceptor = new WampOutgoingInterceptor <TMessage>(mOutgoingSerializer, handler); ProxyGenerationOptions proxyOptions = new ProxyGenerationOptions() { Selector = new WampInterceptorSelector <TMessage>() }; proxyOptions.AddMixinInstance(new DisposableForwarder(connection)); TServer result = (TServer)mProxyGenerator.CreateInterfaceProxyWithoutTarget (typeof(TServer), new Type[] { typeof(IDisposable) }, proxyOptions, interceptor); return(result); }
public WampServerProxy(IWampOutgoingMessageHandler messageHandler, IWampOutgoingRequestSerializer requestSerializer, IDisposable disposable) : base(messageHandler, requestSerializer) { mDisposable = disposable; }
public IWampServerProxy Create(IWampClient <TMessage> client, IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler outgoingMessageHandler = mOutgoingHandlerBuilder.Build(client, connection); WampServerProxy result = new WampServerProxy(outgoingMessageHandler, mSerializer, connection); return(result); }
public WampClientProxy(IWampOutgoingMessageHandler messageHandler, IWampOutgoingRequestSerializer requestSerializer, IWampConnectionMonitor monitor, IDisposable disposable) : base(messageHandler, requestSerializer) { mMonitor = monitor; mDisposable = disposable; }
public IWampServer Create(TRawClient client, IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler handler = mOutgoingHandlerBuilder.Build(client, connection); IDisposable disposable = new DisposableForwarder(connection); WampServerProxy result = new WampServerProxy(handler, mOutgoingSerializer, disposable); return(result); }
public TServer Create(TRawClient client, IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler handler = mOutgoingHandlerBuilder.Build(client, connection); WampOutgoingInterceptor <TMessage> interceptor = new WampOutgoingInterceptor <TMessage>(mOutgoingSerializer, handler); var proxyOptions = new ProxyGenerationOptions(); TServer result = mProxyGenerator.CreateInterfaceProxyWithoutTarget <TServer> (proxyOptions, interceptor); return(result); }
public IWampClient Create(IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler outgoingHandler = mOutgoingHandlerBuilder.Build(connection); WampConnectionMonitor <TMessage> monitor = new WampConnectionMonitor <TMessage>(connection); IDisposable disposable = new WampClientContainerDisposable <TMessage, IWampClient> (mContainer, connection); WampClientProxy result = new WampClientProxy(outgoingHandler, mOutgoingSerializer, monitor, disposable); result.SessionId = (string)mContainer.GenerateClientId(result); monitor.Client = result; return(result); }
public WampClientProxyBase(IWampOutgoingMessageHandler messageHandler, IWampOutgoingRequestSerializer requestSerializer) : base(messageHandler, requestSerializer) { }
public IWampClientProxy <TMessage> Create(IWampConnection <TMessage> connection) { IWampOutgoingMessageHandler outgoingHandler = mOutgoingHandlerBuilder.Build(connection); WampOutgoingInterceptor <TMessage> wampOutgoingInterceptor = new WampOutgoingInterceptor <TMessage> (mOutgoingSerializer, outgoingHandler); WampRawOutgoingInterceptor <TMessage> wampRawOutgoingInterceptor = new WampRawOutgoingInterceptor <TMessage>(outgoingHandler); ProxyGenerationOptions proxyGenerationOptions = new ProxyGenerationOptions() { Selector = new WampInterceptorSelector <TMessage>() }; WampConnectionMonitor <TMessage> monitor = new WampConnectionMonitor <TMessage>(connection); proxyGenerationOptions.AddMixinInstance(monitor); proxyGenerationOptions.AddMixinInstance (new WampClientContainerDisposable <TMessage, IWampClientProxy <TMessage> > (mContainer, connection)); WampTransportDetails transportDetails = null; if (connection is IDetailedWampConnection <TMessage> detailedConnection) { transportDetails = detailedConnection.TransportDetails; } WampClientPropertyBag <TMessage> propertyBag = new WampClientPropertyBag <TMessage>(mBinding, transportDetails); proxyGenerationOptions.AddMixinInstance(propertyBag); if (connection is IWampAuthenticatedConnection <TMessage> authenticatedConnection) { propertyBag.Authenticator = authenticatedConnection.Authenticator; } IWampClientProxy <TMessage> result = mGenerator.CreateInterfaceProxyWithoutTarget (typeof(IWampProxy), new[] { typeof(IWampClientProxy <TMessage>) }, proxyGenerationOptions, wampRawOutgoingInterceptor, wampOutgoingInterceptor) as IWampClientProxy <TMessage>; monitor.Client = result; long session = (long)mContainer.GenerateClientId(result); propertyBag.Session = session; return(result); }
public WampServerProxy(IWampOutgoingMessageHandler messageHandler, IWampOutgoingRequestSerializer requestSerializer) : base(messageHandler, requestSerializer) { }
/// <summary> /// Initializes a new instance of <see cref="WampOutgoingInterceptor{TMessage}"/>. /// </summary> /// <param name="outgoingSerializer">The <see cref="IWampOutgoingRequestSerializer"/> to /// serialize method calls with.</param> /// <param name="outgoingHandler">The <see cref="IWampOutgoingMessageHandler"/> /// that will deal with the serialized method calls.</param> public WampOutgoingInterceptor(IWampOutgoingRequestSerializer outgoingSerializer, IWampOutgoingMessageHandler outgoingHandler) { mOutgoingSerializer = outgoingSerializer; mOutgoingHandler = outgoingHandler; }
protected ProxyBase(IWampOutgoingMessageHandler messageHandler, IWampOutgoingRequestSerializer requestSerializer) { mMessageHandler = messageHandler; mRequestSerializer = requestSerializer; }
/// <summary> /// Initializes a new instance of <see cref="WampRawOutgoingInterceptor{TMessage}"/>. /// </summary> /// <param name="outgoingHandler">The <see cref="IWampOutgoingMessageHandler"/> /// used to write messages to the wire.</param> public WampRawOutgoingInterceptor(IWampOutgoingMessageHandler outgoingHandler) { mOutgoingHandler = outgoingHandler; }