]> err.no Git - sope/blob - Recycler/ApacheWO/AWOServerConfig.m
use %p for pointer formats
[sope] / Recycler / ApacheWO / AWOServerConfig.m
1 // $Id: AWOServerConfig.m,v 1.1 2004/06/08 11:06:00 helge Exp $
2
3 #include "AWOServerConfig.h"
4 #include "AliasMap.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>
10 #include "common.h"
11
12 @implementation AWOServerConfig
13
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];
18   return self;
19 }
20
21 - (id)initWithConfig:(AWOServerConfig *)_cfg {
22   if ((self = [self init])) {
23     self->appAlias = [[AliasMap alloc] initWithAliasMap:_cfg->appAlias];
24     self->handlerAlias = 
25       [[AliasMap alloc] initWithAliasMap:_cfg->handlerAlias];
26   }
27   return self;
28 }
29
30 - (id)initWithBaseConfig:(AWOServerConfig *)_base
31   andConfig:(AWOServerConfig *)_new
32 {
33   if ((self = [self initWithConfig:_base])) {
34     [self->appAlias addEntriesFromAliasMap:_new->appAlias];
35     [self->handlerAlias addEntriesFromAliasMap:_new->handlerAlias];
36   }
37   return self;
38 }
39
40 - (void)dealloc {
41   RELEASE(self->appAlias);
42   RELEASE(self->handlerAlias);
43   [super dealloc];
44 }
45
46 + (id)mergeBaseConfig:(AWOServerConfig *)_base
47   withNewConfig:(AWOServerConfig *)_new
48 {
49   return [[[self alloc] initWithBaseConfig:_base andConfig:_new] autorelease];
50 }
51
52 - (NSString *)stringValue {
53   return [self description];
54 }
55 - (NSString *)description {
56   NSMutableString *ms;
57   
58   ms = [NSMutableString stringWithCapacity:64];
59   [ms appendFormat:@"<0x%p[%@]:", self, NSStringFromClass([self class])];
60   
61   [ms appendFormat:@" appAlias=%@", self->appAlias];
62   
63   [ms appendString:@">"];
64   return ms;
65 }
66
67 /* commands */
68
69 - (id)SxApplicationAlias:(NSString *)_name:(NSString *)_uri {
70   NSString *tmp;
71   
72   if ((tmp = [self->appAlias uriForKey:_name baseURI:@"/"])) {
73     return [NSString stringWithFormat:@"app %@ already mapped to %@",
74                        _name, tmp];
75   }
76   
77   //[self logWithFormat:@"aliasing app %@ to %@", _name, _uri];
78   
79   [self->appAlias mapKey:_name toURI:_uri];
80   
81   return nil /* nil means 'no error' */;
82 }
83
84 - (id)SxHandlerAlias:(NSString *)_handler:(NSString *)_uri {
85   NSString *tmp;
86   
87   if ((tmp = [self->handlerAlias uriForKey:_handler baseURI:@"/"])) {
88     return [NSString stringWithFormat:@"handler %@ already mapped to %@",
89                        _handler, tmp];
90   }
91   
92   //[self logWithFormat:@"aliasing handler %@ to %@", _handler, _uri];
93   
94   [self->handlerAlias mapKey:_handler toURI:_uri];
95   
96   return nil /* nil means 'no error' */;
97 }
98
99 - (id)LoadBundle:(NSString *)_bundleName {
100   [self logWithFormat:@"should load bundle %@", _bundleName];
101   return nil;
102 }
103
104 @end /* AWOServerConfig */