## xml file operations
###############################
+
sub deleteFile {
my $configFileName = $_[0];
my $configFile = $confDir . "/" . $configFileName;
my $register =
$xmltree->findnodes( "/MAPS/register[\@name='" . $registerName . "']" )
->shift();
+
+ die "Register $registerName not valid according to specification\n" unless(defined($register));
if ( $fieldName eq "" ) { # no field specified, remove whole register
if(defined ( $register ) ) {
# description: copys register "registerName" from $specTree to $configTree
# make change permanent by calling writeConfigFile() hereafter.
+sub specExists {
+ my $registerName = $_[0];
+ my $fieldName = $_[1];
+
+ my $specRegister =
+ $specTree->findnodes( "/MAPS/register[\@name='" . $registerName . "']" )
+ ->shift();
+ if( ($fieldName eq "*") and (defined($specRegister)) ) {
+ return 1;
+ }
+
+ my $field =
+ $specTree->findnodes( "/MAPS/register[\@name='"
+ . $registerName
+ . "']/field[\@name='"
+ . $fieldName
+ . "']" )->shift();
+
+ if ( defined($specRegister) and defined($field) ) {
+ return 1;
+ }
+ return 0;
+}
+# args: registerName, fieldName
+# globs: $specTree
+# description: returns 1 if registerName/fieldName combination exists in specification.
+# registerName/* is also allowed, will then check if register alone is defined
+
+
sub writeConfigFile(){
open( SCHREIBEN, "> $configFile" )
or print "could not open file $configFile for writing: $!\n";