Show / Hide Table of Contents

# Class SessionEventArgsBase

Holds info related to a single proxy session (single request/response sequence). A proxy session is bounded to a single connection from client. A proxy session ends when client terminates connection to proxy or when server terminates connection from proxy.

##### Inheritance

Object
EventArgs
SessionEventArgsBase
SessionEventArgs
TunnelConnectSessionEventArgs

##### Implements

IDisposable

##### Inherited Members

EventArgs.Empty
Object.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()

###### Namespace: Titanium.Web.Proxy.EventArguments

###### Assembly: Titanium.Web.Proxy.dll

##### Syntax

    public abstract class SessionEventArgsBase : EventArgs, IDisposable

### Constructors

| Improve this Doc View Source

#### SessionEventArgsBase(ProxyServer, ProxyEndPoint, CancellationTokenSource, Request)

##### Declaration

    protected SessionEventArgsBase(ProxyServer server, ProxyEndPoint endPoint, CancellationTokenSource cancellationTokenSource, Request request)

##### Parameters

Type | Name | Description
--- | --- | ---
ProxyServer | server |
ProxyEndPoint | endPoint |
CancellationTokenSource | cancellationTokenSource |
Request | request |

### Fields

| Improve this Doc View Source

#### bufferPool

##### Declaration

    protected readonly IBufferPool bufferPool

##### Field Value

Type | Description
--- | ---
StreamExtended.IBufferPool |

| Improve this Doc View Source

#### bufferSize

##### Declaration

    protected readonly int bufferSize

##### Field Value

Type | Description
--- | ---
Int32 |

| Improve this Doc View Source

#### exceptionFunc

##### Declaration

    protected readonly ExceptionHandler exceptionFunc

##### Field Value

Type | Description
--- | ---
ExceptionHandler |

### Properties

| Improve this Doc View Source

#### ClientEndPoint

Client End Point.

##### Declaration

    public IPEndPoint ClientEndPoint { get; }

##### Property Value

Type | Description
--- | ---
IPEndPoint |

| Improve this Doc View Source

#### CustomUpStreamProxyUsed

Are we using a custom upstream HTTP(S) proxy?

##### Declaration

    public ExternalProxy CustomUpStreamProxyUsed { get; }

##### Property Value

Type | Description
--- | ---
ExternalProxy |

| Improve this Doc View Source

#### Exception

The last exception that happened.

##### Declaration

    public Exception Exception { get; }

##### Property Value

Type | Description
--- | ---
Exception |

| Improve this Doc View Source

#### HttpClient

The web client used to communicate with server for this session.

##### Declaration

    public HttpWebClient HttpClient { get; }

##### Property Value

Type | Description
--- | ---
HttpWebClient |

| Improve this Doc View Source

#### IsHttps

Does this session uses SSL?

##### Declaration

    public bool IsHttps { get; }

##### Property Value

Type | Description
--- | ---
Boolean |

| Improve this Doc View Source

#### IsTransparent

Is this a transparent endpoint?

##### Declaration

    public bool IsTransparent { get; }

##### Property Value

Type | Description
--- | ---
Boolean |

| Improve this Doc View Source

#### LocalEndPoint

Local endpoint via which we make the request.

##### Declaration

    public ProxyEndPoint LocalEndPoint { get; }

##### Property Value

Type | Description
--- | ---
ProxyEndPoint |

| Improve this Doc View Source

#### TimeLine

Relative milliseconds for various events.

##### Declaration

    public Dictionary<string, DateTime> TimeLine { get; set; }

##### Property Value

Type | Description
--- | ---
Dictionary<String, DateTime> |

| Improve this Doc View Source

#### UserData

Returns a user data for this request/response session which is same as the user data of HttpClient.

##### Declaration

    public object UserData { get; set; }

##### Property Value

Type | Description
--- | ---
Object |

| Improve this Doc View Source

#### WebSession

##### Declaration

    [Obsolete("Use HttpClient instead.")]
    public HttpWebClient WebSession { get; }

##### Property Value

Type | Description
--- | ---
HttpWebClient |

### Methods

| Improve this Doc View Source

#### Dispose()

Implements cleanup here.

##### Declaration

    public virtual void Dispose()

| Improve this Doc View Source

#### TerminateSession()

Terminates the session abruptly by terminating client/server connections.

##### Declaration

    public void TerminateSession()

### Events

| Improve this Doc View Source

#### DataReceived

Fired when data is received within this session from client/server.

##### Declaration

    public event EventHandler<DataEventArgs> DataReceived

##### Event Type

Type | Description
--- | ---
EventHandler<StreamExtended.Network.DataEventArgs> |

| Improve this Doc View Source

#### DataSent

Fired when data is sent within this session to server/client.

##### Declaration

    public event EventHandler<DataEventArgs> DataSent

##### Event Type

Type | Description
--- | ---
EventHandler<StreamExtended.Network.DataEventArgs> |

### Implements

System.IDisposable