Changeset 1102
- Timestamp:
- 06/23/08 22:02:51 (4 months ago)
- Files:
-
- trunk/mango/net/http/server/HttpRequest.d (modified) (4 diffs)
- trunk/mango/net/servlet/ServletProvider.d (modified) (5 diffs)
- trunk/mango/net/servlet/ServletRequest.d (modified) (2 diffs)
- trunk/mango/net/servlet/model/IServletRequest.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/mango/net/http/server/HttpRequest.d
r1083 r1102 56 56 private HttpCookiesView cookies; 57 57 private StartLine startLine; 58 private void[] workspace; 58 59 59 60 static private InvalidStateException InvalidState; … … 79 80 **********************************************************************/ 80 81 81 this (ServiceBridge bridge )82 this (ServiceBridge bridge, uint reserved = 0) 82 83 { 83 84 super (bridge, null); … … 97 98 // Cookie parser. This is a wrapper around the Headers 98 99 cookies = new HttpCookiesView (getHeader); 100 101 // establish a per-request workspace? 102 if (reserved) 103 workspace = new void [reserved]; 99 104 } 100 105 … … 119 124 } 120 125 126 /********************************************************************** 127 128 Return the reserved space requested during construction. 129 This is a thread-safe place to stash application-specific 130 content, on a per request basis 131 132 **********************************************************************/ 133 134 void[] reserved () 135 { 136 return workspace; 137 } 138 121 139 /********************************************************************** 122 140 trunk/mango/net/servlet/ServletProvider.d
r1101 r1102 70 70 class ServletProvider : ServiceProvider 71 71 { 72 private Logger log; 73 private QueuedCache cache; 74 private HashMap contexts; 75 private ServletMapping[] mappings; 72 private Logger log; // log output 73 private QueuedCache cache; // url cache 74 private HashMap contexts; // context set 75 private ServletMapping[] mappings; // regex->servlets 76 private uint reserved; // request workspace 76 77 77 78 /********************************************************************** … … 83 84 **********************************************************************/ 84 85 85 this (Logger log, uint urls = 2048 )86 this (Logger log, uint urls = 2048, uint reserved=0) 86 87 { 87 88 assert (log); … … 98 99 addContext (new ServletContext ("", log)); 99 100 101 // remember reserved space 102 this.reserved = reserved; 103 100 104 // remember logger 101 105 this.log = log; … … 110 114 HttpRequest createRequest (ServiceBridge bridge) 111 115 { 112 return new ServletRequest (bridge);116 return new ServletRequest (bridge, reserved); 113 117 } 114 118 … … 121 125 HttpResponse createResponse (ServiceBridge bridge) 122 126 { 123 return new ServletResponse (bridge);127 return new ServletResponse (bridge); 124 128 } 125 129 trunk/mango/net/servlet/ServletRequest.d
r1072 r1102 41 41 **********************************************************************/ 42 42 43 this (ServiceBridge bridge )43 this (ServiceBridge bridge, uint reserved) 44 44 { 45 45 // initialize the HttpRequest 46 super (bridge );46 super (bridge, reserved); 47 47 } 48 48 … … 65 65 // reset HttpRequest 66 66 super.reset; 67 } 68 69 /********************************************************************** 70 71 Return the reserved space requested during construction. 72 This is a thread-safe place to stash application-specific 73 content, on a per request basis 74 75 **********************************************************************/ 76 77 void[] reserved () 78 { 79 return super.reserved; 67 80 } 68 81 trunk/mango/net/servlet/model/IServletRequest.d
r1072 r1102 143 143 144 144 char[] servletPath(); 145 146 /********************************************************************** 147 148 Return the reserved space requested during construction. 149 This is a thread-safe place to stash application-specific 150 content, on a per request basis 151 152 **********************************************************************/ 153 154 void[] reserved(); 145 155 }
