#!/usr/bin/perl
#
# xdump example program.
-# Copyright (C) 2006-2007 Markus Armbruster
+# Copyright (C) 2006-2021 Markus Armbruster
#
-# This program is free software; you can redistribute it and/or modify
+# Empire is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Connect to server, xdump everything into tables, then print the
# tables.
# Map table name to meta table reference
my %meta_by_name = ();
-# Map table uid to meta table reference
+# Map table UID to meta table reference
my @meta_by_uid = ();
# Map table name to table reference
my %table_by_name = ();
-# Map table uid to table reference
+# Map table UID to table reference
my @table_by_uid = ();
# The meta meta table
# xdump meta table
$meta_by_name{table} = [];
parse_xdump(send_cmd('xdump meta table'), undef);
- # table's first field is record uid, and its table field is the table uid:
+ # table's first field is record UID, and its table field is the table uid:
my $tuid = $meta_by_name{table}->[0]->{table};
$meta_by_uid[$tuid] = $meta_by_name{table};
# complete work for xdump meta meta
{
- # find the meta table uid
+ # find the meta table UID
my ($meta) = grep { defined $_ && $_->{name} eq 'meta' }
@{$table_by_name{table}};
my $tuid = $meta->{uid};
{
# lookup record with name => 'type' in meta meta:
my ($mmt) = grep {$_->{name} eq 'type'} @meta_meta;
- # its table field is uid of table meta-type:
+ # its table field is UID of table meta-type:
my $tuid = $mmt->{table};
# lookup table meta-type's name:
my $name = $table_by_name{table}->[$tuid]->{name};
parse_xdump(send_cmd("xdump $tab->{uid} *"), $tab->{uid});
}
-# xdump ver
-{
- # pick an unused tuid:
- my $tuid = $#meta_by_uid + 1;
- # hack the table of tables:
- push @{$table_by_name{table}}, {uid => $tuid, name => 'version'};
- # xdump meta ver
- $meta_by_uid[$tuid] = $meta_by_name{version} = [];
- parse_xdump(send_cmd('xdump meta ver'), $tuid);
- # xdump ver
- $table_by_uid[$tuid] = $table_by_name{version} = [];
- parse_xdump(send_cmd('xdump ver'), $tuid);
-}
-
$dumper->dumpValue(\@table_by_uid);
my $n = 0;
while ($data !~ /^\//) {
($_, $data) = split(/\n/, $data, 2);
- my @fld = split(/ /);
+ my @fld = split(/ /);
&$store_record($tuid, $meta, $name, $n, \@fld, $timestamp);
$n++;
}
}
sub has_record_uid {
- # a table has record uids if the first field's table is the table's uid
+ # a table has record UIDs if the first field's table is the table's UID
my ($tuid) = @_;
die unless defined $tuid;
die unless defined $meta_by_uid[$tuid];