|
|
(5 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 493: |
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 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>
| + | {| 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>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</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 GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</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 GetName;</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 ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetStatistics:TTransportStatistics; virtual;</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 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"|<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 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"|
| + | |
− | |-
| + | |
− | | <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"|<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 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"|
| + | |
− | |-
| + | |
− | | <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,997: |
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 3,009: |
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 3,021: |
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,033: |
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,045: |
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,060: |
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,072: |
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,084: |
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,096: |
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,108: |
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,120: |
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,132: |
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,144: |
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,156: |
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,164: |
Line 832: |
| <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | | <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 In6AddrToString(const AAddress:TIn6Addr):String;</pre> | | <pre style="border: 0; padding-bottom:0px;">function In6AddrToString(const AAddress:TIn6Addr):String;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert an In6Addr to a String</div> |
| <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,176: |
Line 844: |
| <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | | <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 StringToIn6Addr(const AAddress:String):TIn6Addr;</pre> | | <pre style="border: 0; padding-bottom:0px;">function StringToIn6Addr(const AAddress:String):TIn6Addr;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a String to an In6Addr</div> |
| <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> |
| {| 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 860: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| + | | None documented |
| + | |- |
| + | |} |
| + | </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 In6AddrIsNone(const AAddress:TIn6Addr):Boolean;</pre> |
| + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check the supplied address to see if it is IN6ADDR_NONE</div> |
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> |
| + | {| class="wikitable" style="font-size: 14px; background: white;" |
| + | |- |
| + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,204: |
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,216: |
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,228: |
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,240: |
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,252: |
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,264: |
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,276: |
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,288: |
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,300: |
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,312: |
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,324: |
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,336: |
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,348: |
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,360: |
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,372: |
Line 1,052: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,384: |
Line 1,064: |
| {| 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,396: |
Line 1,076: |
| {| 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,408: |
Line 1,088: |
| {| 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,423: |
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,435: |
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,447: |
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,459: |
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,471: |
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 |
| |- | | |- |
Line 3,483: |
Line 1,163: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |