ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra/Deliantra/Protocol.pm
(Generate patch)

Comparing deliantra/Deliantra/Deliantra/Protocol.pm (file contents):
Revision 1.31 by root, Thu Apr 20 04:11:28 2006 UTC vs.
Revision 1.32 by root, Thu Apr 20 07:13:09 2006 UTC

32sub new { 32sub new {
33 my $class = shift; 33 my $class = shift;
34 my $self = bless { 34 my $self = bless {
35 mapw => 13, 35 mapw => 13,
36 maph => 13, 36 maph => 13,
37 max_outstanding => 2, 37 max_outstanding => 6,
38 token => "a0", 38 token => "a0",
39 @_ 39 @_
40 }, $class; 40 }, $class;
41 41
42 $self->{fh} = new IO::Socket::INET PeerHost => $self->{host}, PeerPort => $self->{port} 42 $self->{fh} = new IO::Socket::INET PeerHost => $self->{host}, PeerPort => $self->{port}
586sub send_mapinfo { 586sub send_mapinfo {
587 my ($self, $data, $cb) = @_; 587 my ($self, $data, $cb) = @_;
588 588
589 my $token = ++$self->{token}; 589 my $token = ++$self->{token};
590 590
591 $self->{mapinfo_cb}{$token} = $cb; 591 $self->{mapinfo_cb}{$token} = sub {
592 $self->send_queue;
593 $cb->(@_);
594 };
592 $self->send ("mapinfo $token $data"); 595 $self->send_queue ("mapinfo $token $data");
593} 596}
594 597
595sub feed_image { 598sub feed_image {
596 my ($self, $data) = @_; 599 my ($self, $data) = @_;
597 600
721 --$self->{outstanding}; 724 --$self->{outstanding};
722 } 725 }
723 726
724 if ($self->{outstanding} < $self->{max_outstanding} && @{ $self->{send_queue} }) { 727 if ($self->{outstanding} < $self->{max_outstanding} && @{ $self->{send_queue} }) {
725 ++$self->{outstanding}; 728 ++$self->{outstanding};
726 $self->send (pop @{ $self->{send_queue} }); 729 $self->send (shift @{ $self->{send_queue} });
727 } 730 }
728} 731}
729 732
730sub send_setup { 733sub send_setup {
731 my ($self) = @_; 734 my ($self) = @_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines