Open Source im professionellen Einsatz

Schnatter-Framework

Die Variablen »$USER« und »$PROTOCOL« in den Zeilen 20 und 21 definieren den im Alarmfall zu benachrichtigenden Usernamen und den dabei verwendeten IM-Service, im vorliegenden Fall »prpl-yahoo«, das ist Yahoos Messenger-Protokoll. »pidgin-stockwatch.pl« bindet in Zeile 7 »WatchQuotes« ein. Beim Implementieren dieses Moduls war zu beachten, dass es mit Pidgins Eventschleife zusammenarbeiten muss, damit auch während lange laufender Operationen, etwa dem Einholen einer Webseite, der Glib-Kern Mauseingaben des Users verarbeitet und Pidgin nicht etwa zur Salzsäule erstarrt.

Hierfür bieten sich mehrere Frameworks an. POE [3] haben schon mehrere Snapshots verwendet, weshalb diesmal eine neuere Entwicklung zu Ehren kommt, die die coolen Kids der Perl-Szene ganz aufgeregt schnattern lässt: das Framework Any Event [4]. Es bindet sich nicht direkt an eine bestimmte Eventschleife, sondern arbeitet mit einem halben Dutzend Implementierungen zusammen.

Universell verwendbar

Von Vorteil ist, dass sich so ein Modul wie »WatchQuotes.pm« ganz generisch implementieren lässt und später ohne Änderung auf allen denkbaren Eventschleifen und Plattformen läuft. Einzige Voraussetzung ist, dass das Hauptprogramm eine Referenz auf die verwendeten Any-Event-Objekte behält, was durch das Speichern der entsprechenden Objektreferenz in der globalen Variablen »$WATCH_QUOTES« geschieht.

Dieses Verfahren ist notwendig, da Pidgin die definierten Plugin-Callbacks nur kurz aufruft und deren lokale Variablen darum wieder verschwinden, sobald der Programmfluss wieder in das reguläre Biotop von Pidgin zurückkehrt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook