|
|
Line 1,099: |
Line 1,099: |
| | <code>FName:String;</code> | | | <code>FName:String;</code> |
| | | | | |
| + | |-'''Transport specific classes''' |
| + | |
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | |colspan="2"| | + | | [[TTransportManager|<code>TTransportManager = class(TObject)</code>]] |
| |- | | |- |
− | | <code>FFamily:Word;</code> | + | |} |
− | | | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | | <code>FPacketType:Word;</code> | + | | [[TTransportBuffer|<code>TTransportBuffer = class(TObject)</code>]] |
− | |
| + | |
| |- | | |- |
− | | <code>FAdapters:TNetworkList;</code> | + | |} |
− | | List of TTransportAdapter objects | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | | <code>FBindings:TNetworkList;</code> | + | | [[TTransportBufferEx|<code>TTransportBufferEx = class(TObject)</code>]] |
− | | List of TTransportBinding objects
| + | |
| |- | | |- |
− | | <code>FProtocols:TNetworkList;</code> | + | |} |
− | | List of TTransportProtocol objects | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | | <code>FFilters:TNetworkList;</code> | + | | [[TTransportAdapter|<code>TTransportAdapter = class(TListObject)</code>]] |
− | | List of TTransportFilter objects
| + | |
| |- | | |- |
− | | <code>FConfigs:TNetworkList;</code> | + | |} |
− | | List of TTransportConfig objects | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | |colspan="2"| | + | | [[TTransportBinding|<code>TTransportBinding = class(TListObject)</code>]] |
| |- | | |- |
− | | <code>FStatistics:TTransportStatistics;</code> | + | |} |
− | | | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | |colspan="2"| | + | | [[TTransportProtocol|<code>TTransportProtocol = class(TListObject)</code>]] |
| |- | | |- |
− | | <code>function GetName:String;</code> | + | |} |
− | | | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | |colspan="2"| | + | | [[TTransportFilter|<code>TTransportFilter = class(TListObject)</code>]] |
| |- | | |- |
− | | <code>function AcquireLock:Boolean;</code> | + | |} |
− | | | + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | | <code>function ReleaseLock:Boolean;</code> | + | | [[TTransportConfig|<code>TTransportConfig = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
− | |colspan="2"| | + | |} |
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
| |- | | |- |
− | | <code>function SendPacket(ASocket:TTransportSocket; ASource,ADest:Pointer; APacket:PPacketFragment; ASize,AFlags:Integer):Integer; virtual;</code> | + | | [[TNetworkTransport|<code>TNetworkTransport = class(TListObject)</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>
| + | |
− | | 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> | + | | [[TRouteEntry|<code>TRouteEntry = class(TListObject)</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>
| + | |
− | | 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> | + | | [[TProtoEntry|<code>TProtoEntry = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
| <br /> | | <br /> |
| | | |