Beispiel #1
0
 public InternalConnection(IConnectionParameters parameters, ISocket socket)
 {
     _parameters                = parameters;
     _socket                    = socket;
     _environment.PacketSize    = parameters.PacketSize; //server might decide to change the packet size later anyway
     _environment.UseAseDecimal = parameters.UseAseDecimal;
 }
        /// <summary>
        /// Creates a new <see cref="ConnectionSettings"/> instance from serialization parameters.
        /// </summary>
        /// <param name="info">The <see cref="SerializationInfo"/> with populated with data.</param>
        /// <param name="context">The source <see cref="StreamingContext"/> for this deserialization.</param>
        protected ConnectionSettings(SerializationInfo info, StreamingContext context)
        {
            // Deserialize connection settings values
            if (!Enum.TryParse(info.GetOrDefault("PhasorProtocol", "IEEEC37_118V1"), true, out PhasorProtocol))
            {
                PhasorProtocol = PhasorProtocol.IEEEC37_118V1;
            }

            if (!Enum.TryParse(info.GetOrDefault("TransportProtocol", "Tcp"), true, out TransportProtocol))
            {
                TransportProtocol = TransportProtocol.Tcp;
            }

            ConnectionString = info.GetOrDefault("ConnectionString", (string)null);

            if (!int.TryParse(info.GetOrDefault("PmuID", "1"), out PmuID))
            {
                PmuID = 1;
            }

            if (!int.TryParse(info.GetOrDefault("FrameRate", "30"), out FrameRate))
            {
                FrameRate = 30;
            }

            AutoRepeatPlayback = info.GetOrDefault("AutoRepeatPlayback", "false").ParseBoolean();

            if (!int.TryParse(info.GetOrDefault("ByteEncodingDisplayFormat", "0"), out ByteEncodingDisplayFormat))
            {
                ByteEncodingDisplayFormat = 0;
            }

            ConnectionParameters = info.GetOrDefault("ConnectionParameters", (IConnectionParameters)null);
        }
Beispiel #3
0
        public TService CreateClient <TService>(EndpointAddress address, IConnectionParameters connectionParameters, MessageVersion messageEncodingVersion, int timeout)
        {
            CustomBinding binder = CreateCustomBinding(connectionParameters.ConnectionTimeout,
                                                       connectionParameters.Credentials, messageEncodingVersion);

            binder.SendTimeout = binder.CloseTimeout = binder.ReceiveTimeout = binder.OpenTimeout = TimeSpan.FromSeconds(timeout);

            var factory = new ChannelFactory <TService>(binder);

            var clientInspector = new CustomMessageInspector();

            if (_securityToken != null)
            {
                clientInspector.Headers.Add(new DigestSecurityHeader(connectionParameters.Credentials, _securityToken));
            }

            var behavior = new CustomEndpointBehavior(clientInspector);

            factory.Endpoint.Behaviors.Add(behavior);

            if (factory.Credentials != null)
            {
                factory.Credentials.UserName.UserName = connectionParameters.Credentials.UserName;
                factory.Credentials.UserName.Password = connectionParameters.Credentials.Password;
            }

            TService service = factory.CreateChannel(address);

            return(service);
        }
Beispiel #4
0
        public InternalConnectionFactory(IConnectionParameters parameters)
#endif
        {
            _parameters = parameters;
#if ENABLE_ARRAY_POOL
            _arrayPool = arrayPool;
#endif
        }
        public void Start(IConnectionParameters connectionParameters)
        {
            _cancellationTokenSource = new CancellationTokenSource();

            _deviceEventReceiver = _deviceEventReceiverFactory.Create(connectionParameters);
            _deviceEventReceiver.EventReceived += DeviceEventReceiverOnEventReceived;

            Task.Run(() => ReceiveEventsAsync(_deviceEventReceiver, _cancellationTokenSource.Token));
        }
Beispiel #6
0
        public InternalConnectionFactory(IConnectionParameters parameters, RemoteCertificateValidationCallback userCertificateValidationCallback)
#endif
        {
            _parameters = parameters;
            _userCertificateValidationCallback = userCertificateValidationCallback ?? UserCertificateValidationCallback;

#if ENABLE_ARRAY_POOL
            _arrayPool = arrayPool;
#endif
        }
Beispiel #7
0
        public IInternalConnection Reserve(string connectionString, IConnectionParameters parameters, IEventNotifier eventNotifier)
        {
            return(Pools.GetOrAdd(connectionString, _ =>
            {
#if ENABLE_ARRAY_POOL
                var internalConnectionFactory = new InternalConnectionFactory(parameters, BufferPool);
#else
                var internalConnectionFactory = new InternalConnectionFactory(parameters);
#endif
                return new ConnectionPool(parameters, internalConnectionFactory);
            }).Reserve(eventNotifier));
        }
