TSocketTimer
From Ultibo.org
Return to Unit Protocol
Description
To be documented
Class definitions
TSocketTimer = class(TObject)
constructor Create(AProtocol:TNetworkProtocol);
|
|
destructor Destroy; override;
|
|
protected
| |
FProtocol:TNetworkProtocol;
|
|
FLock:TMutexHandle;
|
|
FInterval:LongWord;
|
|
FCheckTimer:TTimerHandle;
|
|
FProcessSemaphore:TSemaphoreHandle;
|
|
FCount:LongWord;
|
|
FMaxCount:LongWord;
|
|
FFirst:PSocketTimerItem;
|
|
FLast:PSocketTimerItem;
|
|
function AcquireLock:Boolean;
|
|
function ReleaseLock:Boolean;
|
|
function Dequeue(AMax:Integer):TProtocolSocket;
|
|
function FirstKey:Integer;
|
|
function InsertKey(ASocket:TProtocolSocket; AItem:PSocketTimerItem; AKey:Integer):Boolean;
|
|
function DeleteKey(ASocket:TProtocolSocket; AItem:PSocketTimerItem):Boolean;
|
|
function DecrementKey:Integer;
|
|
public
| |
property Count:LongWord read FCount;
|
|
property MaxCount:LongWord read FMaxCount;
|
|
function StartTimer(AInterval:LongWord):Boolean; virtual;
|
|
function StopTimer:Boolean; virtual;
|
|
function CheckTimer:Boolean; virtual;
|
|
function ProcessTimer:Boolean; virtual;
|
|
function ScheduleSocket(ASocket:TProtocolSocket; ATimeout:LongWord):Boolean; virtual;
|
|
function UnscheduleSocket(ASocket:TProtocolSocket):Boolean; virtual;
|
|
function ScheduleSocketItem(ASocket:TProtocolSocket; AItem:PSocketTimerItem; ATimeout:LongWord):Boolean; virtual;
|
|
function UnscheduleSocketItem(ASocket:TProtocolSocket; AItem:PSocketTimerItem):Boolean; virtual;
|
Function declarations
constructor TSocketTimer.Create(AProtocol:TNetworkProtocol);
Description: To be documented
Note | None documented |
---|
destructor TSocketTimer.Destroy;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.AcquireLock:Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.ReleaseLock:Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.Dequeue(AMax:Integer):TProtocolSocket;
Description: Get and remove the first socket from the timer list if the key is less than or equal to Max
Max | The maximum value of the key for the page to be dequeued |
---|---|
Return | Dequeued Socket or nil on failure |
function TSocketTimer.FirstKey:Integer;
Description: Get the first Key value from the timer list
Return | First Key value from timer list or SOCKET_TIMER_KEY_NONE on failure |
---|
function TSocketTimer.InsertKey(ASocket:TProtocolSocket; AItem:PSocketTimerItem; AKey:Integer):Boolean;
Description: Insert the supplied socket in the timer list in delta ascending order based on Key
Socket | The socket to be inserted |
---|---|
Item | Pointer to the socket timer item to insert (Pass nil to allocate dynamically) |
Key | The key to order the insertion on |
Return | True if completed or False on failure |
function TSocketTimer.DeleteKey(ASocket:TProtocolSocket; AItem:PSocketTimerItem):Boolean;
Description: Delete the supplied socket from the timer list
Socket | The socket to be deleted |
---|---|
Item | Pointer to the socket timer item to be deleted (Pass nil if item was dynamically allocated) |
Return | True if completed or False on failure |
function TSocketTimer.DecrementKey:Integer;
Description: Decrement the first Key value in the Timer list
Return | First Key value in timer list after decrement or SOCKET_TIMER_KEY_NONE on failure |
---|
function TSocketTimer.StartTimer(AInterval:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.StopTimer:Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.CheckTimer:Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.ProcessTimer:Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.ScheduleSocket(ASocket:TProtocolSocket; ATimeout:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.UnscheduleSocket(ASocket:TProtocolSocket):Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.ScheduleSocketItem(ASocket:TProtocolSocket; AItem:PSocketTimerItem; ATimeout:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function TSocketTimer.UnscheduleSocketItem(ASocket:TProtocolSocket; AItem:PSocketTimerItem):Boolean;
Description: To be documented
Note | None documented |
---|
Return to Unit Reference