Changeset 5602


Ignore:
Timestamp:
06/26/09 09:48:38 (3 years ago)
Author:
submersible_toaster
Message:

chat from ./announcer.pl to listener.pl and also running padre instance Swarm -Chat window

Location:
trunk/Padre-Plugin-Swarm
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Padre-Plugin-Swarm/lib/Padre/Plugin/Swarm.pm

    r5598 r5602  
    99use Padre::Wx::Icon (); 
    1010use Padre::Swarm::Service::Chat (); 
     11use Padre::Wx::Swarm::Chat (); 
    1112use File::Spec      (); 
    1213 
     
    1516        get_config => 'config', 
    1617        get_services => 'services', 
     18        #  
     19        get_chat => 'chat', 
    1720    } 
    1821    , 
     
    2023        set_config => 'config', 
    2124        set_services=>'services', 
     25        set_chat => 'chat', 
    2226    }; 
    2327 
     
    7377    my $config = $self->config_read; 
    7478    $self->set_config( $config ); 
    75      
     79 
    7680    $self->_load_everything; 
    7781    $self->_start_services; 
     
    8387    my $self = shift; 
    8488    $self->_shutdown_services; 
     89    $self->_destroy_ui; 
    8590} 
    8691 
     
    127132    ); 
    128133     
    129  
    130 } 
    131  
    132 sub _start_transports { 
    133     my $self = shift; 
    134     my $transports = $self->get_transports; 
    135     while ( my ($name,$transport) = each %$transports ) { 
    136         $transport->start; 
    137     } 
    138 } 
    139  
    140 sub _shutdown_transports { 
    141     my $self = shift; 
    142     my $transports = $self->get_transports; 
    143     while ( my ($name,$transport) = each %$transports ) { 
    144         $transport->shutdown; 
    145     } 
    146 } 
     134    my $chatframe = Padre::Wx::Swarm::Chat->new($self->main); 
     135     
     136    $self->set_chat( $chatframe ); 
     137    $chatframe->enable; 
     138} 
     139 
     140sub _destroy_ui { 
     141    my $self = shift; 
     142    if ( my $chat = $self->get_chat ) { 
     143        $chat->disable; 
     144    } 
     145    $self->set_chat(undef); 
     146 
     147} 
     148 
     149#sub _start_transports { 
     150#   my $self = shift; 
     151#   my $transports = $self->get_transports; 
     152#   while ( my ($name,$transport) = each %$transports ) { 
     153#       $transport->start; 
     154#   } 
     155#} 
     156# 
     157#sub _shutdown_transports { 
     158#   my $self = shift; 
     159#   my $transports = $self->get_transports; 
     160#   while ( my ($name,$transport) = each %$transports ) { 
     161#       $transport->shutdown; 
     162#   } 
     163#} 
    147164 
    148165sub _start_services { 
  • trunk/Padre-Plugin-Swarm/lib/Padre/Swarm/Service/Chat.pm

    r5597 r5602  
    6666} 
    6767 
     68sub receive { 
     69    my $self = shift; 
     70    my $t = $self->get_transport; 
     71    if ( $t->poll(0) ) { 
     72        my ($channel,$client,$payload) = $t->receive_from( 12000 ); 
     73        my $message = eval { JSON::XS::decode_json( $payload ); } ; 
     74        if ($@) { 
     75            warn "cannot decode message from [$client], $@. Client said\t$message"; 
     76            return; 
     77        } 
     78        return $message; 
     79    } 
     80    return; 
     81} 
     82 
    68831; 
  • trunk/Padre-Plugin-Swarm/listener.pl

    r5597 r5602  
    1212    my $buffer; 
    1313    my ($channel,$client,$payload) = $mc->receive_from( 12000 ); 
    14     print "[$client], $payload"; 
     14    print "[$client], $payload",$\; 
    1515} 
Note: See TracChangeset for help on using the changeset viewer.