A proactor egy eseménykezelő programtervezési minta, amiben a hosszas tevékenységeket aszinkron futtatják. Ha az aszinkron részek véget érnek, akkor meghívódik a befejezéskezelő. A szinkron reactor minta aszinkron változatának tekinthető.Pattern-Oriented Software Architecture, Volume 2, Schmidt et al., Jon Wiley & Sons, Ltd, 2000

Szereplők, együttműködés

Műveletspecifikus szereplők: Proaktív kezdeményező (Proactive Initiator): kezdeményezi az aszinkron műveletet az aszinkron műveletfeldolgozónál, és definiálja a befejezéskezelőt. Befejezéskezelő (Completion Handler): Az aszinkron műveletkezelő ezt hívja meg a művelet után. Aszinkron művelet (Asynchronous Operation) Aszinkron műveletfeldolgozó (Asynchronous Operation Processor): ellenőrzi az aszinkron művelet végrehajtását. Befejezésdiszpécser (Completion Dispatcher): a környezettől függően kezeli a hívást.

Megvalósítások Proactor and Boost.Asio (C++) Adaptive Communication Environment (C++) libbitcoin (C++) RJR (Ruby)

Jegyzetek

Források Proactor -An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events, Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, Thomas D. Jordan, 1997 (pdf 143 kB)

Fordítás

Kategória:Programtervezési minták