36 |
|
|
37 |
sub readConf { |
sub readConf { |
38 |
my ($obj) = @_; |
my ($obj) = @_; |
39 |
$obj->{libconf}->readConf(); |
$obj->{libconf}->readConf; |
40 |
} |
} |
41 |
|
|
42 |
sub writeConf { |
sub writeConf { |
43 |
my ($obj) = @_; |
my ($obj) = @_; |
44 |
$obj->{libconf}->writeConf(); |
$obj->{libconf}->writeConf; |
45 |
} |
} |
46 |
|
|
47 |
package Libconf::Glueconf::Shell::Wrapper; |
package Libconf::Glueconf::Shell::Wrapper; |
50 |
|
|
51 |
sub TIEHASH { |
sub TIEHASH { |
52 |
my ($pkg, $libconf, $data_description, $data_mapping) = @_; |
my ($pkg, $libconf, $data_description, $data_mapping) = @_; |
53 |
debug; |
debug(); |
54 |
bless { |
bless { |
55 |
libconf => $libconf, |
libconf => $libconf, |
56 |
_data_description => $data_description, |
_data_description => $data_description, |
60 |
|
|
61 |
sub CLEAR { |
sub CLEAR { |
62 |
my ($obj) = @_; |
my ($obj) = @_; |
63 |
debug; |
debug(); |
64 |
$obj->{libconf}->clear(); |
$obj->{libconf}->clear; |
65 |
} |
} |
66 |
|
|
67 |
sub DELETE { |
sub DELETE { |
68 |
my ($obj, $key) = @_; |
my ($obj, $key) = @_; |
69 |
debug "key: $key"; |
debug("key: $key"); |
70 |
my @pos = $obj->{libconf}->findAtomPos( { type => 'KEY_VALUE', key => $key }); |
my @pos = $obj->{libconf}->findAtomPos( { type => 'KEY_VALUE', key => $key }); |
71 |
foreach (@pos) { |
foreach (@pos) { |
72 |
$obj->{libconf}->deleteAtom($_); |
$obj->{libconf}->deleteAtom($_); |
75 |
|
|
76 |
sub FIRSTKEY { |
sub FIRSTKEY { |
77 |
my ($obj) = @_; |
my ($obj) = @_; |
78 |
debug; |
debug(); |
79 |
my $atom = $obj->{libconf}->getAtom(0); |
my $atom = $obj->{libconf}->getAtom(0); |
80 |
$atom->{key}; |
$atom->{key}; |
81 |
} |
} |
82 |
|
|
83 |
sub EXISTS { |
sub EXISTS { |
84 |
my ($obj, $key) = @_; |
my ($obj, $key) = @_; |
85 |
debug "key : $key"; |
debug("key : $key"); |
86 |
my $pos = $obj->{libconf}->findAtomPos( { type => 'KEY_VALUE', key => $key }); |
my $pos = $obj->{libconf}->findAtomPos( { type => 'KEY_VALUE', key => $key }); |
87 |
defined $pos; |
defined $pos; |
88 |
} |
} |
89 |
|
|
90 |
sub NEXTKEY { |
sub NEXTKEY { |
91 |
my ($obj, $lastkey) = @_; |
my ($obj, $lastkey) = @_; |
92 |
debug "lastkey : $lastkey"; |
debug("lastkey : $lastkey"); |
93 |
my @pos = $obj->{libconf}->findAtomPos( { type => 'KEY_VALUE', key => $lastkey }); #FIXME : double entries should be removed elsewhere |
my @pos = $obj->{libconf}->findAtomPos( { type => 'KEY_VALUE', key => $lastkey }); #FIXME : double entries should be removed elsewhere |
94 |
$pos[-1]+1 >= $obj->{libconf}->size() and return undef; |
$pos[-1]+1 >= $obj->{libconf}->size and return undef; |
95 |
$obj->{libconf}->getAtom($pos[-1]+1)->{key}; |
$obj->{libconf}->getAtom($pos[-1]+1)->{key}; |
96 |
} |
} |
97 |
|
|
98 |
sub STORE { |
sub STORE { |
99 |
my ($obj, $key, $value) = @_; |
my ($obj, $key, $value) = @_; |
100 |
debug "key : $key - value : $value"; |
debug("key : $key - value : $value"); |
101 |
ref $value eq '' or die 'trying to store anything else than a value'; |
ref $value eq '' or die 'trying to store anything else than a value'; |
102 |
my $index; |
my $index; |
103 |
my @pos = $obj->{libconf}->findAtomPos({ type => 'KEY_VALUE', key => $key }); |
my @pos = $obj->{libconf}->findAtomPos({ type => 'KEY_VALUE', key => $key }); |
111 |
|
|
112 |
sub FETCH { |
sub FETCH { |
113 |
my ($obj, $key) = @_; |
my ($obj, $key) = @_; |
114 |
debug "key : $key"; |
debug("key : $key"); |
115 |
$key eq 'libconf' and return $obj->{libconf}; |
$key eq 'libconf' and return $obj->{libconf}; |
116 |
substr($key, 0, 1) eq '_' and return $obj->{$key}; |
substr($key, 0, 1) eq '_' and return $obj->{$key}; |
117 |
my @pos = $obj->{libconf}->findAtomPos({ type => 'KEY_VALUE', key => $key }); |
my @pos = $obj->{libconf}->findAtomPos({ type => 'KEY_VALUE', key => $key }); |