|
|
Line 493: |
Line 493: |
| | | |
| | | |
− | '''Transport manager'''
| + | '''Transport specific classes''' |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <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>
| + | |
− | | 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 GetTransportByName(const AName:String; ALock:Boolean; AState:LongWord):TNetworkTransport;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <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>
| + | |
− | | + | |
− | '''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>
| + | |
− | | 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>
| + | |
− | | + | |
− | '''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>
| + | |
− | | 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>
| + | |
− | | + | |
− | '''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
| + | |
− | |-
| + | |
− | |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 ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |}
| + | |
− | </div></div>
| + | |
− |
| + | |
− | '''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
| + | |
− | |-
| + | |
− | |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 ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |}
| + | |
− | </div></div>
| + | |
− | | + | |
− | '''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
| + | |
− | |-
| + | |
− | |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>
| + | |
− | | + | |
− | '''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
| + | |
− | |-
| + | |
− | |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>
| + | |
− | | + | |
− | '''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
| + | |
− | |-
| + | |
− | |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>
| + | |
− | | + | |
− | '''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>
| + | |
− | | 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"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FManager:TTransportManager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-'''Transport specific classes'''
| + | |
| | | |
| {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
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.