Pojdi na vsebino

Dogodek (računalništvo)

Iz Wikipedije, proste enciklopedije
(Preusmerjeno s strani Event driven programming)

V računalništvu je dogodek (angleško event) dejanje ali pojav, ki ga prepozna programska oprema in se lahko nanj odzove (ga obravnava).

Računalniške dogodke lahko generirajo ali sprožijo sistem, uporabnik ali drugi dejavniki. Dogodki so tipično obravnavani sinhrono s tokom programa. Program lahko ima eno ali več specializiranih mest, kjer se dogodki obravnavajo, pogosto je to v dogodkovni zanki. Vir dogodkov je lahko uporabnik, ki interagira s programom na primer preko udarcev tipk na tipkovnici ali klikov z miško. Drug vir dogodkov je lahko strojna naprava, na primer računalniška ura. Program lakhko tudi sam proži dogodke v dogoskovno zanko, na primer zato, da sporoča o končanju kakšnega opravila.

Za program, ki spreminja svoje delovanje kot odziv na dogodke, pravimo, da je dogodkovno voden. Programi so pogosto dogodkovno vodeni z namenom, da so interaktivni - da se odzivajo na dejanja uporabnika (npr. na klike z miško na elemente grafičnega uporabniškega vmesnika) ali na dogodke, ki jih sproži kak drug računalniški podsistem.

Dogodkovna zanka je zanka, ki procesira dogodke. Za obravnavo dogodkovne zanke se notifikacije o dogodkih (ki vsebujejo potrebne podatke o izvoru in vrsti dogodka ter o načinu odziva) razporedijo v vrsto. Dogodkovna zanka jemlje dogodke enega za drugim in jih obravnava tako, da za vsak dogodek požene ustrezno rutino ("event handler"), ki je namenjena obravnavi posamične vrste dogodkov.

"Event handler" je rutina, ki obravnava določen dogodek. Vsak dogodek vsebuje paket podatkov o svojem izvoru, vrsti in okoliščinah, v katerih je dogodek nastal. "Event handler" lahko uporabi te inforamacije (ali del informacij) za odločitve, kako naj se na določen dogodek odzove. "Event handler"-ji so osrednji koncept v dogodkovno vodenem programiranju. Dogodke kreira sistemsko ogrodje na podlagi interpretacije nizkonivojskih vhodov (ki so lahko sami nnizkonivojski dogodki), npr. signalov, kijih generirajo naprave za uporabniško interakcijo (miška, tipkovnica). Izvor takšnih dogodkov je na sistemskem nivoju, npr. prekinitve, ki jih generirajo strojne naprave. Upravljavci prkinitev in upravljavci signalov na tem nivoju ustrezajo "event handler"-jem na višjem nivoju. Generirane dogodke najprej procesira dispečer dogodkov znotraj sistemskega ogrodja. Ta običajno poveže dogodke z event handlerji in postavi dogodke v vrsto za poznejše procesiranje. Dispečer lahko kliče event handlerje neposredno, ali pa počaka, da so dogoki vzeti iz vrste in obravnavani s klicem event handlerjev v dogodkovni vrsti (pri tem informacije o dogodku vključujejo tudi naslov enega ali več event handlerjev, ki naj obravnavajo dogodek).