package Net::Hotline::Protocol::Header; ## Copyright(c) 1998-2002 by John C. Siracusa. All rights reserved. This ## program is free software; you can redistribute it and/or modify it under ## the same terms as Perl itself. use strict; use vars qw($VERSION); $VERSION = '0.80'; sub new { my($class, $data) = @_; my($self); if(defined($data)) { $self = { 'TYPE' => substr($data, 0, 4), 'SEQ' => substr($data, 4, 4), 'TASK' => substr($data, 8, 4), 'LEN' => substr($data, 12, 4), 'LEN2' => substr($data, 16, 4) }; } else { $self = { 'TYPE' => 0x00000000, 'SEQ' => 0x00000000, 'TASK' => 0x00000000, 'LEN' => 0x00000000, 'LEN2' => 0x00000000 }; } bless $self, $class; return $self; } sub type { $_[0]->{'TYPE'} = $_[1] if(defined($_[1])); return $_[0]->{'TYPE'}; } sub seq { $_[0]->{'SEQ'} = $_[1] if(defined($_[1])); return $_[0]->{'SEQ'}; } sub task { $_[0]->{'TASK'} = $_[1] if(defined($_[1])); return $_[0]->{'TASK'}; } sub len { $_[0]->{'LEN'} = $_[1] if(defined($_[1])); return $_[0]->{'LEN'}; } sub len2 { $_[0]->{'LEN2'} = $_[1] if(defined($_[1])); return $_[0]->{'LEN2'}; } sub header { return pack("N5", $_[0]->{'TYPE'}, $_[0]->{'SEQ'}, $_[0]->{'TASK'}, $_[0]->{'LEN'}, $_[0]->{'LEN2'}); } 1;