POE-Component-Lightspeed

 view release on metacpan or  search on metacpan

lib/POE/Component/Lightspeed/Hack/Kernel.pm  view on Meta::CPAN

			[ $session, \@etc ],
			( caller )[1,2],
			${ $self->[ KR_ACTIVE_EVENT ] },
			time(),
		);
	} else {
		# Enqueue the event for "now", which simulates FIFO in our
		# time-ordered queue.
		$self->_data_ev_enqueue(
			$session, ${ $self->[ KR_ACTIVE_SESSION ] }, $event_name, ET_POST, \@etc,
			(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(),
		);
	}

	# All done!
	return 1;
}

sub _lightspeed_post_31 {
	my( $self, $fake_session, $dest_session, $event_name, $etc ) = @_;

lib/POE/Component/Lightspeed/Hack/Kernel.pm  view on Meta::CPAN

  	# have a tendency not to abuse them.  I discovered in xws that that
  	# mixing the two types makes it harder than necessary to write
  	# deterministic programs, but the difficulty can be ameliorated if
  	# programmers set some base rules and stick to them.

  	# What should we return?
  	if (wantarray) {
  	  my @return_value = (
  	    ($session == ${ $self->[ KR_ACTIVE_SESSION ] })
  	    ? $session->_invoke_state(
		$session, $event_name, \@etc, (caller)[1,2],
		${ $self->[ KR_ACTIVE_EVENT ] }
  	    )
  	    : $self->_dispatch_event(
		$session, ${ $self->[ KR_ACTIVE_SESSION ] },
		$event_name, ET_CALL, \@etc,
		(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(), -__LINE__
  	    )
  	  );

  	  $! = 0;
  	  return @return_value;
  	}

  	if (defined wantarray) {
  	  my $return_value = (
  	    $session == ${ $self->[ KR_ACTIVE_SESSION ] }
  	    ? $session->_invoke_state(
		$session, $event_name, \@etc, (caller)[1,2],
		${ $self->[ KR_ACTIVE_EVENT ] }
  	    )
  	    : $self->_dispatch_event(
		$session, ${ $self->[ KR_ACTIVE_SESSION ] },
		$event_name, ET_CALL, \@etc,
		(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(), -__LINE__
  	    )
  	  );

  	  $! = 0;
  	  return $return_value;
  	}

  	if ($session == ${ $self->[ KR_ACTIVE_SESSION ] }) {
  	  $session->_invoke_state(
  	    $session, $event_name, \@etc, (caller)[1,2],
  	    ${ $self->[ KR_ACTIVE_EVENT ] }
  	  );
  	}
  	else {
  	  $self->_dispatch_event(
  	    $session, ${ $self->[ KR_ACTIVE_SESSION ] },
  	    $event_name, ET_CALL, \@etc,
  	    (caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(), -__LINE__
  	  );
  	}

  	$! = 0;
  	return;
}

sub _lightspeed_call_31 {
	my( $self, $fake_session, $dest_session, $event_name, $etc ) = @_;

lib/POE/Component/Lightspeed/Introspection.pm  view on Meta::CPAN

	my $from = [];
	$from->[ FROM_KERNEL ] = $heap->{'MYKERNEL'};

	# Add the session
	$from->[ FROM_SESSION ] = $list[0];

	# Add the state
	$from->[ FROM_STATE ] = $POE::Kernel::poe_kernel->get_active_event();

	# Add the file/line
	push( @$from, (caller)[1,2] );

	# Is it a local introspection request?
	if ( $dest eq $heap->{'MYKERNEL'} or $dest eq '*' ) {
		# Send it to the router to emulate a "packet"
		$POE::Kernel::poe_kernel->post(
			$POE::Component::Lightspeed::Router::SES_ALIAS,
			'ACTION_' . ACTION_INTROSPECTION,
			[
				$heap->{'MYKERNEL'},			# MSG_TO
				$heap->{'MYKERNEL'},			# MSG_FROM

lib/POE/Component/Lightspeed/Introspection.pm  view on Meta::CPAN

	my @list = $POE::Kernel::poe_kernel->alias_list( $POE::Kernel::poe_kernel->get_active_session() );
	if ( ! defined $list[0] ) {
		$list[0] = $POE::Kernel::poe_kernel->get_active_session()->ID;
	}
	$from->[ FROM_SESSION ] = $list[0];

	# Add the state
	$from->[ FROM_STATE ] = $POE::Kernel::poe_kernel->get_active_event();

	# Add the file/line
	push( @$from, (caller)[1,2] );

	# Is it a local introspection request?
	if ( POE::Component::Lightspeed::Router::FindOurself( $heap->{'MYKERNEL'}, $dest->[ DEST_KERNEL ] ) ) {
		# Send it to the router to emulate a "packet"
		$POE::Kernel::poe_kernel->post(
			$POE::Component::Lightspeed::Router::SES_ALIAS,
			'ACTION_' . ACTION_INTROSPECTION,
			[
				$heap->{'MYKERNEL'},			# MSG_TO
				$heap->{'MYKERNEL'},			# MSG_FROM



( run in 1.087 second using v1.01-cache-2.11-cpan-a3c8064c92c )