|
|
(6 intermediate revisions by the same user not shown) |
Line 5: |
Line 5: |
| ---- | | ---- |
| | | |
− | '''Ultibo Network Transport interface unit''' | + | '''Ultibo Network Transport Interface unit''' |
| | | |
| ''Notes:'' | | ''Notes:'' |
Line 198: |
Line 198: |
| |- | | |- |
| | <code>SELECT_ERROR = 2;</code> | | | <code>SELECT_ERROR = 2;</code> |
| + | | |
| + | |- |
| + | |colspan="2"| |
| + | |- |
| + | | <code>SELECT_UNKNOWN = -1;</code> |
| | | | | |
| |- | | |- |
Line 488: |
Line 493: |
| | | |
| | | |
− | '''Transport manager''' | + | '''Transport specific classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>TTransportManager = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ASettings:TNetworkSettings; AAdapters:TAdapterManager);</code> | + | | [[TTransportManager|<code>TTransportManager = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSettings:TNetworkSettings;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAdapters:TAdapterManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTransports:TNetworkList;</code>
| + | |
− | | List of TNetworkTransport objects
| + | |
− | |-
| + | |
− | | <code>FMonitors:TNetworkList;</code>
| + | |
− | | List of TNetworkMonitor objects
| + | |
− | |-
| + | |
− | | <code>FAuthenticators:TNetworkList;</code>
| + | |
− | | List of TNetworkAuthenticator objects
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Settings:TNetworkSettings read FSettings;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Adapters:TAdapterManager read FAdapters;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddTransport(ATransport:TNetworkTransport):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveTransport(ATransport:TNetworkTransport):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetTransportByType(AFamily,APacketType:Word; ALock:Boolean; AState:LongWord):TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTransportByTransport(ATransport:TNetworkTransport; ALock:Boolean; AState:LongWord):TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTransportByNext(APrevious:TNetworkTransport; ALock,AUnlock:Boolean; AState:LongWord):TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddMonitor(AMonitor:TNetworkMonitor):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveMonitor(AMonitor:TNetworkMonitor):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetMonitorByMonitor(AMonitor:TNetworkMonitor; ALock:Boolean; AState:LongWord):TNetworkMonitor;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMonitorByNext(APrevious:TNetworkMonitor; ALock,AUnlock: Boolean; AState:LongWord):TNetworkMonitor;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAuthenticator(AAuthenticator:TNetworkAuthenticator):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAuthenticator(AAuthenticator:TNetworkAuthenticator):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetAuthenticatorByType(AAuthType:Word; ALock:Boolean; AState:LongWord):TNetworkAuthenticator;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAuthenticatorByAuthenticator(AAuthenticator:TNetworkAuthenticator; ALock:Boolean; AState:LongWord):TNetworkAuthenticator;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAuthenticatorByNext(APrevious:TNetworkAuthenticator; ALock,AUnlock:Boolean; AState:LongWord):TNetworkAuthenticator;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StartTransports:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopTransports:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTransports:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function EnumerateTransports(ACallback:TTransportCallback):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BindTransports(AAdapter:TNetworkAdapter):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnbindTransports(AAdapter:TNetworkAdapter):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StartMonitors:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopMonitors:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessMonitors:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function EnumerateMonitors(ACallback:TMonitorCallback):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BindMonitors(AAdapter:TNetworkAdapter):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnbindMonitors(AAdapter:TNetworkAdapter):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StartAuthenticators:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopAuthenticators:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessAuthenticators:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function EnumerateAuthenticators(ACallback:TAuthenticatorCallback):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BindAuthenticators(AAdapter:TNetworkAdapter):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnbindAuthenticators(AAdapter:TNetworkAdapter):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport buffer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportBuffer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ATransport:TNetworkTransport);</code> | + | | [[TTransportBuffer|<code>TTransportBuffer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FTransport:TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport buffer extended'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportBufferEx = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ATransport:TNetworkTransport);</code> | + | | [[TTransportBufferEx|<code>TTransportBufferEx = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FTransport:TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterOwner:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport adapter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportAdapter = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Downstream | + | | [[TTransportAdapter|<code>TTransportAdapter = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Name:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Index:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Handle:THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>PacketType:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Adapter:TNetworkAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Hardware:THardwareAddress;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Broadcast:THardwareAddress;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>MTU:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>ConfigType:Word;</code>
| + | |
− | | BOOTP/DHCP/RARP/STATIC/PSEUDO/LOOPBACK
| + | |
− | |-
| + | |
− | | <code>Configured:Boolean;</code>
| + | |
− | | Adapter has been configured
| + | |
− | |-
| + | |
− | | <code>Configuring:Boolean;</code>
| + | |
− | | Adapter is being configured
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''Transport binding'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportBinding = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Midstream | + | | [[TTransportBinding|<code>TTransportBinding = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Name:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Index:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Adapter:TTransportAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>ConfigType:Word;</code>
| + | |
− | | BOOTP/DHCP/RARP/STATIC/PSEUDO/LOOPBACK
| + | |
− | |-
| + | |
− | | <code>Configured:Boolean;</code>
| + | |
− | | Adapter has been configured
| + | |
− | |-
| + | |
− | | <code>Configuring:Boolean;</code>
| + | |
− | | Adapter is being configured
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport protocol'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportProtocol = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Upstream | + | | [[TTransportProtocol|<code>TTransportProtocol = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Protocol:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>PacketHandler:TTransportPacketHandler;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>ControlHandler:TTransportControlHandler;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport filter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportFilter = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Upstream | + | | [[TTransportFilter|<code>TTransportFilter = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Protocol:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FilterHandler:TTransportFilterHandler;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport configuration'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportConfig = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Upstream | + | | [[TTransportConfig|<code>TTransportConfig = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>ConfigType:Word;</code>
| + | |
− | | BOOTP/DHCP/RARP/STATIC/PSEUDO/LOOPBACK
| + | |
− | |-
| + | |
− | | <code>ConfigAuto:Boolean;</code>
| + | |
− | | Supports Auto Configuration
| + | |
− | |-
| + | |
− | | <code>ConfigHandler:TTransportConfigHandler;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Network transport'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TNetworkTransport = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(AManager:TTransportManager; const AName:String);</code> | + | | [[TNetworkTransport|<code>TNetworkTransport = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FManager:TTransportManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFamily:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPacketType:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAdapters:TNetworkList;</code>
| + | |
− | | List of TTransportAdapter objects
| + | |
− | |-
| + | |
− | | <code>FBindings:TNetworkList;</code>
| + | |
− | | List of TTransportBinding objects
| + | |
− | |-
| + | |
− | | <code>FProtocols:TNetworkList;</code>
| + | |
− | | List of TTransportProtocol objects
| + | |
− | |-
| + | |
− | | <code>FFilters:TNetworkList;</code>
| + | |
− | | List of TTransportFilter objects
| + | |
− | |-
| + | |
− | | <code>FConfigs:TNetworkList;</code>
| + | |
− | | List of TTransportConfig objects
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FStatistics:TTransportStatistics;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TTransportAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByAdapter(AAdapter:TNetworkAdapter; ALock:Boolean; AState:LongWord):TTransportAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByNext(APrevious:TTransportAdapter; ALock,AUnlock:Boolean; AState:LongWord):TTransportAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetProtocolByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TTransportProtocol;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProtocolByType(AProtocol:Word; ALock:Boolean; AState:LongWord):TTransportProtocol;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProtocolByProtocol(AProtocol:TTransportProtocol; ALock:Boolean; AState:LongWord):TTransportProtocol;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProtocolByNext(APrevious:TTransportProtocol; ALock,AUnlock:Boolean; AState:LongWord):TTransportProtocol;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFilterByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TTransportFilter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFilterByProtocol(AProtocol:Word; ALock:Boolean; AState:LongWord):TTransportFilter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFilterByFilter(AFilter:TTransportFilter; ALock:Boolean; AState:LongWord):TTransportFilter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFilterByNext(APrevious:TTransportFilter; ALock,AUnlock:Boolean; AState:LongWord):TTransportFilter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetConfigByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TTransportConfig;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConfigByType(AConfigType:Word; ALock:Boolean; AState:LongWord):TTransportConfig;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConfigByConfig(AConfig:TTransportConfig; ALock:Boolean; AState:LongWord):TTransportConfig;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConfigByNext(APrevious:TTransportConfig; ALock,AUnlock:Boolean; AState:LongWord):TTransportConfig;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAdapter(AAdapter:TNetworkAdapter; AConfigType:Word; AAddress,ANetmask,AGateway,AServer:Pointer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAdapter(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddProtocol(AProtocol:Word; APacketHandler:TTransportPacketHandler; AControlHandler:TTransportControlHandler):THandle; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveProtocol(AHandle:THandle; AProtocol:Word):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddFilter(AProtocol:Word; AFilterHandler:TTransportFilterHandler):THandle; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveFilter(AHandle:THandle; AProtocol:Word):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddConfig(AConfigType:Word; AConfigAuto:Boolean; AConfigHandler:TTransportConfigHandler):THandle; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveConfig(AHandle:THandle; AConfigType:Word):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SendPacket(ASocket:TTransportSocket; ASource,ADest:Pointer; APacket:PPacketFragment; ASize,AFlags:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SendControl(ASource,ADest:Pointer; AProtocol,ACommand,ACode:Word; AAddress,AData:Pointer; ASize:Integer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FilterPacket(ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ForwardPacket(AAdapter:TTransportAdapter; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Manager:TTransportManager read FManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Name:String read FName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Family:Word read FFamily;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PacketType:Word read FPacketType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSockOpt(ASocket:TTransportSocket; ALevel,AOptName:Integer; AOptValue:PChar; var AOptLength:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetSockOpt(ASocket:TTransportSocket; ALevel,AOptName:Integer; AOptValue:PChar; AOptLength:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetStatistics:TTransportStatistics; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StartTransport:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopTransport:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTransport:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BindTransport(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnbindTransport(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Monitor adapter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TMonitorAdapter = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Downstream | + | | [[TMonitorAdapter|<code>TMonitorAdapter = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Handle:THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Adapter:TNetworkAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Network monitor'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TNetworkMonitor = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: eg Packet Capture | + | | [[TNetworkMonitor|<code>TNetworkMonitor = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(AManager:TTransportManager);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FManager:TTransportManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAdapters:TNetworkList;</code>
| + | |
− | | List of TMonitorAdapter objects
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TMonitorAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByAdapter(AAdapter:TNetworkAdapter; ALock:Boolean; AState:LongWord):TMonitorAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByNext(APrevious:TMonitorAdapter; ALock,AUnlock:Boolean; AState:LongWord):TMonitorAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAdapter(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAdapter(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Manager:TTransportManager read FManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StartMonitor:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopMonitor:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessMonitor:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BindMonitor(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnbindMonitor(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Authenticator adapter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TAuthenticatorAdapter = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Downstream | + | | [[TAuthenticatorAdapter|<code>TAuthenticatorAdapter = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Handle:THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Adapter:TNetworkAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Network authenticator'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TNetworkAuthenticator = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: eg EAP/RSN | + | | [[TNetworkAuthenticator|<code>TNetworkAuthenticator = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(AManager:TTransportManager);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FManager:TTransportManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAuthType:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FInitDelay:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRetryCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRetryTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAdapters:TNetworkList;</code>
| + | |
− | | List of TAuthenticatorAdapter objects
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TAuthenticatorAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByAdapter(AAdapter:TNetworkAdapter; ALock:Boolean; AState:LongWord):TAuthenticatorAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAdapterByNext(APrevious:TAuthenticatorAdapter; ALock,AUnlock:Boolean; AState:LongWord):TAuthenticatorAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAdapter(AAdapter:TNetworkAdapter; AAuthType:Word; ACipher,AKey,AEntity,AToken:Pointer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAdapter(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Manager:TTransportManager read FManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AuthType:Word read FAuthType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property InitDelay:LongWord read FInitDelay;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RetryCount:LongWord read FRetryCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RetryTimeout:LongWord read FRetryTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StartAuthenticator:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopAuthenticator:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessAuthenticator:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BindAuthenticator(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnbindAuthenticator(AAdapter:TNetworkAdapter):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport socket'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportSocket = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ATransport:TNetworkTransport);</code> | + | | [[TTransportSocket|<code>TTransportSocket = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFamily(AFamily:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetStruct(AStruct:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetProto(AProto:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetOwner(AOwner:TSocketList);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetSocketError(ASocketError:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetOpenTime(const AOpenTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetCloseTime(const ACloseTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLingerTime(const ALingerTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetTimewaitTime(const ATimewaitTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetKeepAliveTime(const AKeepAliveTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FTransport:TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFamily:Word;</code>
| + | |
− | | AF_INET, AF_INET6, AF_IPX etc
| + | |
− | |-
| + | |
− | | <code>FStruct:Word;</code>
| + | |
− | | SOCK_STREAM, SOCK_DGRAM etc
| + | |
− | |-
| + | |
− | | <code>FProto:Word;</code>
| + | |
− | | IPPROTO_UDP, IPPROTO_TCP etc
| + | |
− | |-
| + | |
− | | <code>FOwner:TSocketList;</code>
| + | |
− | | List that this Socket belongs to (eg AcceptQueue)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSocketError:Integer;</code>
| + | |
− | | CONN_REFUSED etc
| + | |
− | |-
| + | |
− | | <code>FSocketState:TSocketState;</code>
| + | |
− | | SS_UNCONNECTED, SS_ISCONNECTED etc
| + | |
− | |-
| + | |
− | | <code>FSocketOptions:TSocketOptions;</code>
| + | |
− | | SO_ACCEPTCONN, SO_BROADCAST etc
| + | |
− | |-
| + | |
− | | <code>FOpenTime:Int64;</code>
| + | |
− | | Socket was Opened ar [msec] (TCP_STATE_ESTAB)
| + | |
− | |-
| + | |
− | | <code>FCloseTime:Int64;</code>
| + | |
− | | Socket was Closed at [msec] (TCP_STATE_CLOSED)
| + | |
− | |-
| + | |
− | | <code>FLingerTime:Int64;</code>
| + | |
− | | Went into Linger at [msec]
| + | |
− | |-
| + | |
− | | <code>FTimewaitTime:Int64;</code>
| + | |
− | | Went into Timewait at [msec] (TCP_STATE_TIMEWAIT)
| + | |
− | |-
| + | |
− | | <code>FKeepAliveTime:Int64;</code>
| + | |
− | | Last KeepAlive Packet at [msec]
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTransportState:TTransportState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FTransportOptions:TTransportOptions;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Family:Word read FFamily write SetFamily;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Struct:Word read FStruct write SetStruct;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Proto:Word read FProto write SetProto;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Owner:TSocketList read FOwner write SetOwner;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SocketError:Integer read FSocketError write SetSocketError;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SocketState:TSocketState read FSocketState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SocketOptions:TSocketOptions read FSocketOptions;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OpenTime:Int64 read FOpenTime write SetOpenTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CloseTime:Int64 read FCloseTime write SetCloseTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LingerTime:Int64 read FLingerTime write SetLingerTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property TimewaitTime:Int64 read FTimewaitTime write SetTimewaitTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property KeepAliveTime:Int64 read FKeepAliveTime write SetKeepAliveTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property TransportState:TTransportState read FTransportState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property TransportOptions:TTransportOptions read FTransportOptions;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Transport:TNetworkTransport read FTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetOption(ALevel,AOptName:Integer; AOptValue:PChar; var AOptLength:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetOption(ALevel,AOptName:Integer; AOptValue:PChar; AOptLength:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function IoCtl(ACommand:DWORD; var AArgument:u_long):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function IsConnected(ALocalAddress,ARemoteAddress:Pointer; ALocalPort,ARemotePort:Word; ABroadcast:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function IsListening(ALocalAddress,ARemoteAddress:Pointer; ALocalPort,ARemotePort:Word; ABroadcast:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Socket list'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TSocketList = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: For tracking Sockets belonging to a List (eg AcceptQueue) | + | | [[TSocketList|<code>TSocketList = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FList:TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure RemoveListItems;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCount:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetItem(AIndex:Integer):TTransportSocket;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetItem(AIndex:Integer; AItem:TTransportSocket);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Count:Integer read GetCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Items[Index:Integer]:TTransportSocket read GetItem write SetItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Add(ASocket:TTransportSocket):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Remove(ASocket:TTransportSocket):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function First:TTransportSocket;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Last:TTransportSocket;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure ClearList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Socket state'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TSocketState = class(TObject) </code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: For Socket State tracking SS_UNCONNECTED, SS_PRIV etc | + | | [[TSocketState|<code>TSocketState = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FState:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetUnconnected:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetUnconnected(AUnconnected:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConnected:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetConnected(AConnected:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConnecting:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetConnecting(AConnecting:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDisconnecting:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetDisconnecting(ADisconnecting:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCantSendMore:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetCantSendMore(ACantSendMore:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCantRecvMore:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetCantRecvMore(ACantRecvMore:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecvAtMark:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRecvAtMark(ARecvAtMark:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPrivileged:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPrivileged(APrivileged:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetNonBlocking:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetNonBlocking(ANonBlocking:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAsync:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAsync(AAsync:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetListening:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetListening(AListening:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetLocalAddress:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLocalAddress(ALocalAddress:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRemoteAddress:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRemoteAddress(ARemoteAddress:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConnRefused:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetConnRefused(AConnRefused:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetClosed:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetClosed(AClosed:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Unconnected:Boolean read GetUnconnected write SetUnconnected;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Connected:Boolean read GetConnected write SetConnected;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Connecting:Boolean read GetConnecting write SetConnecting;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Disconnecting:Boolean read GetDisconnecting write SetDisconnecting;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CantSendMore:Boolean read GetCantSendMore write SetCantSendMore;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CantRecvMore:Boolean read GetCantRecvMore write SetCantRecvMore;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecvAtMark:Boolean read GetRecvAtMark write SetRecvAtMark;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Privileged:Boolean read GetPrivileged write SetPrivileged;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property NonBlocking:Boolean read GetNonBlocking write SetNonBlocking;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Async:Boolean read GetAsync write SetAsync;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Listening:Boolean read GetListening write SetListening;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property LocalAddress:Boolean read GetLocalAddress write SetLocalAddress;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RemoteAddress:Boolean read GetRemoteAddress write SetRemoteAddress;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ConnRefused:Boolean read GetConnRefused write SetConnRefused;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Closed:Boolean read GetClosed write SetClosed;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Socket buffer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TSocketBuffer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Base Socket Buffer Class | + | | [[TSocketBuffer|<code>TSocketBuffer = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ASocket:TTransportSocket);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FSocket:TTransportSocket;</code>
| + | |
− | | Socket owning this buffer
| + | |
− | |-
| + | |
− | | <code>FBuffer:TMemoryStream;</code>
| + | |
− | | Memory Buffer for Data
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSize:LongWord;</code>
| + | |
− | | Physical Size of Data Buffer
| + | |
− | |-
| + | |
− | | <code>FStart:Pointer;</code>
| + | |
− | | First Byte of Data Buffer
| + | |
− | |-
| + | |
− | | <code>FEnd:Pointer;</code>
| + | |
− | | Last Byte of Data Buffer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FUsed:LongWord;</code>
| + | |
− | | Amount of Buffer Used
| + | |
− | |-
| + | |
− | | <code>FFree:LongWord;</code>
| + | |
− | | Amount of Buffer Free
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetSize(ASize:LongWord); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Size:LongWord read FSize write SetSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetUsed:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFree:LongWord;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Socket options'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TSocketOptions = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: For Get/Set Options Level = SOL_SOCKET Option = SO_KEEPALIVE, SO_ACCEPTCONN, SO_BROADCAST etc | + | | [[TSocketOptions|<code>TSocketOptions = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FOptions:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLinger:TLinger;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSendBuffer:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecvBuffer:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSendLowMark:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecvLowMark:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSendTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecvTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FConnTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetLinger(const ALinger:TLinger);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSendBuffer(ASendBuffer:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRecvBuffer(ARecvBuffer:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSendLowMark(ASendLowMark:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRecvLowMark(ARecvLowMark:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSendTimeout(ASendTimeout:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRecvTimeout(ARecvTimeout:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetConnTimeout(AConnTimeout:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDebug:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetDebug(ADebug:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAccept:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAccept(AAccept:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetReuseAddress:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetReuseAddress(AReuseAddress:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetKeepAlive:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetKeepAlive(AKeepAlive:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDontRoute:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetDontRoute(ADontRoute:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBroadcast:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetBroadcast(ABroadcast:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetUseLoopback:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetUseLoopback(AUseLoopback:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetUrgentInline:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetUrgentInline(AUrgentInline:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Linger:TLinger read FLinger write SetLinger;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SendBuffer:Integer read FSendBuffer write SetSendBuffer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecvBuffer:Integer read FRecvBuffer write SetRecvBuffer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SendLowMark:Integer read FSendLowMark write SetSendLowMark;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecvLowMark:Integer read FRecvLowMark write SetRecvLowMark;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SendTimeout:LongWord read FSendTimeout write SetSendTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecvTimeout:LongWord read FRecvTimeout write SetRecvTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ConnTimeout:LongWord read FConnTimeout write SetConnTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Debug:Boolean read GetDebug write SetDebug;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Accept:Boolean read GetAccept write SetAccept;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ReuseAddress:Boolean read GetReuseAddress write SetReuseAddress;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property KeepAlive:Boolean read GetKeepAlive write SetKeepAlive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DontRoute:Boolean read GetDontRoute write SetDontRoute;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Broadcast:Boolean read GetBroadcast write SetBroadcast;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UseLoopback:Boolean read GetUseLoopback write SetUseLoopback;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UrgentInline:Boolean read GetUrgentInline write SetUrgentInline;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport state'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportState = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TTransportState|<code>TTransportState = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Transport options'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TTransportOptions = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: For Get/Set Options at the Transport Level (eg IPPROTO_IP) | + | | [[TTransportOptions|<code>TTransportOptions = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Host entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THostEntry = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[THostEntry|<code>THostEntry = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAliases:TStringList; </code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFamily(AFamily:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLength(ALength:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetHostType(AHostType:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetHostTime(const AHostTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFamily:Integer;</code>
| + | |
− | | Always 2 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FLength:Integer;</code>
| + | |
− | | Always 4 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FHostType:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHostTime:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Family:Integer read FFamily write SetFamily;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Length:Integer read FLength write SetLength;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property HostType:Word read FHostType write SetHostType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property HostTime:Int64 read FHostTime write SetHostTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Route entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TRouteEntry = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TRouteEntry|<code>TRouteEntry = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFamily(AFamily:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLength(ALength:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMetric(AMetric:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRouteType(ARouteType:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRouteTime(const ARouteTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FFamily:Integer;</code>
| + | |
− | | Always 2 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FLength:Integer;</code>
| + | |
− | | Always 4 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FMetric:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRouteType:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRouteTime:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Family:Integer read FFamily write SetFamily;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Length:Integer read FLength write SetLength;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Metric:Integer read FMetric write SetMetric;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RouteType:Word read FRouteType write SetRouteType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RouteTime:Int64 read FRouteTime write SetRouteTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Address entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TAddressEntry = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TAddressEntry|<code>TAddressEntry = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFamily(AFamily:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLength(ALength:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAddressType(AAddressType:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAddressTime(const AAddressTime:Int64);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAdapter(AAdapter:TNetworkAdapter);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FFamily:Integer;</code>
| + | |
− | | Always 2 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FLength:Integer;</code>
| + | |
− | | Always 4 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FAddressType:Word;</code>
| + | |
− | | Dynamic/Static/Multicast/Broadcast/Primary/Secondary
| + | |
− | |-
| + | |
− | | <code>FAddressTime:Int64;</code>
| + | |
− | | Flush time for Dynamic entries
| + | |
− | |-
| + | |
− | | <code>FAdapter:TNetworkAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Family:Integer read FFamily write SetFamily;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Length:Integer read FLength write SetLength;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AddressType:Word read FAddressType write SetAddressType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AddressTime:Int64 read FAddressTime write SetAddressTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Adapter:TNetworkAdapter read FAdapter write SetAdapter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Network entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TNetworkEntry = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TNetworkEntry|<code>TNetworkEntry = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAliases:TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFamily(AFamily:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLength(ALength:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFamily:Integer;</code>
| + | |
− | | Always 2 for AF_INET
| + | |
− | |-
| + | |
− | | <code>FLength:Integer;</code>
| + | |
− | | Always 4 for AF_INET
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Family:Integer read FFamily write SetFamily;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Length:Integer read FLength write SetLength;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Service entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TServEntry = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TServEntry|<code>TServEntry = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAliases:TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPort(APort:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProtocol:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetProtocol(const AProtocol:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPort:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProtocol:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Port:Word read FPort write SetPort;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Protocol:String read GetProtocol write SetProtocol;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Protocol entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TProtoEntry = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TProtoEntry|<code>TProtoEntry = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAliases:TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetNumber(ANumber:Word);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FNumber:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Number:Word read FNumber write SetNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveAlias(const Alias:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
| <br /> | | <br /> |
| | | |
Line 2,973: |
Line 653: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 2,985: |
Line 665: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 2,997: |
Line 677: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,009: |
Line 689: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,021: |
Line 701: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,036: |
Line 716: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,048: |
Line 728: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,060: |
Line 740: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Expects Address to be in Network order | | | Expects Address to be in Network order |
| |- | | |- |
Line 3,072: |
Line 752: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Returns Address in Network order | | | Returns Address in Network order |
| |- | | |- |
Line 3,084: |
Line 764: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| + | | Expects Address to be in Host order |
| + | |- |
| + | |} |
| + | </div></div> |
| + | <br /> |
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> |
| + | <pre style="border: 0; padding-bottom:0px;">function InAddrIsNone(const AAddress:TInAddr):Boolean;</pre> |
| + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check the supplied address to see if it is equal to INADDR_NONE</div> |
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> |
| + | {| class="wikitable" style="font-size: 14px; background: white;" |
| + | |- |
| + | ! Note |
| | Expects Address to be in Host order | | | Expects Address to be in Host order |
| |- | | |- |
Line 3,096: |
Line 788: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Expects Address to be in Host order | | | Expects Address to be in Host order |
| |- | | |- |
Line 3,108: |
Line 800: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Expects Address to be in Host order | | | Expects Address to be in Host order |
| |- | | |- |
Line 3,120: |
Line 812: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Expects Address to be in Host order | | | Expects Address to be in Host order |
| |- | | |- |
Line 3,132: |
Line 824: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Expects Address to be in Host order | | | Expects Address to be in Host order |
| |- | | |- |
Line 3,144: |
Line 836: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,156: |
Line 848: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,168: |
Line 860: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,180: |
Line 872: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,192: |
Line 884: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,204: |
Line 896: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,216: |
Line 908: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,228: |
Line 920: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,240: |
Line 932: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,252: |
Line 944: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,264: |
Line 956: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,276: |
Line 968: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,288: |
Line 980: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,300: |
Line 992: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,312: |
Line 1,004: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,324: |
Line 1,016: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,336: |
Line 1,028: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,348: |
Line 1,040: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,360: |
Line 1,052: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Pseudo is expected to start from Offset 0 | | | Pseudo is expected to start from Offset 0 |
| |- | | |- |
Line 3,372: |
Line 1,064: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Pseudo and Header are expected to start from Offset 0 | | | Pseudo and Header are expected to start from Offset 0 |
| |- | | |- |
Line 3,384: |
Line 1,076: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
− | | Pseudo, Header and Options are expected to start from Offset 0 | + | | Pseudo, Header and Options are expected to start from Offset 0. |
| |- | | |- |
| |} | | |} |
Line 3,399: |
Line 1,091: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,411: |
Line 1,103: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,423: |
Line 1,115: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,435: |
Line 1,127: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,447: |
Line 1,139: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,459: |
Line 1,151: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Includes all global transport definitions plus base class for Network transports.
Currently supported transports are IP, ARP, RARP, IPX and IP6.
All HostToNetwork swaps occur at the level where they are appropriate (ie the level of their header).
Bindings is provided to support Transports (such as IP) which can provide multiple addresses on a single adapter. It is not used by the Protocol or Winsock layer and is only used by the transport where appropriate. In such cases the ConfigType in the Adapter object is not used and the Binding is used instead.