TsgcQUICServer › Ereignisse › OnShutdown
Wird ausgelöst, wenn der Server nicht mehr lauscht und seine Ressourcen freigegeben hat.
property OnShutdown: TNotifyEvent;
// TNotifyEvent = procedure(Sender: TObject) of object
—
OnShutdown ist veröffentlicht und von der UDP-Server-Basisklasse geerbt, und der QUIC-Server löst es am Ende des Abbaus aus. Wenn der Handler läuft, wurde der Listener-Thread also bereits beendet, jede Verbindung wurde freigegeben und der SSL-Kontext wurde freigegeben.
Es wird von Stop ausgelöst (ebenso von Active := False, was Stop intern tut), auf dem Thread des Aufrufers, bevor Stop zurückkehrt. Es wird auch ausgelöst, wenn ein laufender Server zerstört wird, weil der Destruktor den Listener abbaut.
Nur ein Server, der tatsächlich gelauscht hat, löst es aus. Das Anhalten eines bereits angehaltenen Servers oder das Zerstören eines nie gestarteten Servers verläuft still, daher läuft der Handler höchstens einmal pro erfolgreichem OnStartup und Sie können die beiden gefahrlos paaren.
In der .NET-Implementierung wird OnShutdown am Ende von Stop() ausgelöst und auch dann, wenn der Server freigegeben wird, sodass sich ein Handler in beiden Sprachen gleich verhält.
// Raised once the listener and every connection have been released:
procedure OnShutdown(Sender: TObject);
begin
WriteLn('#QUIC server stopped');
end;
// Assign it before starting the server
oServer.OnShutdown := OnShutdown;
...
oServer.Stop; // raises OnShutdown, a second Stop stays silent