use strict; package FlipDB; use Palm::Raw(); use vars qw( @ISA $CREATOR_ID $DB_NAME $DB_TYPE ); @ISA = qw( Palm::Raw ); $CREATOR_ID = "PILF"; $DB_TYPE = "DATA"; sub import { &Palm::PDB::RegisterPDBHandlers(__PACKAGE__, [ $CREATOR_ID, $DB_TYPE ], ); } sub new { my $classname = shift; my $self = $classname->SUPER::new(@_); $self->{creator} = $CREATOR_ID; $self->{type} = $DB_TYPE; $self->{attributes}{resource} = 0; $self->{records} = []; return $self; } sub new_Record { my $classname = shift; my $retval = $classname->SUPER::new_Record(@_); $retval->{known} = 0; $retval->{word1} = ""; $retval->{word2} = ""; return $retval; } sub ParseRecord { my $self = shift; my %record = @_; $record{known} = unpack "C", $record{data}; ($record{word1}, $record{word2}) = split "\0", substr($record{data},1); delete $record{data}; return \%record; } sub PackRecord { my $self = shift; my $record = shift; return pack "CZ*Z*", $record->{known}, $record->{word1}, $record->{word2}; } 1; __END__