Open Files 5.3.0
Multi-Platform Event-Driven Application Framework
Developing with ConnectSMB

ConnectSMB provides a very robust set of platform independent functions that allow a developer to accelerate implementation of multi-platform applications. If your only focus is to integrate with the SMB APIs, this section can be skipped.

Applications can be traditional thread based or can utilize the event-driven application framework provided by ConnectSMB. The event-driven model allows for scheduling any number of non-blocking applications scheduling threads. There can be one scheduling thread per application, or multiple scheduling threads can be deployed either by function or by CPU.

The framework supports two application concurrency models: Async and Threading. The async model is where a single run loop dispatches to registered event handlers while the threading model is where multiple threads are used to repeatedly process and then block within some application structure. ConnectSMB supports both models and provides our own Async model. The threading model doesn't require much discussion. It essentially just follows a 'main' or 'pthread' type structure where APIs either block or provide events that can be tested or waited on later on. The Async model is discussed in ConnectSMB Asynchronous Programming Model.

The various facilities/components available to an application developer are: