use DB_File;
use DXDebug;
use Prefix;
-use JSON;
+use DXJSON;
use Data::Structure::Util qw(unbless);
use vars qw($qslfn $dbm $maxentries);
my $mode = shift;
my $ufn = localdata("$qslfn.v1j");
- $json = JSON->new->canonical(1);
+ $json = DXJSON->new;
Prefix::load() unless Prefix::loaded();
sub finish
{
+ dbg("DXQSL finished");
$dbm->sync;
undef $dbm;
untie %u;
return decode($value);
}
+
sub put
{
return unless $dbm;
# thaw the user
sub decode
{
- my $s = shift;
- my $ref;
- eval { $ref = $json->decode($s) };
- if ($ref && !$@) {
- return bless $ref, 'QSL';
- }
- return undef;
+ return $json->decode($_[0], __PACKAGE__);
}
# freeze the user
sub encode
{
- my $ref = shift;
- unbless($ref);
- my $s;
-
- eval {$s = $json->encode($ref) };
- if ($s && !$@) {
- bless $ref, 'QSL';
- return $s;
- }
+ return $json->encode($_[0]);
+}
+
+sub END
+{
+ if ($dbm) {
+ dbg "DXQSL ENDing";
+ finish();
+ }
}
1;