PoE :: Componente :: Plugnable

Una clase base para crear componentes POE habilitados para complementos
Descargar ahora

PoE :: Componente :: Plugnable Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Chris Williams
  • Sitio web del editor:
  • http://search.cpan.org/~bingos/

PoE :: Componente :: Plugnable Etiquetas


PoE :: Componente :: Plugnable Descripción

Una clase base para crear componentes POE habilitados con complemento PoE :: Componente :: Plugnable es un módulo PERL para crear complementos POE habilitados con complemento. Es un puerto genérico de POE :: Componente :: Sistema de complementos de IRC. Si su componente envía eventos a las sesiones de PoE registradas, luego PoE :: Componente :: Plugnable puede ser un buen ajuste para usted. El usoBasic involucraría a Subclassing Poe :: Componente :: Plugnable, luego anulando _plancable_event () e insertando _plincable_process () dondequiera que envíe los eventos de. Los usuarios de su componente pueden cargar los complementos usando los métodos de complemento que se proporcionan para manejar los eventos generados por el componente. También puede usar los manipuladores de estilo de complemento dentro de Su componente como _plincable_process () intentará procesar cualquier evento con las llamadas de métodos locales primero. El valor de retorno de estos manipuladores tiene la misma importancia que el valor de retorno de los manipuladores de plugin 'Normal'.Synopsis # un componente de POE simple que envía eventos de ping a las sesiones registradas # cada 30 segundos. Un ejemplo más bien complicado para ser honesto. {paquete simplepoco; usar estricto; Use Base QW (POE :: Componente :: Plugnable); usar PoE; Use PoE :: Componente :: Plugnable :: Constantes QW (: todos); Sub Spawn {My ($ PAQUETE,% OPTS) = @_; $ opts {lc $ _ _} = eliminar $ opts {$ _} para las teclas% opts; My $ Self = Bless \% Opts, $ Paquete; $ yo -> _ pluggable_init (prefijo => 'simplepoco_'); PoE :: Session-> Crear (Object_states => ,], montón => $,); devolver $ yo; } Sub apagado {My ($ Self) = @_; $ poe_kernel-> Publicar ($ auto-> {session_id}, 'apagado'); } Sub _Plugnable_Event {My ($ Self) = @_; $ poe_kernel-> POST ($ auto -> {session_id}, '__send_event', @_); } sub _start {my ($ kernel, $ yo) = @_ ; $ yo -> {session_id} = $ _ -> ID (); Si ($ yo -> {alias}) {$ kernel-> alias_set ($ yo-> {alias}); } else {$ Kernel-> Refcount_Increment ($ auto -> {session_id}, __package__); } $ kernel-> demora (_send_ping => $ yo--> {hora} || 300); regreso; } Sub _shutdown {My ($ kernel, $ yo) = @_ ; $ yo-> _ pluggable_destroy (); $ kernel-> alarma_remove_all (); $ auto-> alias_remove ($ _) por $ kernel-> alias_list (); $ kernel-> refcount_decrement ($ self -> {session_id}, __package__) ¡Si! $ auto -> {alias}; $ kernel-> refcount_decrement ($ _, __package__) para las teclas% {$ yo-> {sessions}}; regreso; } Sub Register {My ($ kernel, $ sender, $ self) = @_ ; My $ SENDER_ID = $ SENDER-> ID (); $ yo -> {sessions} -> {$ sender_id} ++; if ($ yo-> {sessions} -> {$ sender_id} == 1) {$ kernel-> refcount_inscrement ($ sender_id, __package__); $ Kernel-> Rendimiento (__ send_event => $ auto -> {_ pluggable_prefix}. 'registrado', $ sender_id); } regreso; } Sub insuficiencia {my ($ kernel, $ sender, $ self) = @_ ; My $ SENDER_ID = $ SENDER-> ID (); My $ RECORD = Eliminar $ auto-> {sessions} -> {$ sender_id}; if ($ récord) {$ kernel-> refcount_decrement ($ sender_id, __package__); $ Kernel-> Rendimiento (__ send_event => $ auto -> {_ pluggable_prefix}. 'no registrado', $ sender_id); } regreso; } Sub __Send_Event {My ($ Kernel, $ Self, $ Event, @Args) = @_ ; Devuelve 1 si $ auto-> _ pluggable_process (ping => $ event, (@args)) == plugin_eat_all; $ kernel-> Publicar ($ _, $ Event, @Args) para las teclas% {$ Self -> {Sesiones}}; } Sub _Send_Ping {My ($ kernel, $ yo) = @_ ; My $ Event = $ Self -> {_ pluggable_prefix}. 'silbido'; MI @Args = ('Despierta Sleepy'); $ kernel-> rendimiento (__ send_event => $ evento, @args); $ kernel-> retraso (_send_ping => $ auto -> {hora} || 300); regreso; }} Usa PoE; My $ Pluggable = SimplePOCO-> Spewn (Alias ​​=> 'Pluggable', Time => 30,); PoE :: Session-> Crear (Package_States => ,],); $ poe_kernel-> corre (); sub _start {my ($ kernel, $ $ montones) = @_ ; $ kernel-> Post (Pluggable => 'Registrarse'); regreso; } Sub SimplePOCO_REGISTEED {imprimir "yay, nos registramos "; regreso;} Sub SimplePoCo_Ping {My ($ Sender, $ Text) = @_ ; Imprimir" Tengo '$ texto' de ", $ Sender-> ID" "; retorno;} requisitos: · Perl


PoE :: Componente :: Plugnable Software relacionado

pod2fm

Convierta el formato de POD a los documentos y el archivo de libro de Framemaker ...

128

Descargar