Poe :: Componente :: Pluggable

Uma classe base para criar componentes PoE habilitados para plugin
Baixe Agora

Poe :: Componente :: Pluggable Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Chris Williams
  • Site do editor:
  • http://search.cpan.org/~bingos/

Poe :: Componente :: Pluggable Tag


Poe :: Componente :: Pluggable Descrição

Uma classe base para criar componentes PoE habilitados para plugin PoE :: Component :: PlugGable é um módulo Perl para criar componentes PoE habilitados para plugin. É uma porta genérica do POE :: Sistema de plug-in do IRC.Se seu componente despachar eventos para cadastreções registradas, poe :: componente :: Pluggable pode ser um bom ajuste para você. O uso da Basic envolveria o POE de subclassagem :: Componente :: Pluggable e, em seguida, substituir _Pluggable_Event () e inserir _pluggable_process () Onde quer que você despache eventos de seu componente possa carregar plugins usando os métodos de plug-in fornecidos para manipular eventos gerados pelo componente. Você também pode usar os manipuladores de estilo de plugin dentro Seu componente como _pluggable_Process () tentará processar quaisquer eventos com chamadas de método local primeiro. O valor de retorno desses manipuladores tem o mesmo significado que o valor de retorno de manipuladores de plugin 'normais'.synopsis # um simples componente PoE que envia eventos de ping para sessões registradas # a cada 30 segundos. Um exemplo bastante complicado para ser honesto. {pacote simplepoco; Use rigoroso; Use Base QW (PoE :: Component :: Pluggable); use poe; Use PoE :: Componente :: Pluggable :: Constantes QW (: ALL); Sub Spawn {My ($ Package,% opta) = @_; $ opts {LC $}} = excluir $ opts {$} para chaves% opts; Meu $ auto = abençoe \% opts, $ pacote; $ auto-> _ pluggable_init (prefixo => 'simplepoco_'); Poe :: Session-> Create (Object_States => ,], heap => $,); retornar $ auto; } Sub desligamento {my ($ self) = @_; $ poe_kernel-> post ($ self -> {session_id}, 'desligamento'); } sub _pluggable_event {my ($ self) = @_; $ poe_kernel-> post ($ self -> {session_id}, __send_event ', @_); } sub _start {my ($ kernel, $ self) = @_ ; $ auto -> {session_id} = $ _ -> ID (); se ($ auto -> {alias}) {$ kernel-> alias_set ($ auto -> {alias}); } else {$ kernel-> refcount_increment ($ auto -> {session_id}, __package__); } $ kernel-> atraso (_send_ping => $ auto -> {tempo} || 300); Retorna; } sub _shutdown {meu ($ kernel, $ self) = @_ ; $ auto -> _ pluggable_destroy (); $ kernel-> alarme_remove_all (); $ auto-> alias_remove ($ _) por $ kernel-> alias_list (); $ Kernel-> RefCount_Decrement ($ auto -> {session_id}, __package__) se! $ auto -> {alias}; $ Kernel-> RefCount_Decrement ($ _, __package__) para chaves% {$ auto -> {sessions}}; Retorna; } sub-registrar {my ($ kernel, $ remetente, $ auto) = @_ ; Meu $ Sender_ID = $ SENDER-> ID (); $ auto -> {sessions} -> {$ sender_id} ++; Se ($ auto -> {sessions} -> {$ sender_id} == 1) {$ kernel-> refcount_increment ($ Sender_id, __package__); $ kernel-> rendimento (__ send_event => $ auto -> {_ pluggable_prefix}. 'registrado', $ Sender_ID); } Retorna; } Sub Unregister {My ($ Kernel, $ remetente, $ auto) = @_ ; Meu $ Sender_ID = $ SENDER-> ID (); meu $ record = delete $ auto -> {sessions} -> {$ sender_id}; if ($ record) {$ kernel-> refcount_decrement ($ Sender_ID, __package__); $ kernel-> rendimento (__ send_event => $ self -> {_ pluggable_prefix}. 'não registrado', $ Sender_ID); } Retorna; } Sub __Send_Event {My ($ kernel, $ auto, $ evento, @args) = @_ ; Retornar 1 Se $ auto -> _ PlugGable_Process (ping => $ evento, (@args)) == plugin_eat_all; $ kernel-> post ($ _, $ evento, @args) para chaves% {$ auto -> {sessions}}; } sub _send_ping {my ($ kernel, $ self) = @_ ; Meu $ Event = $ auto -> {_ pluggable_prefix}. 'ping'; meu @args = ('acordar com sono'); $ kernel-> rendimento (__ send_event => $ Event, @args); $ kernel-> atraso (_send_ping => $ auto -> {tempo} || 300); Retorna; }} Use PoE; Meu $ Pluggable = SimplePoco-> Spawn (Alias => 'PlugGable', Time => 30,); Poe :: Session-> Create (Package_States => ],]; $ poe_kernel-> correr (); sub _start {my ($ kernel, $ heap) = @_ ; $ Kernel-> Post (PlugGable => 'Registrar'); Retorna; } Sub simplePoco_Registered {Imprimir "Yay, registramos "; Retorno;} Sub SimplePoco_ping {My ($ remetente, $ text) = @_ ; Imprimir" Got '$ Texto' de ", $ Sender-> ID" "; retorno;} Requisitos: · Perl.


Poe :: Componente :: Pluggable Software Relacionado

pod2fm.

Converta o formato do pod para documentos do FrameMaker e arquivo de livro ...

128

Download