Difference between revisions of "Unit Protocol"
Line 384: | Line 384: | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetProtocolByName(const AName:String; ALock:Boolean; AState:LongWord):TNetworkProtocol;</code> | ||
+ | | | ||
|- | |- | ||
| <code>function GetProtocolByType(AProtocol,ASocketType:Word; ALock:Boolean; AState:LongWord):TNetworkProtocol;</code> | | <code>function GetProtocolByType(AProtocol,ASocketType:Word; ALock:Boolean; AState:LongWord):TNetworkProtocol;</code> | ||
Line 601: | Line 604: | ||
|- | |- | ||
| <code>FLock:TSynchronizerHandle;</code> | | <code>FLock:TSynchronizerHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FLocalLock:TMutexHandle;</code> | ||
| | | | ||
|- | |- | ||
Line 643: | Line 649: | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>function | + | | <code>function GetName:String;</code> |
| | | | ||
|- | |- | ||
− | | | + | |colspan="2"| |
− | | | + | |
|- | |- | ||
− | | <code>function | + | | <code>function AcquireLock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function ReleaseLock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
Line 672: | Line 670: | ||
|- | |- | ||
| <code>function FindPort(APort:Word; AWrite,ALock:Boolean):TProtocolPort; virtual;</code> | | <code>function FindPort(APort:Word; AWrite,ALock:Boolean):TProtocolPort; virtual;</code> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| | | | ||
|- | |- | ||
Line 795: | Line 779: | ||
|- | |- | ||
| <code>function GetStatistics:TProtocolStatistics; virtual;</code> | | <code>function GetStatistics:TProtocolStatistics; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetTransportByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TProtocolTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetTransportByFamily(AFamily:Word; ALock:Boolean; AState:LongWord):TProtocolTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetTransportByTransport(ATransport:TNetworkTransport; ALock:Boolean; AState:LongWord):TProtocolTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetTransportByNext(APrevious:TProtocolTransport; ALock,AUnlock:Boolean; AState:LongWord):TProtocolTransport;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddTransport(ATransport:TNetworkTransport):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function RemoveTransport(ATransport:TNetworkTransport):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetSocketByNext(APrevious:TProtocolSocket; ALock,AUnlock:Boolean; AState:LongWord):TProtocolSocket;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CheckSocket(ASocket:TProtocolSocket; ALock:Boolean; AState:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindSocket(AFamily,AStruct,AProtocol:Word; ALocalAddress,ARemoteAddress:Pointer; ALocalPort,ARemotePort:Word; ABroadcast,AListen,ALock:Boolean; AState:LongWord):TProtocolSocket; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure FlushSockets(All:Boolean); virtual;</code> | ||
| | | | ||
|- | |- | ||
Line 1,304: | Line 1,324: | ||
| <code>FTransports:TNetworkList;</code> | | <code>FTransports:TNetworkList;</code> | ||
| List of TFilterTransport objects | | List of TFilterTransport objects | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Manager:TProtocolManager read FManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Protocol:Word read FProtocol;</code> | ||
+ | | | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>function | + | | <code>function ReaderLock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function ReaderUnlock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function WriterLock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function WriterUnlock:Boolean;</code> |
| | | | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>function | + | | <code>function GetTransportByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TFilterTransport;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function GetTransportByFamily(AFamily:Word; ALock:Boolean; AState:LongWord):TFilterTransport;</code> |
| | | | ||
|- | |- | ||
− | + | | <code>function GetTransportByTransport(ATransport:TNetworkTransport; ALock:Boolean; AState:LongWord):TFilterTransport;</code> | |
− | + | ||
− | + | ||
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>function GetTransportByNext(APrevious:TFilterTransport; ALock,AUnlock:Boolean; AState:LongWord):TFilterTransport;</code> |
| | | | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>function | + | | <code>function AddTransport(ATransport:TNetworkTransport):Boolean; virtual;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function RemoveTransport(ATransport:TNetworkTransport):Boolean; virtual;</code> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
| | | | ||
|- | |- | ||
Line 1,467: | Line 1,487: | ||
| List of TConfigTransport objects | | List of TConfigTransport objects | ||
|- | |- | ||
− | |colspan="2"| | + | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> |
|- | |- | ||
− | | <code> | + | | <code>property Manager:TProtocolManager read FManager;</code> |
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>property ConfigType:Word read FConfigType;</code> |
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>property InitDelay:LongWord read FInitDelay;</code> |
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>property RetryCount:LongWord read FRetryCount;</code> |
+ | | | ||
+ | |- | ||
+ | | <code>property RetryTimeout:LongWord read FRetryTimeout;</code> | ||
| | | | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>function | + | | <code>function ReaderLock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function ReaderUnlock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | + | | <code>function WriterLock:Boolean;</code> | |
+ | | | ||
|- | |- | ||
− | | <code> | + | | <code>function WriterUnlock:Boolean;</code> |
| | | | ||
|- | |- | ||
− | | <code> | + | |colspan="2"| |
+ | |- | ||
+ | | <code>function GetTransportByHandle(AHandle:THandle; ALock:Boolean; AState:LongWord):TConfigTransport;</code> | ||
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>function GetTransportByFamily(AFamily:Word; ALock:Boolean; AState:LongWord):TConfigTransport;</code> |
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>function GetTransportByTransport(ATransport:TNetworkTransport; ALock:Boolean; AState:LongWord):TConfigTransport;</code> |
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>function GetTransportByNext(APrevious:TConfigTransport; ALock,AUnlock:Boolean; AState:LongWord):TConfigTransport;</code> |
| | | | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>function | + | | <code>function AddTransport(ATransport:TNetworkTransport):Boolean; virtual;</code> |
| | | | ||
|- | |- | ||
− | | <code>function | + | | <code>function RemoveTransport(ATransport:TNetworkTransport):Boolean; virtual;</code> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
| | | | ||
|- | |- |
Revision as of 05:56, 28 July 2017
Return to Unit Reference
Contents
[hide]Description
Ultibo Network Protocol interface unit
To be documented
Constants
PROTOCOL_*
SOCKET_TIMER_KEY_*
SOCKET_TIMER_FLAG_*
ICMP_*
ICMP_UNREACH_*
IGMP_*
Type definitions
Protocol statistics
Socket timer item
Protocol callback
TProtocolCallback = function(AProtocol:TNetworkProtocol):Boolean of object;
|
Filter callback
TFilterCallback = function(AFilter:TNetworkFilter):Boolean of object;
|
Configuration callback
TConfigCallback = function(AConfig:TNetworkConfig):Boolean of object;
|
Class definitions
Protocol manager
TProtocolManager = class(TObject)
Protocol transport
TProtocolTransport = class(TListObject)
Network protocol
TNetworkProtocol = class(TListObject)
Socket timer
TSocketTimer = class(TObject)
Socket thread
TSocketThread = class(TThread)
Protocol port
TProtocolPort = class(TListObject)
Protocol socket
TProtocolSocket = class(TTransportSocket)
Protocol state
TProtocolState = class(TObject)
Protocol options
TProtocolOptions = class(TObject)
Filter transport
TFilterTransport = class(TListObject)
Network filter
TNetworkFilter = class(TListObject)
Configuration transport
TConfigTransport = class(TListObject)
Network configuration
TNetworkConfig = class(TListObject)
Network client
TNetworkClient = class(TListObject)
Public variables
Protocol specific variables
ProtocolManager:TProtocolManager;
|
Function declarations
Initialization functions
Protocol helper functions
Return to Unit Reference