/// <summary> /// Constructor of the interception processor /// </summary> /// <param name="conn">Connection instance</param> /// <param name="initMessage">Initialization message</param> public Interception(Connection conn, ClientInitMessage initMessage) : base(conn) { InterceptInitMessage interceptInitMessage = (InterceptInitMessage)initMessage; _mode = interceptInitMessage.InterceptionMode; _interceptors.TryAdd(this, _mode); }
/// <summary> /// Establishes a connection to the given UNIX socket file /// </summary> /// <param name="mode">Interception mode</param> /// <param name="socketPath">Path to the UNIX socket file</param> /// <param name="cancellationToken">Optional cancellation token</param> /// <returns>Asynchronous task</returns> /// <exception cref="IncompatibleVersionException">API level is incompatible</exception> /// <exception cref="IOException">Connection mode is unavailable</exception> public Task Connect(InterceptionMode mode, string socketPath = Defaults.SocketPath, CancellationToken cancellationToken = default(CancellationToken)) { InterceptInitMessage initMessage = new InterceptInitMessage { InterceptionMode = mode }; Mode = mode; return(Connect(initMessage, socketPath, cancellationToken)); }
/// <summary> /// Constructor of the interception processor /// </summary> /// <param name="conn">Connection instance</param> /// <param name="initMessage">Initialization message</param> public CodeInterception(Connection conn, ClientInitMessage initMessage) : base(conn) { InterceptInitMessage interceptInitMessage = (InterceptInitMessage)initMessage; _mode = interceptInitMessage.InterceptionMode; _channels = (interceptInitMessage.Channels != null) ? interceptInitMessage.Channels.ToList() : new List <CodeChannel>(Enum.GetValues(typeof(CodeChannel)).Cast <CodeChannel>()); _filters = interceptInitMessage.Filters ?? new List <string>(); _priorityCodes = interceptInitMessage.PriortyCodes; }
public Task Connect(InterceptionMode mode, string socketPath = Defaults.FullSocketPath, CancellationToken cancellationToken = default) { Mode = mode; Channels.Clear(); Channels.AddRange(Enum.GetValues(typeof(CodeChannel)).Cast<CodeChannel>()); Filters.Clear(); PriortyCodes = false; InterceptInitMessage initMessage = new InterceptInitMessage { InterceptionMode = mode }; return Connect(initMessage, socketPath, cancellationToken); }
/// <summary> /// Establishes a connection to the given UNIX socket file /// </summary> /// <param name="mode">Interception mode</param> /// <param name="channels">Optional list of input channels where codes may be intercepted</param> /// <param name="filters">Optional list of codes that may be intercepted</param> /// <param name="priortyCodes">Define if priorty codes may be intercepted</param> /// <param name="socketPath">Path to the UNIX socket file</param> /// <param name="cancellationToken">Optional cancellation token</param> /// <returns>Asynchronous task</returns> /// <exception cref="IncompatibleVersionException">API level is incompatible</exception> /// <exception cref="IOException">Connection mode is unavailable</exception> /// <exception cref="OperationCanceledException">Operation has been cancelled</exception> /// <exception cref="SocketException">Init message could not be processed</exception> public Task Connect(InterceptionMode mode, IEnumerable<CodeChannel> channels = null, IEnumerable<string> filters = null, bool priortyCodes = false, string socketPath = Defaults.FullSocketPath, CancellationToken cancellationToken = default) { Mode = mode; Channels.Clear(); if (channels == null) { Channels.AddRange(Enum.GetValues(typeof(CodeChannel)).Cast<CodeChannel>()); } else { Channels.AddRange(channels); } Filters.Clear(); if (filters != null) { Filters.AddRange(filters); } PriortyCodes = priortyCodes; InterceptInitMessage initMessage = new InterceptInitMessage { InterceptionMode = mode, Channels = Channels, Filters = Filters, PriortyCodes = priortyCodes }; return Connect(initMessage, socketPath, cancellationToken); }
/// <summary> /// Constructor of the interception processor /// </summary> /// <param name="conn">Connection instance</param> /// <param name="initMessage">Initialization message</param> public Interception(Connection conn, ClientInitMessage initMessage) : base(conn) { InterceptInitMessage interceptInitMessage = (InterceptInitMessage)initMessage; _mode = interceptInitMessage.InterceptionMode; }