Difference between revisions of "TNTPClient"

From Ultibo.org
Jump to: navigation, search
Line 47: Line 47:
 
| <code>FRetryTimeout:LongWord;</code>
 
| <code>FRetryTimeout:LongWord;</code>
 
| How long to wait between poll retries (in milliseconds)
 
| How long to wait between poll retries (in milliseconds)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FUseClockOffset:Boolean;</code>
 +
| Use the calculated NTP clock offset to update the local time
 +
|-
 +
| <code>FClockTolerance:LongWord;</code>
 +
| Milliseconds difference between local and remote to trigger a clock set
 
|-
 
|-
 
|colspan="2"|&nbsp;
 
|colspan="2"|&nbsp;
Line 83: Line 91:
 
|-
 
|-
 
| <code>procedure SetRetryTimeout(ARetryTimeout:LongWord);</code>
 
| <code>procedure SetRetryTimeout(ARetryTimeout:LongWord);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>procedure SetUseClockOffset(AUseClockOffset:Boolean);</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetClockTolerance(AClockTolerance:LongWord);</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 112: Line 128:
 
|-
 
|-
 
| <code>property RetryTimeout:LongWord read FRetryTimeout write SetRetryTimeout;</code>
 
| <code>property RetryTimeout:LongWord read FRetryTimeout write SetRetryTimeout;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property UseClockOffset:Boolean read FUseClockOffset write SetUseClockOffset;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property ClockTolerance:LongWord read FClockTolerance write SetClockTolerance;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 247: Line 271:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">procedure TNTPClient.SetRetryTimeout(ARetryTimeout:LongWord);</pre>
 
<pre style="border: 0; padding-bottom:0px;">procedure TNTPClient.SetRetryTimeout(ARetryTimeout:LongWord);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">procedure TNTPClient.SetUseClockOffset(AUseClockOffset:Boolean);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">procedure TNTPClient.SetClockTolerance(AClockTolerance:LongWord);</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">

Revision as of 00:53, 24 August 2022

Return to Unit Services


Description


To be documented

Class definitions



TNTPClient = class(TWinsock2UDPClient)

public
constructor Create;  
destructor Destroy; override;  
private
FLock:TMutexHandle;  
 
FPollInterval:LongWord; How often to poll the server (in seconds)
FPollTimeout:LongWord; How long before receive or send timeout occurs (in milliseconds)
FPollRetries:LongWord; How many times to retry a poll
 
FRetryTimeout:LongWord; How long to wait between poll retries (in milliseconds)
 
FUseClockOffset:Boolean; Use the calculated NTP clock offset to update the local time
FClockTolerance:LongWord; Milliseconds difference between local and remote to trigger a clock set
 
FInitialClockGet:Boolean; Has the time been obtained at least once
FInitialClockCount:LongWord; How many times have we tried to obtain the initial clock
 
FTimerHandle:TTimerHandle; Handle for the NTP update timer
 
function AcquireLock:Boolean;  
function ReleaseLock:Boolean;  
 
procedure SetPollInterval(APollInterval:LongWord);  
procedure SetPollTimeout(APollTimeout:LongWord);  
procedure SetPollRetries(APollRetries:LongWord);  
 
procedure SetRetryTimeout(ARetryTimeout:LongWord);  
 
procedure SetUseClockOffset(AUseClockOffset:Boolean);  
procedure SetClockTolerance(AClockTolerance:LongWord);  
 
procedure SetInitialClockGet(AInitialClockGet:Boolean);  
procedure SetInitialClockCount(AInitialClockCount:LongWord);  
 
procedure SetTimerHandle(ATimerHandle:TTimerHandle);  
public
property PollInterval:LongWord read FPollInterval write SetPollInterval;  
property PollTimeout:LongWord read FPollTimeout write SetPollTimeout;  
property PollRetries:LongWord read FPollRetries write SetPollRetries;  
 
property RetryTimeout:LongWord read FRetryTimeout write SetRetryTimeout;  
 
property UseClockOffset:Boolean read FUseClockOffset write SetUseClockOffset;  
property ClockTolerance:LongWord read FClockTolerance write SetClockTolerance;  
 
property InitialClockGet:Boolean read FInitialClockGet write SetInitialClockGet;  
property InitialClockCount:LongWord read FInitialClockCount write SetInitialClockCount;  
 
property TimerHandle:TTimerHandle read FTimerHandle write SetTimerHandle;  
 
function GetTime:Int64;  
 
procedure IncrementInitialClockCount;  
 
function FormatTime(Time:Int64):String;  
function FormatOffset(Offset:Int64):String;  
 
function CalculateClockOffset(T1,T2,T3,T4:Int64):Int64;  
function CalculateRoundtripDelay(T1,T2,T3,T4:Int64):Int64;  


Function declarations



constructor TNTPClient.Create;
Description: To be documented
Note None documented


destructor TNTPClient.Destroy;
Description: To be documented
Note None documented


function TNTPClient.AcquireLock:Boolean;
Description: To be documented
Note None documented


function TNTPClient.ReleaseLock:Boolean;
Description: To be documented
Note None documented


procedure TNTPClient.SetPollInterval(APollInterval:LongWord);
Description: To be documented
Note None documented


procedure TNTPClient.SetPollTimeout(APollTimeout:LongWord);
Description: To be documented
Note None documented


procedure TNTPClient.SetPollRetries(APollRetries:LongWord);
Description: To be documented
Note None documented


procedure TNTPClient.SetRetryTimeout(ARetryTimeout:LongWord);
Description: To be documented
Note None documented


procedure TNTPClient.SetUseClockOffset(AUseClockOffset:Boolean);
Description: To be documented
Note None documented


procedure TNTPClient.SetClockTolerance(AClockTolerance:LongWord);
Description: To be documented
Note None documented


procedure TNTPClient.SetInitialClockGet(AInitialClockGet:Boolean);
Description: To be documented
Note None documented


procedure TNTPClient.SetInitialClockCount(AInitialClockCount:LongWord);
Description: To be documented
Note None documented


procedure TNTPClient.SetTimerHandle(ATimerHandle:TTimerHandle);
Description: To be documented
Note None documented


function TNTPClient.GetTime:Int64;
Description: To be documented
Note None documented


procedure TNTPClient.IncrementInitialClockCount;
Description: To be documented
Note None documented


function TNTPClient.FormatTime(Time:Int64):String;
Description: To be documented
Note None documented


function TNTPClient.FormatOffset(Offset:Int64):String;
Description: To be documented
Note None documented


function TNTPClient.CalculateClockOffset(T1,T2,T3,T4:Int64):Int64;
Description: To be documented
Note T1 = Originate Timestamp (time request sent by client) T2 = Receive Timestamp (time request received by server) T3 = Transmit Timestamp (time reply sent by server) T4 = Destination Timestamp (time reply received by client)


function TNTPClient.CalculateRoundtripDelay(T1,T2,T3,T4:Int64):Int64;
Description: To be documented
Note T1 = Originate Timestamp (time request sent by client) T2 = Receive Timestamp (time request received by server) T3 = Transmit Timestamp (time reply sent by server) T4 = Destination Timestamp (time reply received by client)


Return to Unit Reference