Difference between revisions of "Unit Network"
Line 1,426: | Line 1,426: | ||
---- | ---- | ||
− | '' | + | |
+ | '''Adapter manager''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterManager = 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);</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TSynchronizerHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FSettings:TNetworkSettings;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FAdapters:TNetworkList;</code> | ||
+ | | List of TNetworkAdapter objects | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ReaderLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReaderUnlock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function WriterLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function WriterUnlock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Settings:TNetworkSettings read FSettings;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddAdapter(AAdapter:TNetworkAdapter):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveAdapter(AAdapter:TNetworkAdapter):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetAdapterByType(AAdapterType:Word; ALock:Boolean; AState:LongWord):TNetworkAdapter;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetAdapterByDevice(ADevice:PNetworkDevice; ALock:Boolean; AState:LongWord):TNetworkAdapter;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetAdapterByAdapter(AAdapter:TNetworkAdapter; ALock:Boolean; AState:LongWord):TNetworkAdapter;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetAdapterByNext(APrevious:TNetworkAdapter; ALock,AUnlock:Boolean; AState:LongWord):TNetworkAdapter;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function StartAdapters:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function StopAdapters:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ProcessStatus:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ProcessAdapters:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function EnumerateAdapters(ACallback:TAdapterCallback):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Adapter transport''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterTransport = class(TListObject)</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: Upstream | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>constructor Create;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TSynchronizerHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>FrameType:Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PacketType:Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PacketName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PacketHandler:TAdapterPacketHandler;</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> | ||
+ | |||
+ | '''Adapter binding''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterBinding = class(TListObject)</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: Upstream | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>constructor Create(ATransport:TAdapterTransport);</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>FrameType:Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PacketType:Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Transport:TAdapterTransport;</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> | ||
+ | |||
+ | '''Adapter monitor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterMonitor = class(TListObject)</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: Upstream | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>constructor Create;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TSynchronizerHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>MonitorHandler:TAdapterMonitorHandler;</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> | ||
+ | |||
+ | '''Adapter authenticator''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterAuthenticator = class(TListObject)</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: Upstream | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>constructor Create;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TSynchronizerHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>AuthType:Word;</code> | ||
+ | | EAP/RSN | ||
+ | |- | ||
+ | | <code>AuthenticatorHandler:TAdapterAuthenticatorHandler;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ReaderLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReaderUnlock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function WriterLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function WriterUnlock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Network list''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TNetworkList = class(TLinkedObjList)</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> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>procedure ClearList;</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> | ||
+ | |||
+ | '''Network adapter''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TNetworkAdapter = 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:TAdapterManager; ADevice:PNetworkDevice; const AName:String);</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TSynchronizerHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>FManager:TAdapterManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FDevice:PNetworkDevice;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FState:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FStatus:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FMediaType:Word;</code> | ||
+ | | Physical Media type (Ethernet/Tokenring etc) | ||
+ | |- | ||
+ | | <code>FAdapterType:Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FLastError:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FThread:TAdapterThread;</code> | ||
+ | | Thread for adapter receiving | ||
+ | |- | ||
+ | | <code>FBindings:TNetworkList;</code> | ||
+ | | List of TAdapterBinding objects | ||
+ | |- | ||
+ | | <code>FTransports:TNetworkList;</code> | ||
+ | | List of TAdapterTransport objects | ||
+ | |- | ||
+ | | <code>FMonitors:TNetworkList;</code> | ||
+ | | List of TAdapterMonitor objects | ||
+ | |- | ||
+ | | <code>FAuthenticators:TNetworkList;</code> | ||
+ | | List of TAdapterAuthenticator objects | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FStatistics:TAdapterStatistics;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetThreadID:TThreadID;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetTransportByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TAdapterTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetTransportByType(APacketType,AFrameType:Word; ALock:Boolean; AState:LongWord):TAdapterTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetTransportByTransport(ATransport:TAdapterTransport; ALock:Boolean; AState:LongWord):TAdapterTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetTransportByNext(APrevious:TAdapterTransport; ALock,AUnlock:Boolean; AState:LongWord):TAdapterTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetBindingByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TAdapterBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBindingByType(ATransport:TAdapterTransport; APacketType,AFrameType:Word; ALock:Boolean; AState:LongWord):TAdapterBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBindingByTransport(ATransport:TAdapterTransport; ALock:Boolean; AState:LongWord):TAdapterBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBindingByBinding(ABinding:TAdapterBinding; ALock:Boolean; AState:LongWord):TAdapterBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBindingByNext(APrevious:TAdapterBinding; ALock,AUnlock:Boolean; AState:LongWord):TAdapterBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetMonitorByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TAdapterMonitor;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetMonitorByMonitor(AMonitor:TAdapterMonitor; ALock:Boolean; AState:LongWord):TAdapterMonitor;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetMonitorByNext(APrevious:TAdapterMonitor; ALock,AUnlock:Boolean; AState:LongWord):TAdapterMonitor;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetAuthenticatorByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TAdapterAuthenticator;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetAuthenticatorByType(AAuthType:Word; ALock:Boolean; AState:LongWord):TAdapterAuthenticator;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetAuthenticatorByAuthenticator(AAuthenticator:TAdapterAuthenticator; ALock:Boolean; AState:LongWord):TAdapterAuthenticator;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetAuthenticatorByNext(APrevious:TAdapterAuthenticator; ALock,AUnlock:Boolean; AState:LongWord):TAdapterAuthenticator;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddBinding(ATransport:TAdapterTransport; APacketType,AFrameType:Word):THandle; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveBinding(AHandle:THandle; APacketType:Word):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Manager:TAdapterManager read FManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Device:PNetworkDevice read FDevice;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Name:String read FName;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property State:Integer read FState;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Status:Integer read FStatus;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property MediaType:Word read FMediaType;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property AdapterType:Word read FAdapterType;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property LastError:Integer read FLastError;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property ThreadID:TThreadID read GetThreadID;</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 AddTransport(APacketType,AFrameType:Word; const APacketName:String; APacketHandler:TAdapterPacketHandler):THandle; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveTransport(AHandle:THandle; APacketType:Word):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddMonitor(AMonitorHandler:TAdapterMonitorHandler):THandle; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveMonitor(AHandle:THandle):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddAuthenticator(AAuthType:Word; AAuthenticatorHandler:TAdapterAuthenticatorHandler):THandle; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveAuthenticator(AHandle:THandle; AAuthType:Word):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetMTU(AHandle:THandle):Word; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function SendPacket(AHandle:THandle; ADest:Pointer; APacket:PPacketFragment; ASize:Integer):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ResetInterface(AHandle:THandle):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function TerminateDriver(AHandle:THandle):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetReceiveMode(AHandle:THandle):Word; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function SetReceiveMode(AHandle:THandle; AMode:Word):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetAdapterParams(AHandle:THandle):TAdapterParams; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetNetworkParams(AHandle:THandle):TNetworkParams; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetStatistics(AHandle:THandle):TAdapterStatistics; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetDefaultAddress(AHandle:THandle):THardwareAddress; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetHardwareAddress(AHandle:THandle):THardwareAddress; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function SetHardwareAddress(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBroadcastAddress(AHandle:THandle):THardwareAddress; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetMulticastAddresses(AHandle:THandle):TMulticastAddresses; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| ; | ||
+ | |- | ||
+ | | <code>function AddMulticastAddress(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveMulticastAddress(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function StartAdapter:Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function StopAdapter:Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ProcessStatus:Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ProcessAdapter:Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function CompareAddress(const AAddress1,AAddress2:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CompareDefault(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CompareHardware(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CompareBroadcast(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CompareMulticast(AHandle:THandle; const AAddress:THardwareAddress):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Adapter thread''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterThread = class(TThread)</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>constructor Create(AAdapter:TNetworkAdapter);</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>FAdapter:TNetworkAdapter;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>procedure Execute; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function SendHandle(AHandle:THandle):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReceiveHandle:THandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Adapter buffer''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TAdapterBuffer = 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: Ring buffer for Packets. | ||
+ | |- | ||
+ | |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>FSize:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FCount:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FNextRead:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FNextWrite:Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FList:TList;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FMemory:TMemoryStream;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>procedure SetSize(ASize:Integer);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Size:Integer read FSize write SetSize;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ReadNext:Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function WriteNext:Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Wired adapter''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TWiredAdapter = class(TNetworkAdapter)</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:TAdapterManager; ADevice:PNetworkDevice; const AName:String);</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FDefaultAddress:THardwareAddress;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FHardwareAddress:THardwareAddress;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FBroadcastAddress:THardwareAddress;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FMulticastAddresses:TMulticastAddresses;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function AddTransport(APacketType,AFrameType:Word; const APacketName:String; APacketHandler:TAdapterPacketHandler):THandle; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveTransport(AHandle:THandle; APacketType:Word):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetMTU(AHandle:THandle):Word; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function SendPacket(AHandle:THandle; ADest:Pointer; APacket:PPacketFragment; ASize:Integer):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetDefaultAddress(AHandle:THandle):THardwareAddress; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetHardwareAddress(AHandle:THandle):THardwareAddress; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function SetHardwareAddress(AHandle:THandle; const AAddress:THardwareAddress):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBroadcastAddress(AHandle:THandle):THardwareAddress; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetMulticastAddresses(AHandle:THandle):TMulticastAddresses; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddMulticastAddress(AHandle:THandle; const AAddress:THardwareAddress):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveMulticastAddress(AHandle:THandle; const AAddress:THardwareAddress):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function StartAdapter:Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function StopAdapter:Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ProcessAdapter:Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Network setting''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TNetworkSetting = 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"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FName:String;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>FValue:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FHash:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>procedure SetName(const AName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Name:String read FName write SetName;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Value:String read FValue write FValue;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Hash:LongWord read FHash;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Network settings''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TNetworkSettings = 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> | ||
+ | | 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>FHostName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FDomainName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FList:TLinkedObjList;</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 AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetHostName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetHostName(const AHostName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetDomainName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetDomainName(const ADomainName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ExtractName(const AValue,AToken:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ExtractValue(const AValue,AToken:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ExtractPrefix(const AValue:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function SplitName(const AName:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function SplitPrefix(const AName:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function MergePrefix(const APrefix,AName:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function TranslateString(const AValue,ADefault:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function TranslateInteger(const AValue:String; ADefault:Integer):Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function TranslateBoolean(const AValue:String; ADefault:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetFromList(const AName:String):TNetworkSetting;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function FindFromList(const AName:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindFromEnvironment(const AName:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property HostName:String read GetHostName write SetHostName;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property DomainName:String read GetDomainName write SetDomainName;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetString(const AName:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetStringDefault(const AName,ADefault:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetInteger(const AName:String):Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetIntegerDefault(const AName:String; ADefault:Integer):Integer;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetBoolean(const AName:String):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetBooleanDefault(const AName:String; ADefault:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddString(const AName,AValue:String):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function AddInteger(const AName:String; AValue:Integer):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function AddBoolean(const AName:String; AValue:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function Remove(const AName:String):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function LoadFromFile(const AFileName:String; AFlat:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function LoadFromStream(AStream:TStream; AFlat:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function LoadFromStrings(AStrings:TStrings; AFlat:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function SaveToFile(const AFileName:String; AFlat:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function SaveToStream(AStream:TStream; AFlat:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function SaveToStrings(AStrings:TStrings; AFlat:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function LoadFromEnvironment:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Service set''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>TServiceSet = 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>function GetName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetName(const AName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetServiceSetType(AServiceSetType:LongWord);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetServiceSetTime(const AServiceSetTime:Int64);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetAddress(const AAddress:THardwareAddress);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetAdapter(AAdapter:TNetworkAdapter);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>FName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FServiceSetType:LongWord;</code> | ||
+ | | BSS/ESS/IBSS | ||
+ | |- | ||
+ | | <code>FServiceSetTime:Int64;</code> | ||
+ | | Flush time | ||
+ | |- | ||
+ | | <code>FAddress:THardwareAddress;</code> | ||
+ | | Address of service set | ||
+ | |- | ||
+ | | <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 Name:String read GetName write SetName;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property ServiceSetType:LongWord read FServiceSetType write SetServiceSetType;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property ServiceSetTime:Int64 read FServiceSetTime write SetServiceSetTime;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Address:THardwareAddress read FAddress write SetAddress;</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> | ||
+ | <br /> | ||
=== Public variables === | === Public variables === |
Revision as of 02:30, 16 March 2017
Return to Unit Reference
Contents
[hide]Description
Ultibo Network interface unit
To be documented
Constants
NETWORK_*
NETWORK_TYPE_*
NETWORK_STATE_*
NETWORK_STATUS_*
NETWORK_FLAG_*
NETWORK_CONTROL_*
NETWORK_LOCK_*
NETWORK_BUFFER_*
NETWORK_EVENT_*
NETWORK_EVENT_SIGNATURE*
NETWORK_EVENT_STATE_*
NETWORK_EVENT_FLAG_*
ADAPTER_TYPE_*
ADAPTER_THREAD_*
ADAPTER_STATE_*
ADAPTER_STATUS_*
CONFIG_TYPE_*
AUTH_TYPE_*
FRAME_TYPE_*
CONFIG_*
AUTH_COMMAND_*
MAX_MULTICAST_*
HARDWARE_ADDRESS_*
MEDIA_TYPE_*
PACKET_TYPE_*
*_ETHERNET_PACKET
LLC_HEADER_*
SNAP_HEADER_*
SERVICE_SET_*
NETWORK_LOG_*
ETHERNET_*
ETHERNET_*_SIZE*
Type definitions
Hardware address
PHardwareAddress = ^THardwareAddress;
THardwareAddress = array[0..HARDWARE_ADDRESS_SIZE - 1] of Byte;
Hardware addresses
PHardwareAddresses = ^THardwareAddresses;
THardwareAddresses = array[0..0] of THardwareAddress;
Multicast addresses
PMulticastAddresses = ^TMulticastAddresses;
TMulticastAddresses = array[0..MAX_MULTICAST_ADDRESS - 1] of THardwareAddress;
Network packet
Network Buffer
Network entry
Network queue
Network enumeration callback
TNetworkEnumerate = function(Network:PNetworkDevice; Data:Pointer):LongWord;
|
Network notification callback
TNetworkNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
|
Network device open
TNetworkDeviceOpen = function(Network:PNetworkDevice):LongWord;
|
Network device close
TNetworkDeviceClose = function(Network:PNetworkDevice):LongWord;
|
Network device read
TNetworkDeviceRead = function(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;
|
Network device write
TNetworkDeviceWrite = function(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;
|
Network device control
TNetworkDeviceControl = function(Network:PNetworkDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;
|
Network buffer allocate
TNetworkBufferAllocate = function(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
|
Network buffer release
TNetworkBufferRelease = function(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
|
Network buffer receive
TNetworkBufferReceive = function(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
|
Network buffer transmit
TNetworkBufferTransmit = function(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
|
Network device types
Network event callback
TNetworkEventCallback = function(Data:Pointer; Event:LongWord):LongWord;
|
Network Event
Packet fragment
Ethernet 802.3 network
Ethernet SNAP network
Token ring network
Token ring header
Adapter params
Network params
Adapter statistics
Ethernet address
PEthernetAddress = ^TEthernetAddress;
TEthernetAddress = array[0..ETHERNET_ADDRESS_SIZE - 1] of Byte;
Ethernet header
Adapter callback
TAdapterCallback = function(AAdapter:TNetworkAdapter):Boolean of object;
|
Adapter packet handler
TAdapterPacketHandler = function(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean of object;
|
Adapter monitor handler
TAdapterMonitorHandler = function(AHandle:THandle; APacket:Pointer; ASize:Integer; AStatus:Pointer):Boolean of object;
|
Adapter authenticator handler
TAdapterAuthenticatorHandler = function(AHandle:THandle; ACommand:Word):Boolean of object;
|
Class definitions
Adapter manager
TAdapterManager = class(TObject)
Adapter transport
TAdapterTransport = class(TListObject)
Adapter binding
TAdapterBinding = class(TListObject)
Adapter monitor
TAdapterMonitor = class(TListObject)
Adapter authenticator
TAdapterAuthenticator = class(TListObject)
Network list
TNetworkList = class(TLinkedObjList)
Network adapter
TNetworkAdapter = class(TListObject)
Adapter thread
TAdapterThread = class(TThread)
Adapter buffer
TAdapterBuffer = class(TObject)
Wired adapter
TWiredAdapter = class(TNetworkAdapter)
Network setting
TNetworkSetting = class(TListObject)
Network settings
TNetworkSettings = class(TObject)
Service set
TServiceSet = class(TListObject)
Public variables
Network logging
NETWORK_DEFAULT_LOG_LEVEL:LongWord = NETWORK_LOG_LEVEL_DEBUG;
|
Minimum level for Network messages. Only messages with level greater than or equal to this will be printed. |
NETWORK_LOG_ENABLED:Boolean;
|
Function declarations
Initialization functions
Network functions
function NetworkDeviceClose(Network:PNetworkDevice):LongWord;
function NetworkDeviceRead(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;
function NetworkDeviceWrite(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;
function NetworkDeviceControl(Network:PNetworkDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;
function NetworkBufferAllocate(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
function NetworkBufferRelease(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
function NetworkBufferReceive(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
function NetworkBufferTransmit(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
function NetworkDeviceSetState(Network:PNetworkDevice; State:LongWord):LongWord;
function NetworkDeviceSetStatus(Network:PNetworkDevice; Status:LongWord):LongWord;
function NetworkDeviceCreateEx(Size:LongWord):PNetworkDevice;
function NetworkDeviceDestroy(Network:PNetworkDevice):LongWord;
function NetworkDeviceRegister(Network:PNetworkDevice):LongWord;
function NetworkDeviceDeregister(Network:PNetworkDevice):LongWord;
function NetworkDeviceFind(NetworkId:LongWord):PNetworkDevice;
function NetworkDeviceFindByName(const Name:String):PNetworkDevice; inline;
function NetworkDeviceFindByDescription(const Description:String):PNetworkDevice; inline;
function NetworkDeviceEnumerate(Callback:TNetworkEnumerate; Data:Pointer):LongWord;
function NetworkDeviceNotification(Network:PNetworkDevice; Callback:TNetworkNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
function NetworkEventAllocate(Callback:TNetworkEventCallback; Data:Pointer; Event:LongWord):PNetworkEvent;
function NetworkEventRelease(Event:PNetworkEvent):LongWord;
function NetworkEventRegister(Callback:TNetworkEventCallback; Data:Pointer; Event:LongWord):THandle;
function NetworkEventDeregister(Handle:THandle):LongWord;
RTL network functions
Network helper functions
function NetworkDeviceCheck(Network:PNetworkDevice):PNetworkDevice;
function NetworkDeviceTypeToString(NetworkType:LongWord):String;
function NetworkDeviceStateToString(NetworkState:LongWord):String;
function NetworkDeviceStatusToString(NetworkStatus:LongWord):String;
function NetworkDeviceStateToNotification(State:LongWord):LongWord;
function NetworkDeviceStatusToNotification(Status:LongWord):LongWord;
function NetworkEventCheck(Event:PNetworkEvent):PNetworkEvent;
procedure NetworkLog(Level:LongWord; Network:PNetworkDevice; const AText:String);
procedure NetworkLogInfo(Network:PNetworkDevice; const AText:String);
procedure NetworkLogError(Network:PNetworkDevice; const AText:String);
procedure NetworkLogDebug(Network:PNetworkDevice; const AText:String);
function HardwareAddressToString(const AAddress:THardwareAddress):String;
function StringToHardwareAddress(const AAddress:String):THardwareAddress;
function CompareHardwareAddress(const AAddress1,AAddress2:THardwareAddress):Boolean;
function CompareHardwareDefault(const AAddress:THardwareAddress):Boolean;
function CompareHardwareBroadcast(const AAddress:THardwareAddress):Boolean;
function CompareHardwareMulticast(const AAddress:THardwareAddress):Boolean;
Return to Unit Reference