Components issue events in order to inform other components that something has happened. Other components can register themselves as event sinks and be notified when a specific event has occurred. Some typical events that can occur in WinGate include
- When a web browser connects to a WinGate proxy service
- When the Kaspersky AV scanner detects a virus
- When a WinGate SMTP service receives an email
- When client software connects via NAT
As a developer you can add your own events which can then be used by other components in the system such as Policy and the Scheduler.
Event processing is a serialised operation. When an event occurs, the event handlers for that event are processed on after the other with each handler able to cancel event handling when they process the event.