Poe :: Bauteil :: steckbar

Eine Basisklasse zum Erstellen von Plugin-fähigen PoE-Komponenten
Jetzt downloaden

Poe :: Bauteil :: steckbar Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Chris Williams
  • Website des Verlags:
  • http://search.cpan.org/~bingos/

Poe :: Bauteil :: steckbar Stichworte


Poe :: Bauteil :: steckbar Beschreibung

Eine Basisklasse zum Erstellen von Plugin-fähigen PoE-Komponenten Poe :: Komponente :: PlugGable ist ein Perl-Modul zum Erstellen von Plugin-aktivierten PoE-Komponenten. Es ist ein generischer Anschluss von PoE :: Component :: IRC-Plugin-System Komponente :: PlugGable, dann überschreiben _plugugable_event () und einfügen _plugugable_process (), wo immer Sie Ereignisse von.Usern Ihrer Komponente einfügen können, können Plugins mit den von der Komponente erzeugten Ereignissen bereitgestellt werden. Ihre Komponente als _plugugable_process () versucht, Ereignisse zuerst mit lokalen Methodenanrufen zu verarbeiten. Der Rückgabewert dieser Handler hat die gleiche Bedeutung wie der Rückgabewert von 'Normal' Plugin Handlers.synopsis # Eine einfache PoE-Komponente, die Ping-Events an registrierte Sitzungen # alle 30 Sekunden sendet. Ein ziemlich überzeugtes Beispiel, um ehrlich zu sein. {Paket SimplePoco; Verwenden Sie streng; Verwenden Sie Base QW (PoE :: Komponente :: steckbar); Verwenden Sie PoE; Verwenden Sie PoE :: Bauteil :: PlugGable :: Konstanten QW (: ALL); Unterspawn {MY ($ PACKE,% OPTS) = @_; $ OPTS {LC $ _ _ _} = löschen $ OPTS {$ _} Für Tasten% OPTS; mein $ self = segn \% \% eignet sich, $ paket; $ self -> _ pluggable_init (Präfix => 'SimplePoco_'); PoE :: session-> erstellen (object_states => ,], Heap => $ self,); ergib $ selbst zurück; } Sub-Herunterfahren {MY ($ self) = @_; $ poe_kernel-> post ($ self -> {session_id}, 'Herunterfahren'); } sub _plugugable_event {mein ($ self) = @_; $ poe_kernel-> post ($ self -> {session_id}, '__send_event', @_); } SUB _START {MY ($ KERNEL, $ SELBST) = @_ ; $ self -> {session_id} = $ _ -> ID (); if ($ self -> {alias}) {$ kernel-> alias_set ($ self -> {alias}); } else {$ kernel-> refcount_increment ($ self -> {session_id}, __package__); } $ Kernel-> Verzögerung (_send_ping => $ self -> {Time} || 300); Rückkehr; } SUB _SHUTDOWN {MY ($ KERNEL, $ SELBST) = @_ ; $ self -> _ pluggable_destroy (); $ kernel-> alarm_remove_all (); $ self-> alias_remove ($ _) für $ kernel-> alias_list (); $ kernel-> refcount_decrement ($ self -> {session_id}, __package__) wenn! $ self -> {alias}; $ kernel-> refcount_decrement ($ _, __package__) für Schlüssel% {$ self -> {Sessions}}; Rückkehr; } Teilregister {MY ($ Kernel, $ Sender, $ self) = @_ ; mein $ sender_id = $ sender-> id (); $ selbst -> {Sitzungen} -> {$ sender_id} ++; if ($ self -> {Sessions} -> {$ sender_id} == 1) {$ kernel-> refcount_increment ($ sender_id, __package__); $ Kernel-> Ertrag (__ send_event => $ self -> {_ pluggable_prefix}. 'registrierte', $ sender_id); } Rückkehr; } Sub-Unregister {MY ($ Kernel, $ Sender, $ SELBST) = @_ ; mein $ sender_id = $ sender-> id (); meine $ record = löschen $ self -> {Sessions} -> {$ sender_id}; if ($ Record) {$ kernel-> refcount_decrement ($ sender_id, __package__); $ Kernel-> Ertrag (__ send_event => $ self -> {_ pluggable_prefix}. 'nicht registriert', $ sender_id); } Rückkehr; } Sub __send_event {My ($ Kernel, $ Self, $ Event, @args) = @_ ; Zurück 1 Wenn $ self -> _ PlugGable_Process (Ping => $ Ereignis, (@args)) == plugin_at_all; $ Kernel-> Beitrag ($ _, $ Event, @args) für Schlüssel% {$ self -> {Sessions}}; } sub _send_ping {mein ($ kernel, $ self) = @_ ; Meine $ Event = $ self -> {_ pluggable_prefix}. 'Klingeln'; mein @args = ('schläfrig aufwachen'); $ Kernel-> Ausbeute (__ send_event => $ Event, @args); $ Kernel-> Verzögerung (_send_ping => $ self -> {Time} || 300); Rückkehr; }} Verwenden Sie poE; mein $ steckbar = SimplePoco-> Spawn (Alias => 'steckbar', Zeit => 30,); PoE :: session-> erstellen (paket_states => ,],]; $ poe_kernel-> run (); SUB _START {MY ($ KERNEL, $ Heap) = @_ ; $ Kernel-> Post (steckbar => 'Register'); Rückkehr; } sub SimplePoco_Registered {drucken "yay, wir haben registriert "; zurücksenden;} sub SimplePoco_Ping {MY ($ Sender, $ Text) = @_ ; drucken" erhalten "$ Text 'von", $ Sender-> ID, " "; Rückkehr;} Anforderungen: · Perl.


Poe :: Bauteil :: steckbar Zugehörige Software