Beispiel #8
0
        public IInternalConnection Reserve(string connectionString, IConnectionParameters parameters, IInfoMessageEventNotifier eventNotifier, RemoteCertificateValidationCallback userCertificateValidationCallback = null)
        {
            return(Pools.GetOrAdd(connectionString, _ =>
            {
#if ENABLE_ARRAY_POOL
                var internalConnectionFactory = new InternalConnectionFactory(parameters, BufferPool, userCertificateValidationCallback);
#else
                var internalConnectionFactory = new InternalConnectionFactory(parameters, userCertificateValidationCallback);
#endif

                return new ConnectionPool(parameters, internalConnectionFactory);
            }).Reserve(eventNotifier));
        }
        public ConnectionPool(IConnectionParameters parameters, IInternalConnectionFactory connectionFactory)
        {
            _parameters        = parameters;
            _connectionFactory = connectionFactory;
            _available         = new BlockingCollection <IInternalConnection>();

            PoolSize = 0;

            if (_parameters.MinPoolSize > 0)
            {
                Task.Run(TryFillPoolToMinSize);
                Logger.Instance?.WriteLine("Pool fill task started");
            }
        }
Beispiel #10
0
        public InternalConnection(IConnectionParameters parameters, Stream networkStream, ITokenReader reader, DbEnvironment environment)
#endif
        {
            _parameters                = parameters;
            _networkStream             = networkStream;
            _reader                    = reader;
            _environment               = environment;
            _environment.PacketSize    = parameters.PacketSize; //server might decide to change the packet size later anyway
            _environment.UseAseDecimal = parameters.UseAseDecimal;
            _sendMutex                 = new object();
#if ENABLE_ARRAY_POOL
            _arrayPool = arrayPool;
#endif
        }
Beispiel #11
0
        public ONVIFDevice(string serviceUrl, string username, string password, int rtspPort, int timeout)
        {
            if (!Uri.TryCreate(serviceUrl, UriKind.Absolute, out Uri uri))
            {
                throw new ApplicationException("Uri: " + serviceUrl + " not recognised.");
            }

            _credential = new NetworkCredential(username, password);
            _timeout    = timeout;
            ServiceUri  = uri;
            _rtspPort   = rtspPort;

            _connectionParameters = new ConnectionParameters(ServiceUri, _credential, TimeSpan.FromSeconds(5));
            _onvifClientFactory   = new OnvifClientFactory();
            _deviceServicePath    = _connectionParameters.ConnectionUri.AbsolutePath;

            if (_deviceServicePath == "/")
            {
                _deviceServicePath = DefaultDeviceServicePath;
            }
        }
Beispiel #12
0
        public Task <IConnection> Start(IConnectionParameters parameters)
        {
            var tcs = new TaskCompletionSource <IConnection> ();

            ThreadPool.QueueUserWorkItem(_ => {
                IConnection connection = null;
                try {
                    connection = Create(parameters);
                    connection.Start(null, CancellationToken.None).Wait();
                    connection.WaitForConnection().Wait();
                    tcs.SetResult(connection);
                } catch (Exception ex) {
                    if (connection != null)
                    {
                        connection.Dispose();
                    }
                    tcs.SetException(ex);
                }
            });
            return(tcs.Task);
        }
        public OnvifEventReceiver(IConnectionParameters connectionParameters, IOnvifClientFactory onvifClientFactory, TimeSpan subscriptionTerminationTime)
        {
            if (connectionParameters == null)
            {
                throw new ArgumentNullException(nameof(connectionParameters));
            }
            if (onvifClientFactory == null)
            {
                throw new ArgumentNullException(nameof(onvifClientFactory));
            }

            _connectionParameters        = connectionParameters;
            _onvifClientFactory          = onvifClientFactory;
            _subscriptionTerminationTime = subscriptionTerminationTime;

            _deviceServicePath = connectionParameters.ConnectionUri.AbsolutePath;

            if (_deviceServicePath == "/")
            {
                _deviceServicePath = DefaultDeviceServicePath;
            }
        }
Beispiel #14
0
 public static bool SetConnectParams()
 {
     try
     {
         connParams = new ConnectionParams();
         connParams.ServerAddress = CryptoHelper.Decrypt(Properties.Settings.Default.ServerIP);
         connParams.ServerPort    = Properties.Settings.Default.ServerPort;
         connParams.DBName        = CryptoHelper.Decrypt(Properties.Settings.Default.DBName);
         connParams.UserName      = CryptoHelper.Decrypt(Properties.Settings.Default.SysUser);
         connParams.Password      = CryptoHelper.Decrypt(Properties.Settings.Default.SysPassword);
         connParams.SSLMode       = Properties.Settings.Default.SSL;
         connParams.CharSet       = Properties.Settings.Default.Charset;
         connParams.KeepAlive     = Properties.Settings.Default.KeepAlive;
         return(true);
     }
     catch (ArgumentNullException)
     {
         return(false);
     }
     catch (Exception)
     {
         throw;
     }
 }
        /// <summary>
        /// Creates a new <see cref="ConnectionSettings"/> instance from serialization parameters.
        /// </summary>
        /// <param name="info">The <see cref="SerializationInfo"/> with populated with data.</param>
        /// <param name="context">The source <see cref="StreamingContext"/> for this deserialization.</param>
        protected ConnectionSettings(SerializationInfo info, StreamingContext context)
        {
            // Deserialize connection settings values
            if (!Enum.TryParse(info.GetOrDefault("PhasorProtocol", "IEEEC37_118V1"), true, out PhasorProtocol))
                PhasorProtocol = PhasorProtocol.IEEEC37_118V1;

            if (!Enum.TryParse(info.GetOrDefault("TransportProtocol", "Tcp"), true, out TransportProtocol))
                TransportProtocol = TransportProtocol.Tcp;

            ConnectionString = info.GetOrDefault("ConnectionString", (string)null);

            if (!int.TryParse(info.GetOrDefault("PmuID", "1"), out PmuID))
                PmuID = 1;

            if (!int.TryParse(info.GetOrDefault("FrameRate", "30"), out FrameRate))
                FrameRate = 30;

            if (!(info.GetOrDefault("AutoRepeatPlayback", "false")).ParseBoolean())
                AutoRepeatPlayback = false;

            if (!int.TryParse(info.GetOrDefault("ByteEncodingDisplayFormat", "0"), out ByteEncodingDisplayFormat))
                ByteEncodingDisplayFormat = 0;

            ConnectionParameters = info.GetOrDefault("ConnectionParameters", (IConnectionParameters)null);
        }
 public InternalConnectionFactory(IConnectionParameters parameters)
 {
     _parameters = parameters;
 }
        private void SetRequestTimeout(MethodContext methodContext, ParameterExpression param, IConnectionParameters dbParameters)
        {
            var propInfo = DbContextProxyHelper.GetConnectionParamsProperty(param.Type);

            if (propInfo == null)
            {
                return;
            }

            var newDbConfig = Expression.New(typeof(ConnectionParameters).GetConstructor(new[] { typeof(IConnectionParameters) }), Expression.Constant(dbParameters));

            methodContext.Do(Expression.Assign(Expression.Property(param, propInfo), newDbConfig));
        }
Beispiel #18
0
 public TService CreateClient <TService>(Uri uri, IConnectionParameters connectionParameters, MessageVersion messageEncodingVersion, int timeout) => CreateClient <TService>(new EndpointAddress(uri), connectionParameters, messageEncodingVersion, timeout);
Beispiel #19
0
 protected Connection(string endpoint, IConnectionParameters parameters)
     : this(ParseEndPoint(endpoint), parameters)
 {
 }
 public IDeviceEventReceiver Create(IConnectionParameters connectionParameters)
 {
     return(new OnvifEventReceiver(connectionParameters, new OnvifClientFactory(), TimeSpan.FromSeconds(60)));
 }
Beispiel #21
0
 public IInternalConnection Reserve(string connectionString, IConnectionParameters parameters)
 {
     return(Pools.GetOrAdd(connectionString, _ => new ConnectionPool(parameters, new InternalConnectionFactory(parameters))).Reserve());
 }
Beispiel #22
0
 public BaseRepository(IConnectionParameters connectionParameters)
 {
     this._connectionParameters = connectionParameters;
 }
Beispiel #23
0
 public OpenSslConnection(ConnectionFactory factory, IPEndPoint endpoint, IConnectionParameters parameters)
     : base(endpoint, parameters)
 {
 }
Beispiel #24
0
 public UserRepository(IConnectionParameters connectionParameters) : base(connectionParameters)
 {
 }
 public TService CreateClient <TService>(Uri uri, IConnectionParameters connectionParameters, MessageVersion messageEncodingVersion)
 {
     return(CreateClient <TService>(new EndpointAddress(uri), connectionParameters, messageEncodingVersion));
 }
Beispiel #26
0
 protected Connection(IPEndPoint endpoint, IConnectionParameters parameters)
 {
     EndPoint   = endpoint;
     Parameters = parameters;
 }
Beispiel #27
0
 public InternalConnectionFactory(IConnectionParameters parameters, System.Buffers.ArrayPool <byte> arrayPool)
Beispiel #28
0
 public ClientRepository(IConnectionParameters connectionParameters) : base(connectionParameters)
 {
 }
 public ConnectionParameters(IConnectionParameters parameters)
 {
     Timeout = parameters.Timeout;
 }
Beispiel #30
0
 public InternalConnection(IConnectionParameters parameters, Stream networkStream, ITokenReader reader, DbEnvironment environment, System.Buffers.ArrayPool <byte> arrayPool)
        /// <summary>
        /// Creates an instance of GenericGenerator Class using a custom ConnectionParameters config
        /// </summary>
        /// <param name="config"></param>
        public GenericGenerator(IConnectionParameters config)
        {
            _Configuration = config;

            LoadAssembliesMappings();
        }
Beispiel #32
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="connectionParams">The database connection parameters</param>
 public SqlServerDatabase(IConnectionParameters connectionParams)
 {
     m_connectionParams = connectionParams;
 }
Beispiel #33
0
 public DotNetConnection(IPEndPoint endpoint, IConnectionParameters parameters)
     : base(endpoint, parameters)
 {
 }