On Fri, Jun 13, 2003 at 11:22:44AM -0400, Rocco Caputo wrote:
> If messages are being sent but not received, you can easily find them
> by setting POE::Kernel::ASSERT_EVENTS, like so:
>
> sub POE::Kernel::ASSERT_EVENTS () { 1 }
> use POE;
>
> It's important to set ASSERT_EVENTS before using POE.pm (or POE::Kernel)
> so that the module will see the value when it loads.
uhm what's that supposed to do? doens't change anything in my script?
> Also see http://poe.perl.org/?POE_Documentation/Beginners_Guide
heh :D i allready went through that one innumerable times...
> Server::Web and Client::IRC read configuration options and create their
> objects and sessions. The configuration includes aliases for each
> module, and the modules are designed to talk to each-other using those
> aliases.
and how do you set up those aliases?
> > - events are generated and distributed randlomly to the listeners, once
> > one listener claims the event, it isn't propsed to the other sessions,
> > right? or is there some sort of telling that the events should be
> > proposed also to the other sessions?
>
> The English of this question is very bad. Because I can't quite
uhm sorry...
> The post() method sends events to a session. That session may be
> different from the one that calls post().
using the post( session_alias_that_i_dont_get_how_to_define =>
'eventname') paradign, right?
> The yield() method sends events to the session that called it.
ok! got that one
> Events are queued very deterministically. They are stored in what is
> essentially an array, in due-time order. Alarms and delays are usually
> due in the future, so they reside later in the queue. Events
> representing immediate conditions are enqueued for time(), so they
> happen in more-or-less FIFO (first in, first out) order.
the random was aimed at to who processes it, didn't get that the post
method applies exclusively to the actual session.
> The signal() call is for simulating signals without using kill() or
> involving the operating system.
yep, that's why i was surpised to see referencing it as a viable
intersession message paradigm....
> Signals may be used to broadcast one event to many sessions at once.
> Posted events are more point-to-point.
and that what i need....
> > - sessions like the TCP stuff and the IRC module register an alias iwth
> > which it is possible to get it later on globally from the heap, how do i
> > setup such a mechanism? alias isn't a recognized var of session?
>
> Aliases are not stored in the heap. You may retrieve the aliases for a
> session with $kernel->alias_list($session) but there isn't a global
> registry of them.
>
> It's assumed that you assigned the aliases to ecah session, so you know
> what they are.
??? when i try to add an Alias => "somename" to the create method of
session, i get a compile error?
> You should use POE::Wheel::ReadLine or Term::Visual. Both work without
> blocking your program. Term::Visual is especially nice.
ok! switched to POE::Wheel::ReadLine (installed by default...)
in the meantime another problem arouse....
the heap is different for each session, right?
now, i have on one side a TCP connection and on another a session with
the shell implementation that needs to send the info through that
pipe... is it safe to exchange the ref to the server ?
hmmm now on:
my $task = POE::Wheel::Run->new
(�
�������� #Program => runShell(@_),
�������� #Program => &runShell,
�������� Program => &POE::Component::Leve::leveShell::runShell,
��
StdoutFilter => POE::Filter::Reference->new(),
StdoutEvent => "task_result",
StderrEvent => "task_debug",
CloseEvent => "task_done",
);
$heap->{task}->{ $task->ID } = $task;
i get a
_start::SH posted runshell
Debug: can't exec (1) in child pid
4558: Datei oder Verzeichnis nicht gefunden at /usr/share/perl5/POE/Wheel/Run.pm line
380.
seems i can't get the syntax correct?
and how do i pass the runshell call its args? i need the usual @_[OBJECT, KERNEL etc]
input....
--
ciao bboett
==============================================================
[EMAIL PROTECTED]
http://inforezo.u-strasbg.fr/~bboett
===============================================================