# Preloaded methods go here.
+sub open {
+ my ($class, $name) = @_;
+ my $ptr = Blerg::Database::_open($name);
+ my $obj = {
+ ptr => $ptr
+ };
+ return bless $obj, $class;
+}
+
+sub open_existing {
+ my ($class, $name) = @_;
+
+ if (Blerg::Database::exists($name)) {
+ return Blerg::Database::open($name);
+ }
+ return undef;
+}
+
+sub _ensure_pointer {
+ my ($obj) = @_;
+ if (!defined $obj->{ptr}) {
+ croak "Attempted to use closed Blerg::Database";
+ }
+}
+
+sub close {
+ my ($obj) = @_;
+ $obj->_ensure_pointer;
+ Blerg::Database::_close($obj->{ptr});
+ delete $obj->{ptr};
+}
+
+DESTROY {
+ my ($obj) = @_;
+ $obj->close;
+}
+
+sub store {
+ my ($obj, $data) = @_;
+ $obj->_ensure_pointer;
+ return Blerg::Database::_store($obj->{ptr}, $data);
+}
+
+sub fetch {
+ my ($obj, $record) = @_;
+ $obj->_ensure_pointer;
+ return Blerg::Database::_fetch($obj->{ptr}, $record);
+}
+
# Autoload methods go after =cut, and are processed by the autosplit program.
1;
=head1 AUTHOR
-Chip Black, E<lt>chip@slackware.lanE<gt>
+Chip Black, E<lt>bytex64@bytex64.netE<gt>
=head1 COPYRIGHT AND LICENSE