Roxen.git/
server/
base_server/
roxen.pike
Branch:
Tag:
Non-build tags
All tags
No tags
2000-08-03
2000-08-03 06:06:11 by Martin Stjernholm <mast@lysator.liu.se>
f02f5c8dfe88423a12ae97898b806b9b7eea13e5 (
32
lines) (+
31
/-
1
)
[
Show
|
Annotate
]
Branch:
5.2
Added lookup of configurations from their names.
Rev: server/base_server/roxen.pike:1.515
4:
// Per Hedbor, Henrik Grubbström, Pontus Hagland, David Hedbor and others. // ABS and suicide systems contributed freely by Francesco Chemolli
-
constant cvs_version="$Id: roxen.pike,v 1.
514
2000/
07
/
31
00
:
57
:
49
nilsson
Exp $";
+
constant cvs_version="$Id: roxen.pike,v 1.
515
2000/
08
/
03
06
:
06
:
11
mast
Exp $";
// Used when running threaded to find out which thread is the backend thread, // for debug purposes only.
3024:
} if(modified) { configurations = new_confs;
+
fix_config_lookup();
config_stat_cache = config_cache; } }
-
+
private mapping(string:object/*(Configuration)*/) config_lookup = ([]);
+
// Maps config name to config object.
+
+
void fix_config_lookup()
+
{
+
config_lookup = mkmapping (configurations->name, configurations);
+
#ifdef DEBUG
+
if (sizeof (configurations) != sizeof (config_lookup))
+
error ("Duplicate configuration names in configurations array: %O",
+
configurations->name);
+
#endif
+
}
+
+
object/*(Configuration)*/ get_configuration (string name)
+
{
+
#ifdef DEBUG
+
if (sizeof (configurations) != sizeof (config_lookup))
+
error ("config_lookup out of synch with configurations.\n");
+
#endif
+
return config_lookup[name];
+
}
+
object enable_configuration(string name) {
-
+
#ifdef DEBUG
+
if (get_configuration (name))
+
error ("A configuration called %O already exists.\n", name);
+
#endif
object cf = Configuration( name ); configurations += ({ cf });
-
+
config_lookup[name] = cf;
return cf; }
3040:
{ array err; configurations = ({});
+
config_lookup = ([]);
foreach(list_all_configurations(), string config) {