TNTPClient
From Ultibo.org
								
												
				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 | 
 FInitialClockRetry:Boolean;
 | 
Should the client setup a worker thread to retry until the initial clock has been set (Default: True) | 
 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 InitialClockRetry:Boolean read FInitialClockRetry write SetInitialClockRetry;
 | 
|
 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.SetInitialClockRetry(AInitialClockRetry:Boolean);
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