1 // $Id: AWOServerConfig.m,v 1.1 2004/06/08 11:06:00 helge Exp $
3 #include "AWOServerConfig.h"
5 #include <ApacheAPI/ApacheResourcePool.h>
6 #include <ApacheAPI/ApacheServer.h>
7 #include <ApacheAPI/ApacheCmdParms.h>
8 #include <NGObjWeb/WOApplication.h>
9 #include <NGObjWeb/WORequestHandler.h>
12 @implementation AWOServerConfig
14 - (id)initWithServer:(ApacheServer *)_server {
15 //NSLog(@"%s: init with server: %@", __PRETTY_FUNCTION__, _server);
16 self->appAlias = [[AliasMap alloc] initWithCapacity:8];
17 self->handlerAlias = [[AliasMap alloc] initWithCapacity:8];
21 - (id)initWithConfig:(AWOServerConfig *)_cfg {
22 if ((self = [self init])) {
23 self->appAlias = [[AliasMap alloc] initWithAliasMap:_cfg->appAlias];
25 [[AliasMap alloc] initWithAliasMap:_cfg->handlerAlias];
30 - (id)initWithBaseConfig:(AWOServerConfig *)_base
31 andConfig:(AWOServerConfig *)_new
33 if ((self = [self initWithConfig:_base])) {
34 [self->appAlias addEntriesFromAliasMap:_new->appAlias];
35 [self->handlerAlias addEntriesFromAliasMap:_new->handlerAlias];
41 RELEASE(self->appAlias);
42 RELEASE(self->handlerAlias);
46 + (id)mergeBaseConfig:(AWOServerConfig *)_base
47 withNewConfig:(AWOServerConfig *)_new
49 return [[[self alloc] initWithBaseConfig:_base andConfig:_new] autorelease];
52 - (NSString *)stringValue {
53 return [self description];
55 - (NSString *)description {
58 ms = [NSMutableString stringWithCapacity:64];
59 [ms appendFormat:@"<0x%p[%@]:", self, NSStringFromClass([self class])];
61 [ms appendFormat:@" appAlias=%@", self->appAlias];
63 [ms appendString:@">"];
69 - (id)SxApplicationAlias:(NSString *)_name:(NSString *)_uri {
72 if ((tmp = [self->appAlias uriForKey:_name baseURI:@"/"])) {
73 return [NSString stringWithFormat:@"app %@ already mapped to %@",
77 //[self logWithFormat:@"aliasing app %@ to %@", _name, _uri];
79 [self->appAlias mapKey:_name toURI:_uri];
81 return nil /* nil means 'no error' */;
84 - (id)SxHandlerAlias:(NSString *)_handler:(NSString *)_uri {
87 if ((tmp = [self->handlerAlias uriForKey:_handler baseURI:@"/"])) {
88 return [NSString stringWithFormat:@"handler %@ already mapped to %@",
92 //[self logWithFormat:@"aliasing handler %@ to %@", _handler, _uri];
94 [self->handlerAlias mapKey:_handler toURI:_uri];
96 return nil /* nil means 'no error' */;
99 - (id)LoadBundle:(NSString *)_bundleName {
100 [self logWithFormat:@"should load bundle %@", _bundleName];
104 @end /* AWOServerConfig */