[interchange-cvs] interchange - racke modified lib/Vend/Table/Shadow.pm

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Fri Apr 4 07:51:00 2003


User:      racke
Date:      2003-04-04 12:50:20 GMT
Modified:  lib/Vend/Table Shadow.pm
Log:
MAP_OPTIONS introduced, allow query of databases to be shared

Revision  Changes    Path
1.28      +31 -8     interchange/lib/Vend/Table/Shadow.pm


rev 1.28, prev_rev 1.27
Index: Shadow.pm
===================================================================
RCS file: /anon_cvs/repository/interchange/lib/Vend/Table/Shadow.pm,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- Shadow.pm	3 Apr 2003 21:30:22 -0000	1.27
+++ Shadow.pm	4 Apr 2003 12:50:20 -0000	1.28
@@ -1,6 +1,6 @@
 # Vend::Table::Shadow - Access a virtual "Shadow" table
 #
-# $Id: Shadow.pm,v 1.27 2003/04/03 21:30:22 racke Exp $
+# $Id: Shadow.pm,v 1.28 2003/04/04 12:50:20 racke Exp $
 #
 # Copyright (C) 2002-2003 Stefan Hornburg (Racke) <racke@linuxia.de>
 #
@@ -20,7 +20,7 @@
 # MA  02111-1307  USA.
 
 package Vend::Table::Shadow;
-$VERSION = substr(q$Revision: 1.27 $, 10);
+$VERSION = substr(q$Revision: 1.28 $, 10);
 
 # TODO
 #
@@ -292,18 +292,31 @@
 }
 
 sub _parse_config_line {
-	my ($d, $val) = @_;
+	my ($d, $p, $val) = @_;
 	my @f = split(/\s+/, $val);
 	my %parms;
+	my %map_global_options = (share => 0);
 	my %map_options = (fallback => 1);
 	my ($map_table, $map_column);
-			
+
+	::logError("Calling config: $p $val");
 	if (@f < 2) {
-		Vend::Config::config_error("At least two parameters needed for MAP.");
-	} elsif (@f == 2) {
-		@f = ($f[0], 'default', $f[1]);
+		Vend::Config::config_error("At least two parameters needed for $p.");
 	}
-
+	
+	if ($p eq 'MAP_OPTIONS') {
+		if ($f[0] eq 'share') {
+			if (@f != 3) {
+				Vend::Config::config_error("Two parameters needed for MAP option share");
+			}
+			$d->{MAP_OPTIONS}->{share}->{$f[1]} = $f[2];
+		} else {
+			Vend::Config::config_error("Unknown MAP option $f[0]");
+		}
+	} elsif ($p ne 'MAP') {
+		Vend::Config::config_error("Unknown MAP directive $p");
+	}
+	
 	my $field = shift @f;
 
 	if (@f % 2) {
@@ -480,6 +493,16 @@
 	}
 
 	return $value;
+}
+
+sub _shared_databases {
+	my ($s) = @_;
+	
+	if ($s->[$CONFIG]->{MAP_OPTIONS}->{share}) {
+		my $tables = $s->[$CONFIG]->{MAP_OPTIONS}->{share}->{$::Scratch->{mv_locale}};
+		::logError ("Tables: $tables");
+		return split(/[\s,]+/, $tables);
+	}
 }
 
 1;