Difference between revisions of "Unit Transport"

From Ultibo.org
Jump to: navigation, search
Line 493: Line 493:
  
  
'''Transport manager'''
+
'''Transport specific classes'''
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportManager = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
| <code>constructor Create(ASettings:TNetworkSettings; AAdapters:TAdapterManager);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
| <code>FSettings:TNetworkSettings;</code>
+
| &nbsp;
+
|-
+
| <code>FAdapters:TAdapterManager;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <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"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Settings:TNetworkSettings read FSettings;</code>
+
| &nbsp;
+
|-
+
| <code>property Adapters:TAdapterManager read FAdapters;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddTransport(ATransport:TNetworkTransport):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function RemoveTransport(ATransport:TNetworkTransport):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetTransportByName(const AName:String; ALock:Boolean; AState:LongWord):TNetworkTransport;</code>
+
| &nbsp;
+
|-
+
| <code>function GetTransportByType(AFamily,APacketType:Word; ALock:Boolean; AState:LongWord):TNetworkTransport;</code>
+
| &nbsp;
+
|-
+
| <code>function GetTransportByTransport(ATransport:TNetworkTransport; ALock:Boolean; AState:LongWord):TNetworkTransport;</code>
+
| &nbsp;
+
|-
+
| <code>function GetTransportByNext(APrevious:TNetworkTransport; ALock,AUnlock:Boolean; AState:LongWord):TNetworkTransport;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddMonitor(AMonitor:TNetworkMonitor):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function RemoveMonitor(AMonitor:TNetworkMonitor):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetMonitorByMonitor(AMonitor:TNetworkMonitor; ALock:Boolean; AState:LongWord):TNetworkMonitor;</code>
+
| &nbsp;
+
|-
+
| <code>function GetMonitorByNext(APrevious:TNetworkMonitor; ALock,AUnlock: Boolean; AState:LongWord):TNetworkMonitor;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddAuthenticator(AAuthenticator:TNetworkAuthenticator):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function RemoveAuthenticator(AAuthenticator:TNetworkAuthenticator):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetAuthenticatorByType(AAuthType:Word; ALock:Boolean; AState:LongWord):TNetworkAuthenticator;</code>
+
| &nbsp;
+
|-
+
| <code>function GetAuthenticatorByAuthenticator(AAuthenticator:TNetworkAuthenticator; ALock:Boolean; AState:LongWord):TNetworkAuthenticator;</code>
+
| &nbsp;
+
|-
+
| <code>function GetAuthenticatorByNext(APrevious:TNetworkAuthenticator; ALock,AUnlock:Boolean; AState:LongWord):TNetworkAuthenticator;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function StartTransports:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function StopTransports:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ProcessTransports:Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function EnumerateTransports(ACallback:TTransportCallback):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function BindTransports(AAdapter:TNetworkAdapter):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UnbindTransports(AAdapter:TNetworkAdapter):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function StartMonitors:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function StopMonitors:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ProcessMonitors:Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function EnumerateMonitors(ACallback:TMonitorCallback):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function BindMonitors(AAdapter:TNetworkAdapter):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UnbindMonitors(AAdapter:TNetworkAdapter):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function StartAuthenticators:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function StopAuthenticators:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ProcessAuthenticators:Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function EnumerateAuthenticators(ACallback:TAuthenticatorCallback):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function BindAuthenticators(AAdapter:TNetworkAdapter):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UnbindAuthenticators(AAdapter:TNetworkAdapter):Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Transport buffer'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportBuffer = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
| <code>constructor Create(ATransport:TNetworkTransport);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TCriticalSectionHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FTransport:TNetworkTransport;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AcquireLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReleaseLock:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Transport buffer extended'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportBufferEx = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
| <code>constructor Create(ATransport:TNetworkTransport);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FTransport:TNetworkTransport;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderConvert:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterConvert:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterOwner:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Transport adapter'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportAdapter = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: Downstream
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>Name:String;</code>
+
| &nbsp;
+
|-
+
| <code>Index:LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>Handle:THandle;</code>
+
| &nbsp;
+
|-
+
| <code>PacketType:Word;</code>
+
| &nbsp;
+
|-
+
| <code>Adapter:TNetworkAdapter;</code>
+
| &nbsp;
+
|-
+
| <code>Hardware:THardwareAddress;</code>
+
| &nbsp;
+
|-
+
| <code>Broadcast:THardwareAddress;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>MTU:Word;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <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"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderConvert:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterConvert:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
+
'''Transport binding'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportBinding = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: Midstream
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>Name:String;</code>
+
| &nbsp;
+
|-
+
| <code>Index:LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>Adapter:TTransportAdapter;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <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"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderConvert:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterConvert:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Transport protocol'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportProtocol = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: Upstream
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>Protocol:Word;</code>
+
| &nbsp;
+
|-
+
| <code>PacketHandler:TTransportPacketHandler;</code>
+
| &nbsp;
+
|-
+
| <code>ControlHandler:TTransportControlHandler;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Transport filter'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportFilter = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: Upstream
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>Protocol:Word;</code>
+
| &nbsp;
+
|-
+
| <code>FilterHandler:TTransportFilterHandler;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Transport configuration'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTransportConfig = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: Upstream
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
|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>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function ReaderLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function ReaderUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterLock:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function WriterUnlock:Boolean;</code>
+
| &nbsp;
+
|-
+
|}
+
</div></div>
+
 
+
'''Network transport'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TNetworkTransport = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
| <code>constructor Create(AManager:TTransportManager; const AName:String);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TSynchronizerHandle;</code>
+
| &nbsp;
+
|-
+
| <code>FLocalLock:TMutexHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FManager:TTransportManager;</code>
+
| &nbsp;
+
|-
+
| <code>FName:String;</code>
+
| &nbsp;
+
|-'''Transport specific classes'''
+
  
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"

Revision as of 05:17, 30 May 2018

Return to Unit Reference


Description


Ultibo Network Transport interface unit

Notes:

Includes all global transport definitions plus base class for Network transports.

Currently supported transports are IP, ARP, RARP, IPX and IP6.

All HostToNetwork swaps occur at the level where they are appropriate (ie the level of their header).

Bindings is provided to support Transports (such as IP) which can provide multiple addresses on a single adapter. It is not used by the Protocol or Winsock layer and is only used by the transport where appropriate. In such cases the ConfigType in the Adapter object is not used and the Binding is used instead.

Constants



[Expand]
Transport specific constants *_TYPE_*


[Expand]
Host constants *_HOST_*


[Expand]
Route constants *_ROUTE_*


[Expand]
Address constants *_ADDRESS_*


[Expand]
Transport socket TTL_*


[Expand]
Shutdown constants SHUTDOWN_*


[Expand]
Select constants SELECT_*


[Expand]
Socket state SS_*


[Expand]
IPv4 transport IP_*


[Expand]
IPv6 transport IP6_*


Type definitions



Transport statistics

[Expand]

PTransportStatistics = ^TTransportStatistics;

TTransportStatistics = record

IPv4 nameservers

[Expand]

PIPNameservers = ^TIPNameservers;

TIPNameservers = array[0..MAX_NAME_SERVERS - 1] of TInAddr;

IPv6 nameservers

[Expand]

PIP6Nameservers = ^TIP6Nameservers;

TIP6Nameservers = array[0..MAX_NAME_SERVERS - 1] of TIn6Addr;

Transport callback

TTransportCallback = function(ATransport:TNetworkTransport):Boolean of object;

Monitor callback

TMonitorCallback = function(AMonitor:TNetworkMonitor):Boolean of object;

Authenticator callback

TAuthenticatorCallback = function(AAuthenticator:TNetworkAuthenticator):Boolean of object;

Transport packet handler

TTransportPacketHandler = function(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean of object;

Transport control handler

TTransportControlHandler = function(AHandle:THandle; ASource,ADest:Pointer; AProtocol,ACommand,ACode:Word; AAddress,AData:Pointer; ASize:Integer):Boolean of object;

Transport filter handler

TTransportFilterHandler = function(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean of object;

Transport configuration handler

TTransportConfigHandler = function(AHandle:THandle; AAdapter:TTransportAdapter; ACommand:Word):Boolean of object;


Class definitions



Transport specific classes

TTransportManager = class(TObject)
TTransportBuffer = class(TObject)
TTransportBufferEx = class(TObject)
TTransportAdapter = class(TListObject)
TTransportBinding = class(TListObject)
TTransportProtocol = class(TListObject)
TTransportFilter = class(TListObject)
TTransportConfig = class(TListObject)
TNetworkTransport = class(TListObject)
TMonitorAdapter = class(TListObject)
TNetworkMonitor = class(TListObject)
TAuthenticatorAdapter = class(TListObject)
TNetworkAuthenticator = class(TListObject)
TTransportSocket = class(TListObject)
TSocketList = class(TObject)
TSocketState = class(TObject)
TSocketBuffer = class(TObject)
TSocketOptions = class(TObject)
TTransportState = class(TObject)
TTransportOptions = class(TObject)
THostEntry = class(TListObject)
TRouteEntry = class(TListObject)
TAddressEntry = class(TListObject)
TNetworkEntry = class(TListObject)
TServEntry = class(TListObject)
TProtoEntry = class(TListObject)


Public variables



Transport specific variables

TransportManager:TTransportManager;


Function declarations



Initialization functions

[Expand]
procedure TransportInit;
Description: To be documented


[Expand]
function TransportStart:LongWord;
Description: To be documented


[Expand]
function TransportStop:LongWord;
Description: To be documented


[Expand]
function TransportBind:LongWord;
Description: To be documented


[Expand]
function TransportUnbind:LongWord;
Description: To be documented


Transport functions

[Expand]
function InAddrToHost(const AAddress:TInAddr):TInAddr; inline;
Description: Convert an InAddr in Network order to Host order


[Expand]
function InAddrToNetwork(const AAddress:TInAddr):TInAddr; inline;
Description: Convert an InAddr in Host order to Network order


[Expand]
function InAddrToString(const AAddress:TInAddr):String;
Description: Convert an InAddr to a String


[Expand]
function StringToInAddr(const AAddress:String):TInAddr;
Description: Convert a String to an InAddr


[Expand]
function InAddrIsEqual(const AAddress1,AAddress2:TInAddr):Boolean;
Description: Check the supplied addresses to see if they are the same


[Expand]
function InAddrIsNone(const AAddress:TInAddr):Boolean;
Description: Check the supplied address to see if it is equal to INADDR_NONE


[Expand]
function InAddrIsDefault(const AAddress:TInAddr):Boolean;
Description: Check the supplied address to see if it is the default address


[Expand]
function InAddrIsLoopback(const AAddress:TInAddr):Boolean;
Description: Check the supplied address to see if it is a loopback address


[Expand]
function InAddrIsBroadcast(const AAddress:TInAddr):Boolean;
Description: Check the supplied address to see if it is the broadcast address


[Expand]
function InAddrIsMulticast(const AAddress:TInAddr):Boolean;
Description: Check the supplied address to see if it is a multicast address


[Expand]
function In6AddrToString(const AAddress:TIn6Addr):String;
Description: To be documented


[Expand]
function StringToIn6Addr(const AAddress:String):TIn6Addr;
Description: To be documented


[Expand]
function In6AddrIsEqual(const AAddress1,AAddress2:TIn6Addr):Boolean;
Description: Check the supplied addresses to see if they are the same


[Expand]
function In6AddrIsDefault(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is the default address


[Expand]
function In6AddrIsLoopback(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a loopback address


[Expand]
function In6AddrIsLinkLocal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a link local address


[Expand]
function In6AddrIsSiteLocal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a site local address


[Expand]
function In6AddrIsV4Mapped(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a V4 mapped address


[Expand]
function In6AddrIsV4Compatible(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a V4 compatible address


[Expand]
function In6AddrIsMulticast(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a multicast address


[Expand]
function In6AddrIsMulticastNodeLocal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a multicast node local address


[Expand]
function In6AddrIsMulticastLinkLocal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a multicast link local address


[Expand]
function In6AddrIsMulticastSiteLocal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a multicast site local address


[Expand]
function In6AddrIsMulticastOrgLocal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a multicast org local address


[Expand]
function In6AddrIsMulticastGlobal(const AAddress:TIn6Addr):Boolean;
Description: Check the supplied address to see if it is a multicast global address


[Expand]
function IpxAddrToString(const AAddress:TIpxAddr):String;
Description: To be documented


[Expand]
function StringToIpxAddr(const AAddress:String):TIpxAddr;
Description: To be documented


[Expand]
function GetChecksum(ABuffer:Pointer; AOffset,ALength:Word):Word;
Description: Calculate the 1s Compliment Checksum of the Supplied Buffer


[Expand]
function GetChecksum2(APseudo,ABuffer:Pointer; APseudoLength,ABufferOffset,ABufferLength:Word):Word;
Description: Calculate the 1s Compliment Checksum of the Supplied Pseudo and Buffer


[Expand]
function GetChecksum3(APseudo,AHeader,AData:Pointer; APseudoLength,AHeaderLength,ADataOffset,ADataLength:Word):Word;
Description: Calculate the 1s Compliment Checksum of the Supplied Pseudo, Header and Data


[Expand]
function GetChecksum4(APseudo,AHeader,AOptions,AData:Pointer; APseudoLength,AHeaderLength,AOptionsLength,ADataOffset,ADataLength:Word):Word;
Description: Calculate the 1s Compliment Checksum of the Supplied Pseudo, Header, Options and Data


Transport helper functions

[Expand]
function HostTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function RouteTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function AddressTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function ProtocolToString(AProtocol:Word):String;
Description: To be documented


[Expand]
function SocketTypeToString(ASocketType:Word):String;
Description: To be documented


[Expand]
function AddressFamilyToString(AFamily:Word):String;
Description: To be documented


Return to Unit Reference