⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.pm

📁 perl qq
💻 PM
字号:
package Net::OICQ::Event;# $Id: Event.pm,v 1.6 2003/10/17 20:01:52 tans Exp $# Copyright (c) 2003 Shufeng Tan.  All rights reserved.# # This package is free software and is provided "as is" without express# or implied warranty.  It may be used, redistributed and/or modified# under the terms of the Perl Artistic License (see# http://www.perl.com/perl/misc/Artistic.html)use 5.006;use strict;use warnings;eval "no encoding; use bytes;" if $] >= 5.008;use Net::OICQ;my %Cmd;  # For looking up Cmd from CmdCodeforeach my $cmd (keys %Net::OICQ::CmdCode) {    $Cmd{$Net::OICQ::CmdCode{$cmd}} = $cmd;}my $EventQueueSize = 50;sub new {    my ($class, $packet, $oicq) = @_;    my $self = {	OICQ    => $oicq,        Header  => $packet,    };    return bless($self, $class);}sub src {    substr(shift->{Header}, 1, 2)}sub cmdcode {    substr(shift->{Header}, 3, 2)}sub seq {    substr(shift->{Header}, 5, 2)}sub cmd {    $Cmd{cmdcode(@_)} or 'unknown'}# $event->process() checks if an event is an ACK to a previous event,# or a duplicate to be ignored, or a new event to be added to the queuesub process {    my ($self) = @_;    my $oicq = $self->{OICQ};    my $queue = $oicq->{EventQueue};    my $src = $self->src;    my $seq = $self->seq;    my $cmdcode = $self->cmdcode;    my $cmd = $self->cmd;    my $q=$oicq->{Command_Queue};    foreach my $e (@$queue) {        if ($e->seq eq $seq) {	    #print "Dup packet seq:",unpack('n',$seq)," time:",time,"\n";            return 0;####dup packet        }    }    foreach (@$q){       if($$_{Seq} eq unpack('n',$seq)){                $$_{Ack}=1;                last;}    }    _add_to_queue($self, $queue);    #print "Ack cmd:$cmd ","seq:",unpack('n',$seq)," and time:",time,"\n";    return $self->$cmd;}sub _add_to_queue {    my ($self, $queue) = @_;    unshift @$queue, $self;    while(@$queue > $EventQueueSize) { pop @$queue };}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -