projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add NET::CIDR::Lite to the list of dependences
[spider.git]
/
perl
/
QSL.pm
diff --git
a/perl/QSL.pm
b/perl/QSL.pm
index d10345eda2ebbf70166ca9c42d91beae4e1e9acc..ec5512216f563ffe9929bad57253d9d87851799f 100644
(file)
--- a/
perl/QSL.pm
+++ b/
perl/QSL.pm
@@
-13,7
+13,7
@@
use DXUtil;
use DB_File;
use DXDebug;
use Prefix;
use DB_File;
use DXDebug;
use Prefix;
-use JSON;
+use
DX
JSON;
use Data::Structure::Util qw(unbless);
use vars qw($qslfn $dbm $maxentries);
use Data::Structure::Util qw(unbless);
use vars qw($qslfn $dbm $maxentries);
@@
-31,7
+31,7
@@
sub init
my $mode = shift;
my $ufn = localdata("$qslfn.v1j");
my $mode = shift;
my $ufn = localdata("$qslfn.v1j");
- $json =
JSON->new->canonical(1)
;
+ $json =
DXJSON->new
;
Prefix::load() unless Prefix::loaded();
Prefix::load() unless Prefix::loaded();
@@
-47,6
+47,7
@@
sub init
sub finish
{
sub finish
{
+ dbg("DXQSL finished");
$dbm->sync;
undef $dbm;
untie %u;
$dbm->sync;
undef $dbm;
untie %u;
@@
-120,6
+121,7
@@
sub get
return decode($value);
}
return decode($value);
}
+
sub put
{
return unless $dbm;
sub put
{
return unless $dbm;
@@
-138,27
+140,21
@@
sub remove_files
# thaw the user
sub decode
{
# 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
{
}
# 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;
}
1;