Files
DP44/docs/ai/Common/DTS.Common/Interface/Connection.md

57 lines
3.1 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Interface/Connection/IConnection.cs
generated_at: "2026-04-17T16:52:23.062559+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c785cd9a26c94c57"
---
# Documentation: IConnection Interface
## 1. Purpose
The `IConnection` interface defines an abstraction for network connection management within the DTS system. It provides a comprehensive contract for socket-based communication, supporting both APM (Asynchronous Programming Model) and Task-based asynchronous patterns. The interface encapsulates connection lifecycle management (creation, connection, disconnection), data transfer operations (send/receive), server-side operations (bind/listen/accept), and introduces a "soft disconnect" concept for temporary disconnections with the expectation of reconnection. This interface exists to decouple higher-level application logic from specific connection implementations, enabling testability and implementation flexibility.
## 2. Public Interface
### Properties
| Signature | Description |
|-----------|-------------|
| `bool IsSoftDisconnected { get; }` | Returns `true` if the connection is in a soft-disconnected state (voluntarily disconnected with expectation of reconnecting). |
| `System.Net.Sockets.SocketFlags Flags { get; set; }` | Gets or sets socket flags used for send/receive operations. |
| `string ConnectString { get; }` | Returns the connection string associated with this connection. |
| `bool Connected { get; }` | Returns `true` if the connection is currently active. |
### Events
| Signature | Description |
|-----------|-------------|
| `event EventHandler OnDisconnected` | Raised when the connection is disconnected. |
### Methods - Connection Lifecycle
| Signature | Description |
|-----------|-------------|
| `void Create(string connectString)` | Initializes the connection using the provided connection string. |
| `void Create(string connectString, string hostIPAddress)` | Initializes the connection with a connection string and specific host IP address. |
| `void SoftDisconnect()` | Performs a soft disconnect (voluntary disconnection with intent to reconnect later). |
| `void SoftConnect()` | Reconnects a soft-disconnected connection. |
| `void KeepAliveErrorReceived()` | Called to indicate the device has not received a timely response to keep-alive. |
| `string GetConnectionData()` | Returns connection data as a string. |
### Methods - APM Pattern (Connect/Disconnect)
| Signature | Description |
|-----------|-------------|
| `IAsyncResult BeginConnect(AsyncCallback callback, object callbackObject)` | Begins an asynchronous connection attempt. |
| `void EndConnect(IAsyncResult ar)` | Completes an asynchronous connection attempt. |
| `IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback callback, object state)` | Begins an asynchronous disconnection. |
| `void EndDisconnect(IAsyncResult asyncResult)` | Completes an asynchronous disconnection. |
### Methods - APM Pattern (Server Operations)
| Signature | Description |
|-----------|-------------|
| `void Bind(int port)` | Binds the connection to a specific port.