opensim-development – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 eva 1 <?xml version="1.0"?>
2 <doc>
3 <assembly>
4 <name>HttpServer_OpenSim</name>
5 </assembly>
6 <members>
7 <member name="T:HttpServer.RealmHandler">
8 <summary>
9 Delegate used to find a realm/domain.
10 </summary>
11 <param name="domain"></param>
12 <returns></returns>
13 <remarks>
14 Realms are used during HTTP Authentication
15 </remarks>
16 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
17 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
18 </member>
19 <member name="T:HttpServer.HttpServer">
20 <summary>
21 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
22 </summary>
23 <example>
24 <code>
25 // this small example will add two web site modules, thus handling
26 // two different sites. In reality you should add Controller modules or something
27 // two the website modules to be able to handle different requests.
28 HttpServer server = new HttpServer();
29 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
30 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
31  
32 // start regular http
33 server.Start(IPAddress.Any, 80);
34  
35 // start https
36 server.Start(IPAddress.Any, 443, myCertificate);
37 </code>
38 </example>
39 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
40 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
41 <seealso cref="T:HttpServer.HttpListener"/>
42 </member>
43 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
44 <summary>
45 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
46 </summary>
47 <param name="provider">Used to get all components used in the server..</param>
48 </member>
49 <member name="M:HttpServer.HttpServer.#ctor">
50 <summary>
51 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
52 </summary>
53 </member>
54 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
55 <summary>
56 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
57 </summary>
58 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
59 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
60 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
61 </member>
62 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
63 <summary>
64 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
65 </summary>
66 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
67 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
68 </member>
69 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
70 <summary>
71 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
72 </summary>
73 <param name="logWriter">The log writer.</param>
74 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
75 </member>
76 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
77 <summary>
78 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
79 </summary>
80 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
81 <param name="logWriter">The log writer.</param>
82 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
83 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
84 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
85 </member>
86 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
87 <summary>
88 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
89 </summary>
90 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
91 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
92 <param name="logWriter">The log writer.</param>
93 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
94 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
95 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
96 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
97 </member>
98 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)">
99 <summary>
100 Adds the specified rule.
101 </summary>
102 <param name="rule">The rule.</param>
103 </member>
104 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
105 <summary>
106 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
107 </summary>
108 <param name="module">mode to add</param>
109 </member>
110 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
111 <summary>
112 Decodes the request body.
113 </summary>
114 <param name="request">The request.</param>
115 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
116 </member>
117 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
118 <summary>
119 Generate a HTTP error page (that will be added to the response body).
120 response status code is also set.
121 </summary>
122 <param name="response">Response that the page will be generated in.</param>
123 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
124 <param name="body">response body contents.</param>
125 </member>
126 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
127 <summary>
128 Generate a HTTP error page (that will be added to the response body).
129 response status code is also set.
130 </summary>
131 <param name="response">Response that the page will be generated in.</param>
132 <param name="err">exception.</param>
133 </member>
134 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
135 <summary>
136 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s.
137 </summary>
138 <param name="request">HTTP request</param>
139 <returns>domain/realm.</returns>
140 </member>
141 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
142 <summary>
143 Process an incoming request.
144 </summary>
145 <param name="context">connection to client</param>
146 <param name="request">request information</param>
147 <param name="response">response that should be filled</param>
148 <param name="session">session information</param>
149 </member>
150 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
151 <summary>
152 Can be overloaded to implement stuff when a client have been connected.
153 </summary>
154 <remarks>
155 Default implementation does nothing.
156 </remarks>
157 <param name="client">client that disconnected</param>
158 <param name="error">disconnect reason</param>
159 </member>
160 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
161 <summary>
162 Handle authentication
163 </summary>
164 <param name="request"></param>
165 <param name="response"></param>
166 <param name="session"></param>
167 <returns>true if request can be handled; false if not.</returns>
168 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
169 </member>
170 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
171 <summary>
172 Will request authentication.
173 </summary>
174 <remarks>
175 Sends respond to client, nothing else can be done with the response after this.
176 </remarks>
177 <param name="mod"></param>
178 <param name="request"></param>
179 <param name="response"></param>
180 </member>
181 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
182 <summary>
183 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
184 </summary>
185 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
186 <param name="args">The request.</param>
187 </member>
188 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
189 <summary>
190 To be able to track request count.
191 </summary>
192 <param name="context"></param>
193 <param name="request"></param>
194 </member>
195 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
196 <summary>
197 Start the web server using regular HTTP.
198 </summary>
199 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param>
200 <param name="port">Port to listen on. 80 can be a good idea =)</param>
201 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
202 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
203 </member>
204 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
205 <summary>
206 Accept secure connections.
207 </summary>
208 <param name="address">IP Address to listen on, use <see cref="F:System.Net.IPAddress.Any"/> to accept connections on all IP Addresses / network cards.</param>
209 <param name="port">Port to listen on. 80 can be a good idea =)</param>
210 <param name="certificate">Certificate to use</param>
211 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
212 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
213 </member>
214 <member name="M:HttpServer.HttpServer.Stop">
215 <summary>
216 shut down the server and listeners
217 </summary>
218 </member>
219 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
220 <summary>
221 write an entry to the log file
222 </summary>
223 <param name="prio">importance of the message</param>
224 <param name="message">log message</param>
225 </member>
226 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
227 <summary>
228 write an entry to the log file
229 </summary>
230 <param name="source">object that wrote the message</param>
231 <param name="prio">importance of the message</param>
232 <param name="message">log message</param>
233 </member>
234 <member name="P:HttpServer.HttpServer.Current">
235 <summary>
236 Server that is handling the current request.
237 </summary>
238 <remarks>
239 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object.
240 </remarks>
241 </member>
242 <member name="P:HttpServer.HttpServer.AuthenticationModules">
243 <summary>
244 Modules used for authentication. The module that is is added first is used as
245 the default authentication module.
246 </summary>
247 <remarks>Use the corresponding property
248 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks>
249 </member>
250 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
251 <summary>
252 Form decoder providers are used to decode request body (which normally contains form data).
253 </summary>
254 </member>
255 <member name="P:HttpServer.HttpServer.ServerName">
256 <summary>
257 Server name sent in HTTP responses.
258 </summary>
259 <remarks>
260 Do NOT include version in name, since it makes it
261 easier for hackers.
262 </remarks>
263 </member>
264 <member name="P:HttpServer.HttpServer.SessionCookieName">
265 <summary>
266 Name of cookie where session id is stored.
267 </summary>
268 </member>
269 <member name="P:HttpServer.HttpServer.LogWriter">
270 <summary>
271 Specified where logging should go.
272 </summary>
273 <seealso cref="T:HttpServer.NullLogWriter"/>
274 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
275 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
276 </member>
277 <member name="P:HttpServer.HttpServer.BackLog">
278 <summary>
279 Number of connections that can wait to be accepted by the server.
280 </summary>
281 <remarks>Default is 10.</remarks>
282 </member>
283 <member name="P:HttpServer.HttpServer.MaxRequestCount">
284 <summary>
285 Gets or sets maximum number of allowed simultaneous requests.
286 </summary>
287 <remarks>
288 <para>
289 This property is useful in busy systems. The HTTP server
290 will start queuing new requests if this limit is hit, instead
291 of trying to process all incoming requests directly.
292 </para>
293 <para>
294 The default number if allowed simultaneous requests are 10.
295 </para>
296 </remarks>
297 </member>
298 <member name="P:HttpServer.HttpServer.MaxQueueSize">
299 <summary>
300 Gets or sets maximum number of requests queuing to be handled.
301 </summary>
302 <remarks>
303 <para>
304 The WebServer will start turning requests away if response code
305 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
306 is too busy to be able to handle the request.
307 </para>
308 </remarks>
309 </member>
310 <member name="E:HttpServer.HttpServer.RealmWanted">
311 <summary>
312 Realms are used during HTTP authentication.
313 Default realm is same as server name.
314 </summary>
315 </member>
316 <member name="E:HttpServer.HttpServer.ExceptionThrown">
317 <summary>
318 Let's to receive unhandled exceptions from the threads.
319 </summary>
320 <remarks>
321 Exceptions will be thrown during debug mode if this event is not used,
322 exceptions will be printed to console and suppressed during release mode.
323 </remarks>
324 </member>
325 <member name="T:HttpServer.HttpModules.ResourceFileModule">
326 <summary>
327 Serves files that are stored in embedded resources.
328 </summary>
329 </member>
330 <member name="T:HttpServer.HttpModules.HttpModule">
331 <summary>
332 A HttpModule can be used to serve Uri's. The module itself
333 decides if it should serve a Uri or not. In this way, you can
334 get a very flexible http application since you can let multiple modules
335 serve almost similar urls.
336 </summary>
337 <remarks>
338 Throw <see cref="T:HttpServer.Exceptions.UnauthorizedException"/> if you are using a <see cref="T:HttpServer.Authentication.AuthenticationModule"/> and want to prompt for user name/password.
339 </remarks>
340 </member>
341 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
342 <summary>
343 Method that process the url
344 </summary>
345 <param name="request">Information sent by the browser about the request</param>
346 <param name="response">Information that is being sent back to the client.</param>
347 <param name="session">Session used to </param>
348 <returns>true if this module handled the request.</returns>
349 </member>
350 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
351 <summary>
352 Set the log writer to use.
353 </summary>
354 <param name="writer">logwriter to use.</param>
355 </member>
356 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
357 <summary>
358 Log something.
359 </summary>
360 <param name="prio">importance of log message</param>
361 <param name="message">message</param>
362 </member>
363 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
364 <summary>
365 If true specifies that the module doesn't consume the processing of a request so that subsequent modules
366 can continue processing afterwards. Default is false.
367 </summary>
368 </member>
369 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor">
370 <summary>
371 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
372 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
373 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
374 </summary>
375 </member>
376 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)">
377 <summary>
378 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
379 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
380 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
381 </summary>
382 <param name="logWriter">The log writer to use when logging events</param>
383 </member>
384 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes">
385 <summary>
386 Mimtypes that this class can handle per default
387 </summary>
388 </member>
389 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)">
390 <summary>
391 Loads resources from a namespace in the given assembly to an uri
392 </summary>
393 <param name="toUri">The uri to map the resources to</param>
394 <param name="fromAssembly">The assembly in which the resources reside</param>
395 <param name="fromNamespace">The namespace from which to load the resources</param>
396 <usage>
397 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
398  
399 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
400 </usage>
401 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
402 </member>
403 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
404 <summary>
405 Returns true if the module can handle the request
406 </summary>
407 </member>
408 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
409 <summary>
410 Method that process the url
411 </summary>
412 <param name="request">Information sent by the browser about the request</param>
413 <param name="response">Information that is being sent back to the client.</param>
414 <param name="session">Session used to </param>
415 <returns>true if this module handled the request.</returns>
416 </member>
417 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
418 <summary>
419 List with all mime-type that are allowed.
420 </summary>
421 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
422 </member>
423 <member name="T:HttpServer.HttpInput">
424 <summary>
425 Contains some kind of input from the browser/client.
426 can be QueryString, form data or any other request body content.
427 </summary>
428 </member>
429 <member name="T:HttpServer.IHttpInput">
430 <summary>
431 Base class for request data containers
432 </summary>
433 </member>
434 <member name="M:HttpServer.IHttpInput.Add(System.String,System.String)">
435 <summary>
436 Adds a parameter mapped to the presented name
437 </summary>
438 <param name="name">The name to map the parameter to</param>
439 <param name="value">The parameter value</param>
440 </member>
441 <member name="M:HttpServer.IHttpInput.Contains(System.String)">
442 <summary>
443 Returns true if the container contains the requested parameter
444 </summary>
445 <param name="name">Parameter id</param>
446 <returns>True if parameter exists</returns>
447 </member>
448 <member name="P:HttpServer.IHttpInput.Item(System.String)">
449 <summary>
450 Returns a request parameter
451 </summary>
452 <param name="name">The name associated with the parameter</param>
453 <returns></returns>
454 </member>
455 <member name="F:HttpServer.HttpInput.Empty">
456 <summary> Representation of a non-initialized class instance </summary>
457 </member>
458 <member name="F:HttpServer.HttpInput._ignoreChanges">
459 <summary> Variable telling the class that it is non-initialized <see cref="F:HttpServer.HttpInput.Empty"/> </summary>
460 </member>
461 <member name="M:HttpServer.HttpInput.#ctor(System.String)">
462 <summary>
463 Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class.
464 </summary>
465 <param name="name">form name.</param>
466 </member>
467 <member name="M:HttpServer.HttpInput.#ctor(System.String,System.Boolean)">
468 <summary>
469 Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class.
470 </summary>
471 <param name="name">form name.</param>
472 <param name="ignoreChanges">if set to <c>true</c> all changes will be ignored. </param>
473 <remarks>this constructor should only be used by Empty</remarks>
474 </member>
475 <member name="M:HttpServer.HttpInput.#ctor(HttpServer.HttpInput)">
476 <summary>Creates a deep copy of the HttpInput class</summary>
477 <param name="input">The object to copy</param>
478 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
479 </member>
480 <member name="M:HttpServer.HttpInput.Add(System.String,System.String)">
481 <summary>
482 Add a new element. Form array elements are parsed
483 and added in a correct hierarchy.
484 </summary>
485 <param name="name">Name is converted to lower case.</param>
486 <param name="value"></param>
487 <exception cref="T:System.ArgumentNullException"><c>name</c> is null.</exception>
488 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
489 </member>
490 <member name="M:HttpServer.HttpInput.Contains(System.String)">
491 <summary>
492 Returns true if the class contains a <see cref="T:HttpServer.HttpInput"/> with the corresponding name.
493 </summary>
494 <param name="name">The field/query string name</param>
495 <returns>True if the value exists</returns>
496 </member>
497 <member name="M:HttpServer.HttpInput.ParseItem(System.String,System.String)">
498 <summary>
499 Parses an item and returns it.
500 This function is primarily used to parse array items as in user[name].
501 </summary>
502 <param name="name"></param>
503 <param name="value"></param>
504 <returns></returns>
505 </member>
506 <member name="M:HttpServer.HttpInput.ToString">
507 <summary> Outputs the instance representing all its values joined together </summary>
508 <returns></returns>
509 </member>
510 <member name="M:HttpServer.HttpInput.ToString(System.Boolean)">
511 <summary>Returns all items as an unescaped query string.</summary>
512 <returns></returns>
513 </member>
514 <member name="M:HttpServer.HttpInput.ExtractOne(System.String)">
515 <summary>
516 Extracts one parameter from an array
517 </summary>
518 <param name="value">Containing the string array</param>
519 <returns>All but the first value</returns>
520 <example>
521 string test1 = ExtractOne("system[user][extension][id]");
522 string test2 = ExtractOne(test1);
523 string test3 = ExtractOne(test2);
524 // test1 = user[extension][id]
525 // test2 = extension[id]
526 // test3 = id
527 </example>
528 </member>
529 <member name="M:HttpServer.HttpInput.Clear">
530 <summary>Resets all data contained by class</summary>
531 </member>
532 <member name="M:HttpServer.HttpInput.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
533 <summary>
534 Returns an enumerator that iterates through the collection.
535 </summary>
536  
537 <returns>
538 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
539 </returns>
540 <filterpriority>1</filterpriority>
541 </member>
542 <member name="M:HttpServer.HttpInput.GetEnumerator">
543 <summary>
544 Returns an enumerator that iterates through a collection.
545 </summary>
546  
547 <returns>
548 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
549 </returns>
550 <filterpriority>2</filterpriority>
551 </member>
552 <member name="P:HttpServer.HttpInput.Name">
553 <summary>
554 Form name as lower case
555 </summary>
556 </member>
557 <member name="P:HttpServer.HttpInput.Item(System.String)">
558 <summary>
559 Get a form item.
560 </summary>
561 <param name="name"></param>
562 <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns>
563 </member>
564 <member name="T:HttpServer.Exceptions.ForbiddenException">
565 <summary>
566 The server understood the request, but is refusing to fulfill it.
567 Authorization will not help and the request SHOULD NOT be repeated.
568 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
569 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
570 available to the client, the status code 404 (Not Found) can be used instead.
571  
572 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
573 </summary>
574 </member>
575 <member name="T:HttpServer.Exceptions.HttpException">
576 <summary>
577 All HTTP based exceptions will derive this class.
578 </summary>
579 </member>
580 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
581 <summary>
582 Create a new HttpException
583 </summary>
584 <param name="code">http status code (sent in the response)</param>
585 <param name="message">error description</param>
586 </member>
587 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
588 <summary>
589 Create a new HttpException
590 </summary>
591 <param name="code">http status code (sent in the response)</param>
592 <param name="message">error description</param>
593 <param name="inner">inner exception</param>
594 </member>
595 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
596 <summary>
597 status code to use in the response.
598 </summary>
599 </member>
600 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
601 <summary>
602 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
603 </summary>
604 <param name="errorMsg">error message</param>
605 </member>
606 <member name="T:HttpServer.RequestCookies">
607 <summary>
608 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
609 The framework might switch class in the future and we dont want to have to replace all instances
610 </summary>
611 </member>
612 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
613 <summary>
614 Let's copy all the cookies.
615 </summary>
616 <param name="cookies">value from cookie header.</param>
617 </member>
618 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
619 <summary>
620 Adds a cookie in the collection.
621 </summary>
622 <param name="cookie">cookie to add</param>
623 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
624 </member>
625 <member name="M:HttpServer.RequestCookies.GetEnumerator">
626 <summary>
627 Gets a collection enumerator on the cookie list.
628 </summary>
629 <returns>collection enumerator</returns>
630 </member>
631 <member name="M:HttpServer.RequestCookies.Clear">
632 <summary>
633 Remove all cookies.
634 </summary>
635 </member>
636 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
637 <summary>
638 Returns an enumerator that iterates through the collection.
639 </summary>
640  
641 <returns>
642 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
643 </returns>
644 <filterpriority>1</filterpriority>
645 </member>
646 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
647 <summary>
648 Remove a cookie from the collection.
649 </summary>
650 <param name="cookieName">Name of cookie.</param>
651 </member>
652 <member name="P:HttpServer.RequestCookies.Count">
653 <summary>
654 Gets the count of cookies in the collection.
655 </summary>
656 </member>
657 <member name="P:HttpServer.RequestCookies.Item(System.String)">
658 <summary>
659 Gets the cookie of a given identifier (null if not existing).
660 </summary>
661 </member>
662 <member name="T:HttpServer.IHttpClientContext">
663 <summary>
664 Contains a connection to a browser/client.
665 </summary>
666 </member>
667 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
668 <summary>
669 Disconnect from client
670 </summary>
671 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
672 </member>
673 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
674 <summary>
675 Send a response.
676 </summary>
677 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
678 <param name="statusCode">HTTP status code</param>
679 <param name="reason">reason for the status code.</param>
680 <param name="body">HTML body contents, can be null or empty.</param>
681 <param name="contentType">A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty</param>
682 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
683 </member>
684 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
685 <summary>
686 Send a response.
687 </summary>
688 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
689 <param name="statusCode">HTTP status code</param>
690 <param name="reason">reason for the status code.</param>
691 </member>
692 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
693 <summary>
694 Send a response.
695 </summary>
696 <exception cref="T:System.ArgumentNullException"></exception>
697 </member>
698 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
699 <summary>
700 send a whole buffer
701 </summary>
702 <param name="buffer">buffer to send</param>
703 <exception cref="T:System.ArgumentNullException"></exception>
704 </member>
705 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
706 <summary>
707 Send data using the stream
708 </summary>
709 <param name="buffer">Contains data to send</param>
710 <param name="offset">Start position in buffer</param>
711 <param name="size">number of bytes to send</param>
712 <exception cref="T:System.ArgumentNullException"></exception>
713 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
714 </member>
715 <member name="M:HttpServer.IHttpClientContext.Close">
716 <summary>
717 Closes the streams and disposes of the unmanaged resources
718 </summary>
719 </member>
720 <member name="P:HttpServer.IHttpClientContext.Secured">
721 <summary>
722 Using SSL or other encryption method.
723 </summary>
724 </member>
725 <member name="P:HttpServer.IHttpClientContext.IsSecured">
726 <summary>
727 Using SSL or other encryption method.
728 </summary>
729 </member>
730 <member name="E:HttpServer.IHttpClientContext.Disconnected">
731 <summary>
732 The context have been disconnected.
733 </summary>
734 <remarks>
735 Event can be used to clean up a context, or to reuse it.
736 </remarks>
737 </member>
738 <member name="E:HttpServer.IHttpClientContext.RequestReceived">
739 <summary>
740 A request have been received in the context.
741 </summary>
742 </member>
743 <member name="T:HttpServer.DisconnectedEventArgs">
744 <summary>
745 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
746 </summary>
747 </member>
748 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
749 <summary>
750 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
751 </summary>
752 <param name="error">Reason to disconnection.</param>
753 </member>
754 <member name="P:HttpServer.DisconnectedEventArgs.Error">
755 <summary>
756 Gets reason to why client disconnected.
757 </summary>
758 </member>
759 <member name="T:HttpServer.RequestEventArgs">
760 <summary>
761  
762 </summary>
763 </member>
764 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
765 <summary>
766 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
767 </summary>
768 <param name="request">The request.</param>
769 </member>
770 <member name="P:HttpServer.RequestEventArgs.Request">
771 <summary>
772 Gets received request.
773 </summary>
774 </member>
775 <member name="T:HttpServer.HttpParam">
776 <summary>
777 Returns item either from a form or a query string (checks them in that order)
778 </summary>
779 </member>
780 <member name="F:HttpServer.HttpParam.Empty">
781 <summary> Representation of a non-initialized HttpParam </summary>
782 </member>
783 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)">
784 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary>
785 </member>
786 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)">
787 <summary>
788 The add method is not availible for HttpParam
789 since HttpParam checks both Request.Form and Request.QueryString
790 </summary>
791 <param name="name">name identifying the value</param>
792 <param name="value">value to add</param>
793 <exception cref="T:System.NotImplementedException"></exception>
794 </member>
795 <member name="M:HttpServer.HttpParam.Contains(System.String)">
796 <summary>
797 Checks whether the form or querystring has the specified value
798 </summary>
799 <param name="name">Name, case sensitive</param>
800 <returns>true if found; otherwise false.</returns>
801 </member>
802 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
803 <summary>
804 Returns an enumerator that iterates through the collection.
805 </summary>
806  
807 <returns>
808 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
809 </returns>
810 <filterpriority>1</filterpriority>
811 </member>
812 <member name="M:HttpServer.HttpParam.GetEnumerator">
813 <summary>
814 Returns an enumerator that iterates through a collection.
815 </summary>
816  
817 <returns>
818 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
819 </returns>
820 <filterpriority>2</filterpriority>
821 </member>
822 <member name="P:HttpServer.HttpParam.Item(System.String)">
823 <summary>
824 Fetch an item from the form or querystring (in that order).
825 </summary>
826 <param name="name"></param>
827 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
828 </member>
829 <member name="T:HttpServer.HttpFile">
830 <summary>
831 Container class for posted files
832 </summary>
833 </member>
834 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
835 <summary>
836 Creates a container for a posted file
837 </summary>
838 <param name="name">The identifier of the post field</param>
839 <param name="filename">The file path</param>
840 <param name="contentType">The content type of the file</param>
841 <param name="uploadFilename">The name of the file uploaded</param>
842 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
843 </member>
844 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
845 <summary>
846 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
847 </summary>
848 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
849 </member>
850 <member name="M:HttpServer.HttpFile.Finalize">
851 <summary>Destructor disposing the file</summary>
852 </member>
853 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
854 <summary>
855 Deletes the temporary file
856 </summary>
857 <param name="disposing">True if manual dispose</param>
858 </member>
859 <member name="M:HttpServer.HttpFile.Dispose">
860 <summary>
861 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
862 </summary>
863 </member>
864 <member name="P:HttpServer.HttpFile.Name">
865 <summary>
866 The name/id of the file
867 </summary>
868 </member>
869 <member name="P:HttpServer.HttpFile.Filename">
870 <summary>
871 The full file path
872 </summary>
873 </member>
874 <member name="P:HttpServer.HttpFile.UploadFilename">
875 <summary>
876 The name of the uploaded file
877 </summary>
878 </member>
879 <member name="P:HttpServer.HttpFile.ContentType">
880 <summary>
881 The type of file
882 </summary>
883 </member>
884 <member name="T:HttpServer.FormDecoders.XmlDecoder">
885 <summary>
886 This decoder converts XML documents to form items.
887 Each element becomes a subitem in the form, and each attribute becomes an item.
888 </summary>
889 <example>
890 // xml: <hello id="1">something<world id="2">data</world></hello>
891 // result:
892 // form["hello"].Value = "something"
893 // form["hello"]["id"].Value = 1
894 // form["hello"]["world]["id"].Value = 1
895 // form["hello"]["world"].Value = "data"
896 </example>
897 <remarks>
898 The original xml document is stored in form["__xml__"].Value.
899 </remarks>
900 </member>
901 <member name="T:HttpServer.FormDecoders.IFormDecoder">
902 <summary>
903 Interface for form content decoders.
904 </summary>
905 </member>
906 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
907 <summary>
908  
909 </summary>
910 <param name="stream">Stream containing the content</param>
911 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
912 <param name="encoding">Stream enconding</param>
913 <returns>A http form, or null if content could not be parsed.</returns>
914 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
915 </member>
916 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
917 <summary>
918 Checks if the decoder can handle the mime type
919 </summary>
920 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
921 <returns>True if the decoder can parse the specified content type</returns>
922 </member>
923 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
924 <summary>
925  
926 </summary>
927 <param name="stream">Stream containing the content</param>
928 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
929 <param name="encoding">Stream encoding</param>
930 Note: contentType and encoding are not used?
931 <returns>A http form, or null if content could not be parsed.</returns>
932 <exception cref="T:System.IO.InvalidDataException"></exception>
933 </member>
934 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
935 <summary>
936 Recursive function that will go through an xml element and store it's content
937 to the form item.
938 </summary>
939 <param name="item">(parent) Item in form that content should be added to.</param>
940 <param name="node">Node that should be parsed.</param>
941 </member>
942 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
943 <summary>
944 Checks if the decoder can handle the mime type
945 </summary>
946 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
947 <returns>True if the decoder can parse the specified content type</returns>
948 </member>
949 <member name="T:HttpServer.Helpers.ObjectForm">
950 <summary>
951 The object form class takes an object and creates form items for it.
952 </summary>
953 </member>
954 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)">
955 <summary>
956 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
957 </summary>
958 <param name="method"></param>
959 <param name="name">form name *and* id.</param>
960 <param name="action">action to do when form is posted.</param>
961 <param name="obj"></param>
962 </member>
963 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)">
964 <summary>
965 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
966 </summary>
967 <param name="name">form name *and* id.</param>
968 <param name="action">action to do when form is posted.</param>
969 <param name="obj">object to get values from</param>
970 </member>
971 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)">
972 <summary>
973 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
974 </summary>
975 <param name="action">form action.</param>
976 <param name="obj">object to get values from.</param>
977 </member>
978 <member name="M:HttpServer.Helpers.ObjectForm.Begin">
979 <summary>
980 write out the FORM-tag.
981 </summary>
982 <returns>generated html code</returns>
983 </member>
984 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)">
985 <summary>
986 Writeout the form tag
987 </summary>
988 <param name="isAjax">form should be posted through ajax.</param>
989 <returns>generated html code</returns>
990 </member>
991 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])">
992 <summary>
993 Generates a text box.
994 </summary>
995 <param name="propertyName"></param>
996 <param name="options"></param>
997 <returns>generated html code</returns>
998 </member>
999 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])">
1000 <summary>
1001 password box
1002 </summary>
1003 <param name="propertyName"></param>
1004 <param name="options"></param>
1005 <returns>generated html code</returns>
1006 </member>
1007 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])">
1008 <summary>
1009 Hiddens the specified property name.
1010 </summary>
1011 <param name="propertyName">Name of the property.</param>
1012 <param name="options">The options.</param>
1013 <returns>generated html code</returns>
1014 </member>
1015 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)">
1016 <summary>
1017 Labels the specified property name.
1018 </summary>
1019 <param name="propertyName">property in object.</param>
1020 <param name="label">caption</param>
1021 <returns>generated html code</returns>
1022 </member>
1023 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])">
1024 <summary>
1025 Generate a checkbox
1026 </summary>
1027 <param name="propertyName">property in object</param>
1028 <param name="value">checkbox value</param>
1029 <param name="options">additional html attributes.</param>
1030 <returns>generated html code</returns>
1031 </member>
1032 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])">
1033 <summary>
1034 Write a html select tag
1035 </summary>
1036 <param name="propertyName">object property.</param>
1037 <param name="idColumn">id column</param>
1038 <param name="titleColumn">The title column.</param>
1039 <param name="options">The options.</param>
1040 <returns></returns>
1041 </member>
1042 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])">
1043 <summary>
1044 Selects the specified property name.
1045 </summary>
1046 <param name="propertyName">Name of the property.</param>
1047 <param name="items">The items.</param>
1048 <param name="idColumn">The id column.</param>
1049 <param name="titleColumn">The title column.</param>
1050 <param name="options">The options.</param>
1051 <returns></returns>
1052 </member>
1053 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)">
1054 <summary>
1055 Write a submit tag.
1056 </summary>
1057 <param name="value">button caption</param>
1058 <returns>html submit tag</returns>
1059 </member>
1060 <member name="M:HttpServer.Helpers.ObjectForm.End">
1061 <summary>
1062 html end form tag
1063 </summary>
1064 <returns>html</returns>
1065 </member>
1066 <member name="T:HttpServer.FormDecoders.MultipartDecoder">
1067 <summary>
1068  
1069 </summary>
1070 <remarks>
1071 http://www.faqs.org/rfcs/rfc1867.html
1072 </remarks>
1073 </member>
1074 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType">
1075 <summary>
1076 multipart/form-data
1077 </summary>
1078 </member>
1079 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData">
1080 <summary>
1081 form-data
1082 </summary>
1083 </member>
1084 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
1085 <summary>
1086  
1087 </summary>
1088 <param name="stream">Stream containing the content</param>
1089 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
1090 <param name="encoding">Stream enconding</param>
1091 <returns>A http form, or null if content could not be parsed.</returns>
1092 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
1093 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception>
1094 </member>
1095 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)">
1096 <summary>
1097 Checks if the decoder can handle the mime type
1098 </summary>
1099 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
1100 <returns>True if the decoder can parse the specified content type</returns>
1101 </member>
1102 <member name="T:HttpServer.Exceptions.BadRequestException">
1103 <summary>
1104 The request could not be understood by the server due to malformed syntax.
1105 The client SHOULD NOT repeat the request without modifications.
1106  
1107 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
1108 </summary>
1109 </member>
1110 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)">
1111 <summary>
1112 Create a new bad request exception.
1113 </summary>
1114 <param name="errMsg">reason to why the request was bad.</param>
1115 </member>
1116 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)">
1117 <summary>
1118 Create a new bad request exception.
1119 </summary>
1120 <param name="errMsg">reason to why the request was bad.</param>
1121 <param name="inner">inner exception</param>
1122 </member>
1123 <member name="T:HttpServer.ResponseCookies">
1124 <summary>
1125 Cookies that should be set.
1126 </summary>
1127 </member>
1128 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
1129 <summary>
1130 Adds a cookie in the collection.
1131 </summary>
1132 <param name="cookie">cookie to add</param>
1133 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
1134 </member>
1135 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)">
1136 <summary>
1137 Copy a request cookie
1138 </summary>
1139 <param name="cookie"></param>
1140 <param name="expires">When the cookie should expire</param>
1141 </member>
1142 <member name="M:HttpServer.ResponseCookies.GetEnumerator">
1143 <summary>
1144 Gets a collection enumerator on the cookie list.
1145 </summary>
1146 <returns>collection enumerator</returns>
1147 </member>
1148 <member name="M:HttpServer.ResponseCookies.Clear">
1149 <summary>
1150 Remove all cookies
1151 </summary>
1152 </member>
1153 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator">
1154 <summary>
1155 Returns an enumerator that iterates through the collection.
1156 </summary>
1157  
1158 <returns>
1159 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
1160 </returns>
1161 <filterpriority>1</filterpriority>
1162 </member>
1163 <member name="P:HttpServer.ResponseCookies.Count">
1164 <summary>
1165 Gets the count of cookies in the collection.
1166 </summary>
1167 </member>
1168 <member name="P:HttpServer.ResponseCookies.Item(System.String)">
1169 <summary>
1170 Gets the cookie of a given identifier (null if not existing).
1171 </summary>
1172 </member>
1173 <member name="T:HttpServer.ResponseCookie">
1174 <summary>
1175 cookie being sent back to the browser.
1176 </summary>
1177 <seealso cref="T:HttpServer.ResponseCookie"/>
1178 </member>
1179 <member name="T:HttpServer.RequestCookie">
1180 <summary>
1181 cookie sent by the client/browser
1182 </summary>
1183 <seealso cref="T:HttpServer.ResponseCookie"/>
1184 </member>
1185 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)">
1186 <summary>
1187 Constructor.
1188 </summary>
1189 <param name="id">cookie identifier</param>
1190 <param name="content">cookie content</param>
1191 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
1192 <exception cref="T:System.ArgumentException">id is empty</exception>
1193 </member>
1194 <member name="M:HttpServer.RequestCookie.ToString">
1195 <summary>
1196 Gets the cookie HTML representation.
1197 </summary>
1198 <returns>cookie string</returns>
1199 </member>
1200 <member name="P:HttpServer.RequestCookie.Name">
1201 <summary>
1202 Gets the cookie identifier.
1203 </summary>
1204 </member>
1205 <member name="P:HttpServer.RequestCookie.Value">
1206 <summary>
1207 Cookie value. Set to null to remove cookie.
1208 </summary>
1209 </member>
1210 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
1211 <summary>
1212 Constructor.
1213 </summary>
1214 <param name="id">cookie identifier</param>
1215 <param name="content">cookie content</param>
1216 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
1217 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
1218 <exception cref="T:System.ArgumentException">id is empty</exception>
1219 </member>
1220 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
1221 <summary>
1222 Create a new cookie
1223 </summary>
1224 <param name="name">name identifying the cookie</param>
1225 <param name="value">cookie value</param>
1226 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
1227 <param name="path">Path to where the cookie is valid</param>
1228 <param name="domain">Domain that the cookie is valid for.</param>
1229 </member>
1230 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
1231 <summary>
1232 Create a new cookie
1233 </summary>
1234 <param name="cookie">Name and value will be used</param>
1235 <param name="expires">when the cookie expires.</param>
1236 </member>
1237 <member name="M:HttpServer.ResponseCookie.ToString">
1238 <summary>
1239 Gets the cookie HTML representation.
1240 </summary>
1241 <returns>cookie string</returns>
1242 </member>
1243 <member name="P:HttpServer.ResponseCookie.Expires">
1244 <summary>
1245 When the cookie expires.
1246 DateTime.MinValue means that the cookie expires when the session do so.
1247 </summary>
1248 </member>
1249 <member name="P:HttpServer.ResponseCookie.Path">
1250 <summary>
1251 Cookie is only valid under this path.
1252 </summary>
1253 </member>
1254 <member name="T:HttpServer.IComponentProvider">
1255 <summary>
1256 Inversion of control interface.
1257 </summary>
1258 </member>
1259 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
1260 <summary>
1261 Add a component instance
1262 </summary>
1263 <typeparam name="T">Interface type</typeparam>
1264 <param name="instance">Instance to add</param>
1265 </member>
1266 <member name="M:HttpServer.IComponentProvider.Get``1">
1267 <summary>
1268 Get a component.
1269 </summary>
1270 <typeparam name="T">Interface type</typeparam>
1271 <returns>Component if registered, otherwise null.</returns>
1272 <remarks>
1273 Component will get created if needed.
1274 </remarks>
1275 </member>
1276 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
1277 <summary>
1278 Checks if the specified component interface have been added.
1279 </summary>
1280 <param name="interfaceType"></param>
1281 <returns>true if found; otherwise false.</returns>
1282 </member>
1283 <member name="M:HttpServer.IComponentProvider.Add``2">
1284 <summary>
1285 Add a component.
1286 </summary>
1287 <typeparam name="InterfaceType">Type being requested.</typeparam>
1288 <typeparam name="InstanceType">Type being created.</typeparam>
1289 </member>
1290 <member name="T:HttpServer.HttpListenerBase">
1291 <summary>
1292 Contains a listener that doesn't do anything with the connections.
1293 </summary>
1294 </member>
1295 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
1296 <summary>
1297 Listen for regular HTTP connections
1298 </summary>
1299 <param name="address">IP Address to accept connections on</param>
1300 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
1301 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1302 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
1303 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1304 </member>
1305 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
1306 <summary>
1307 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
1308 </summary>
1309 <param name="address">IP Address to accept connections on</param>
1310 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
1311 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1312 <param name="certificate">Certificate to use</param>
1313 </member>
1314 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
1315 <summary>
1316 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
1317 </summary>
1318 <param name="address">IP Address to accept connections on</param>
1319 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
1320 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1321 <param name="certificate">Certificate to use</param>
1322 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
1323 </member>
1324 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
1325 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
1326 </member>
1327 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
1328 <summary>
1329 Will try to accept connections one more time.
1330 </summary>
1331 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
1332 </member>
1333 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
1334 <summary>
1335 Can be used to create filtering of new connections.
1336 </summary>
1337 <param name="socket">Accepted socket</param>
1338 <returns>true if connection can be accepted; otherwise false.</returns>
1339 </member>
1340 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
1341 <summary>
1342 Start listen for new connections
1343 </summary>
1344 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
1345 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
1346 </member>
1347 <member name="M:HttpServer.HttpListenerBase.Stop">
1348 <summary>
1349 Stop the listener
1350 </summary>
1351 <exception cref="T:System.Net.Sockets.SocketException"></exception>
1352 </member>
1353 <member name="P:HttpServer.HttpListenerBase.LogWriter">
1354 <summary>
1355 Gives you a change to receive log entries for all internals of the HTTP library.
1356 </summary>
1357 <remarks>
1358 You may not switch log writer after starting the listener.
1359 </remarks>
1360 </member>
1361 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
1362 <summary>
1363 True if we should turn on trace logs.
1364 </summary>
1365 </member>
1366 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
1367 <summary>
1368 Catch exceptions not handled by the listener.
1369 </summary>
1370 <remarks>
1371 Exceptions will be thrown during debug mode if this event is not used,
1372 exceptions will be printed to console and suppressed during release mode.
1373 </remarks>
1374 </member>
1375 <member name="E:HttpServer.HttpListenerBase.RequestReceived">
1376 <summary>
1377 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
1378 </summary>
1379 </member>
1380 <member name="T:HttpServer.HttpListener">
1381 <summary>
1382 New implementation of the HTTP listener.
1383 </summary>
1384 <remarks>
1385 Use the <c>Create</c> methods to create a default listener.
1386 </remarks>
1387 </member>
1388 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
1389 <summary>
1390 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
1391 </summary>
1392 <param name="address">IP Address to accept connections on</param>
1393 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
1394 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1395 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
1396 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1397 </member>
1398 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
1399 <summary>
1400 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
1401 </summary>
1402 <param name="address">The address.</param>
1403 <param name="port">The port.</param>
1404 <param name="factory">The factory.</param>
1405 <param name="certificate">The certificate.</param>
1406 </member>
1407 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
1408 <summary>
1409 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
1410 </summary>
1411 <param name="address">The address.</param>
1412 <param name="port">The port.</param>
1413 <param name="factory">The factory.</param>
1414 <param name="certificate">The certificate.</param>
1415 <param name="protocol">The protocol.</param>
1416 </member>
1417 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)">
1418 <summary>
1419 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
1420 </summary>
1421 <param name="address">Address that the listener should accept connections on.</param>
1422 <param name="port">Port that listener should accept connections on.</param>
1423 <returns>Created HTTP listener.</returns>
1424 </member>
1425 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
1426 <summary>
1427 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
1428 </summary>
1429 <param name="address">Address that the listener should accept connections on.</param>
1430 <param name="port">Port that listener should accept connections on.</param>
1431 <param name="certificate">Certificate to use</param>
1432 <returns>Created HTTP listener.</returns>
1433 </member>
1434 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
1435 <summary>
1436 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
1437 </summary>
1438 <param name="address">Address that the listener should accept connections on.</param>
1439 <param name="port">Port that listener should accept connections on.</param>
1440 <param name="certificate">Certificate to use</param>
1441 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
1442 <returns>Created HTTP listener.</returns>
1443 </member>
1444 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)">
1445 <summary>
1446 Can be used to create filtering of new connections.
1447 </summary>
1448 <param name="socket">Accepted socket</param>
1449 <returns>
1450 true if connection can be accepted; otherwise false.
1451 </returns>
1452 </member>
1453 <member name="E:HttpServer.HttpListener.Accepted">
1454 <summary>
1455 A client have been accepted, but not handled, by the listener.
1456 </summary>
1457 </member>
1458 <member name="T:HttpServer.Rules.RedirectRule">
1459 <summary>
1460 redirects from one URL to another.
1461 </summary>
1462 </member>
1463 <member name="T:HttpServer.Rules.IRule">
1464 <summary>
1465 Rules are used to perform operations before a request is being handled.
1466 Rules can be used to create routing etc.
1467 </summary>
1468 </member>
1469 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
1470 <summary>
1471 Process the incoming request.
1472 </summary>
1473 <param name="request">incoming HTTP request</param>
1474 <param name="response">outgoing HTTP response</param>
1475 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
1476 <remarks>
1477 returning true means that no modules will get the request. Returning true is typically being done
1478 for redirects.
1479 </remarks>
1480 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
1481 </member>
1482 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)">
1483 <summary>
1484 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
1485 </summary>
1486 <param name="fromUrl">Absolute path (no server name)</param>
1487 <param name="toUrl">Absolute path (no server name)</param>
1488 <example>
1489 server.Add(new RedirectRule("/", "/user/index"));
1490 </example>
1491 </member>
1492 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)">
1493 <summary>
1494 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
1495 </summary>
1496 <param name="fromUrl">Absolute path (no server name)</param>
1497 <param name="toUrl">Absolute path (no server name)</param>
1498 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
1499 <example>
1500 server.Add(new RedirectRule("/", "/user/index"));
1501 </example>
1502 </member>
1503 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
1504 <summary>
1505 Process the incoming request.
1506 </summary>
1507 <param name="request">incoming HTTP request</param>
1508 <param name="response">outgoing HTTP response</param>
1509 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
1510 <remarks>
1511 returning true means that no modules will get the request. Returning true is typically being done
1512 for redirects.
1513 </remarks>
1514 </member>
1515 <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
1516 <summary>
1517 Gets string to match request URI with.
1518 </summary>
1519 <remarks>Is compared to request.Uri.AbsolutePath</remarks>
1520 </member>
1521 <member name="P:HttpServer.Rules.RedirectRule.ToUrl">
1522 <summary>
1523 Gets where to redirect.
1524 </summary>
1525 </member>
1526 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect">
1527 <summary>
1528 Gets whether server should redirect client.
1529 </summary>
1530 <remarks>
1531 <c>false</c> means that the rule will replace
1532 the current request URI with the new one from this class.
1533 <c>true</c> means that a redirect response is sent to the client.
1534 </remarks>
1535 </member>
1536 <member name="T:HttpServer.Parser.HttpRequestParser">
1537 <summary>
1538 Parses a HTTP request directly from a stream
1539 </summary>
1540 </member>
1541 <member name="T:HttpServer.IHttpRequestParser">
1542 <summary>
1543 Event driven parser used to parse incoming HTTP requests.
1544 </summary>
1545 <remarks>
1546 The parser supports partial messages and keeps the states between
1547 each parsed buffer. It's therefore important that the parser gets
1548 <see cref="M:HttpServer.IHttpRequestParser.Clear"/>ed if a client disconnects.
1549 </remarks>
1550 </member>
1551 <member name="M:HttpServer.IHttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
1552 <summary>
1553 Parse partial or complete message.
1554 </summary>
1555 <param name="buffer">buffer containing incoming bytes</param>
1556 <param name="offset">where in buffer that parsing should start</param>
1557 <param name="count">number of bytes to parse</param>
1558 <returns>Unparsed bytes left in buffer.</returns>
1559 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
1560 </member>
1561 <member name="M:HttpServer.IHttpRequestParser.Clear">
1562 <summary>
1563 Clear parser state.
1564 </summary>
1565 </member>
1566 <member name="P:HttpServer.IHttpRequestParser.CurrentState">
1567 <summary>
1568 Current state in parser.
1569 </summary>
1570 </member>
1571 <member name="E:HttpServer.IHttpRequestParser.RequestCompleted">
1572 <summary>
1573 A request have been successfully parsed.
1574 </summary>
1575 </member>
1576 <member name="E:HttpServer.IHttpRequestParser.BodyBytesReceived">
1577 <summary>
1578 More body bytes have been received.
1579 </summary>
1580 </member>
1581 <member name="E:HttpServer.IHttpRequestParser.RequestLineReceived">
1582 <summary>
1583 Request line have been received.
1584 </summary>
1585 </member>
1586 <member name="E:HttpServer.IHttpRequestParser.HeaderReceived">
1587 <summary>
1588 A header have been received.
1589 </summary>
1590 </member>
1591 <member name="P:HttpServer.IHttpRequestParser.LogWriter">
1592 <summary>
1593 Gets or sets the log writer.
1594 </summary>
1595 </member>
1596 <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)">
1597 <summary>
1598 Create a new request parser
1599 </summary>
1600 <param name="logWriter">delegate receiving log entries.</param>
1601 </member>
1602 <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)">
1603 <summary>
1604 Add a number of bytes to the body
1605 </summary>
1606 <param name="buffer">buffer containing more body bytes.</param>
1607 <param name="offset">starting offset in buffer</param>
1608 <param name="count">number of bytes, from offset, to read.</param>
1609 <returns>offset to continue from.</returns>
1610 </member>
1611 <member name="M:HttpServer.Parser.HttpRequestParser.Clear">
1612 <summary>
1613 Remove all state information for the request.
1614 </summary>
1615 </member>
1616 <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)">
1617 <summary>
1618 Parse request line
1619 </summary>
1620 <param name="value"></param>
1621 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
1622 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
1623 </member>
1624 <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)">
1625 <summary>
1626 We've parsed a new header.
1627 </summary>
1628 <param name="name">Name in lower case</param>
1629 <param name="value">Value, unmodified.</param>
1630 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
1631 </member>
1632 <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
1633 <summary>
1634 Parse a message
1635 </summary>
1636 <param name="buffer">bytes to parse.</param>
1637 <param name="offset">where in buffer that parsing should start</param>
1638 <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param>
1639 <returns>offset (where to start parsing next).</returns>
1640 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
1641 </member>
1642 <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter">
1643 <summary>
1644 Gets or sets the log writer.
1645 </summary>
1646 </member>
1647 <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState">
1648 <summary>
1649 Current state in parser.
1650 </summary>
1651 </member>
1652 <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted">
1653 <summary>
1654 A request have been successfully parsed.
1655 </summary>
1656 </member>
1657 <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived">
1658 <summary>
1659 More body bytes have been received.
1660 </summary>
1661 </member>
1662 <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived">
1663 <summary>
1664 Request line have been received.
1665 </summary>
1666 </member>
1667 <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived">
1668 <summary>
1669 A header have been received.
1670 </summary>
1671 </member>
1672 <member name="T:HttpServer.LocklessQueue`1">
1673 <summary>
1674 A thread-safe lockless queue that supports multiple readers and
1675 multiple writers
1676 </summary>
1677 </member>
1678 <member name="F:HttpServer.LocklessQueue`1.head">
1679 <summary>Queue head</summary>
1680 </member>
1681 <member name="F:HttpServer.LocklessQueue`1.tail">
1682 <summary>Queue tail</summary>
1683 </member>
1684 <member name="F:HttpServer.LocklessQueue`1.count">
1685 <summary>Queue item count</summary>
1686 </member>
1687 <member name="M:HttpServer.LocklessQueue`1.#ctor">
1688 <summary>
1689 Constructor
1690 </summary>
1691 </member>
1692 <member name="M:HttpServer.LocklessQueue`1.Enqueue(`0)">
1693 <summary>
1694 Enqueue an item
1695 </summary>
1696 <param name="item">Item to enqeue</param>
1697 </member>
1698 <member name="M:HttpServer.LocklessQueue`1.TryDequeue(`0@)">
1699 <summary>
1700 Try to dequeue an item
1701 </summary>
1702 <param name="item">Dequeued item if the dequeue was successful</param>
1703 <returns>True if an item was successfully deqeued, otherwise false</returns>
1704 </member>
1705 <member name="P:HttpServer.LocklessQueue`1.Count">
1706 <summary>Gets the current number of items in the queue. Since this
1707 is a lockless collection this value should be treated as a close
1708 estimate</summary>
1709 </member>
1710 <member name="T:HttpServer.LocklessQueue`1.SingleLinkNode">
1711 <summary>
1712 Provides a node container for data in a singly linked list
1713 </summary>
1714 </member>
1715 <member name="F:HttpServer.LocklessQueue`1.SingleLinkNode.Next">
1716 <summary>Pointer to the next node in list</summary>
1717 </member>
1718 <member name="F:HttpServer.LocklessQueue`1.SingleLinkNode.Item">
1719 <summary>The data contained by the node</summary>
1720 </member>
1721 <member name="M:HttpServer.LocklessQueue`1.SingleLinkNode.#ctor">
1722 <summary>
1723 Constructor
1724 </summary>
1725 </member>
1726 <member name="M:HttpServer.LocklessQueue`1.SingleLinkNode.#ctor(`0)">
1727 <summary>
1728 Constructor
1729 </summary>
1730 </member>
1731 <member name="T:HttpServer.IHttpRequest">
1732 <summary>
1733 Contains server side HTTP request information.
1734 </summary>
1735 </member>
1736 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
1737 <summary>
1738 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
1739 </summary>
1740 <param name="name">Name of the header, should not be URL encoded</param>
1741 <param name="value">Value of the header, should not be URL encoded</param>
1742 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
1743 </member>
1744 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
1745 <summary>
1746 Add bytes to the body
1747 </summary>
1748 <param name="bytes">buffer to read bytes from</param>
1749 <param name="offset">where to start read</param>
1750 <param name="length">number of bytes to read</param>
1751 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
1752 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
1753 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
1754 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
1755 </member>
1756 <member name="M:HttpServer.IHttpRequest.Clear">
1757 <summary>
1758 Clear everything in the request
1759 </summary>
1760 </member>
1761 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
1762 <summary>
1763 Decode body into a form.
1764 </summary>
1765 <param name="providers">A list with form decoders.</param>
1766 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
1767 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
1768 </member>
1769 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
1770 <summary>
1771 Sets the cookies.
1772 </summary>
1773 <param name="cookies">The cookies.</param>
1774 </member>
1775 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
1776 <summary>
1777 Create a response object.
1778 </summary>
1779 <param name="context">Context for the connected client.</param>
1780 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
1781 </member>
1782 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
1783 <summary>
1784 Gets kind of types accepted by the client.
1785 </summary>
1786 </member>
1787 <member name="P:HttpServer.IHttpRequest.Body">
1788 <summary>
1789 Gets or sets body stream.
1790 </summary>
1791 </member>
1792 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
1793 <summary>
1794 Gets whether the body is complete.
1795 </summary>
1796 </member>
1797 <member name="P:HttpServer.IHttpRequest.Connection">
1798 <summary>
1799 Gets or sets kind of connection used for the session.
1800 </summary>
1801 </member>
1802 <member name="P:HttpServer.IHttpRequest.ContentLength">
1803 <summary>
1804 Gets or sets number of bytes in the body.
1805 </summary>
1806 </member>
1807 <member name="P:HttpServer.IHttpRequest.Cookies">
1808 <summary>
1809 Gets cookies that was sent with the request.
1810 </summary>
1811 </member>
1812 <member name="P:HttpServer.IHttpRequest.Form">
1813 <summary>
1814 Gets form parameters.
1815 </summary>
1816 </member>
1817 <member name="P:HttpServer.IHttpRequest.Headers">
1818 <summary>
1819 Gets headers sent by the client.
1820 </summary>
1821 </member>
1822 <member name="P:HttpServer.IHttpRequest.HttpVersion">
1823 <summary>
1824 Gets or sets version of HTTP protocol that's used.
1825 </summary>
1826 <remarks>
1827 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
1828 </remarks>
1829 <seealso cref="T:HttpServer.HttpHelper"/>
1830 </member>
1831 <member name="P:HttpServer.IHttpRequest.IsAjax">
1832 <summary>
1833 Gets whether the request was made by Ajax (Asynchronous JavaScript)
1834 </summary>
1835 </member>
1836 <member name="P:HttpServer.IHttpRequest.Method">
1837 <summary>
1838 Gets or sets requested method.
1839 </summary>
1840 <remarks>
1841 Will always be in upper case.
1842 </remarks>
1843 <see cref="P:HttpServer.IHttpRequest.Method"/>
1844 </member>
1845 <member name="P:HttpServer.IHttpRequest.Param">
1846 <summary>
1847 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
1848 </summary>
1849 </member>
1850 <member name="P:HttpServer.IHttpRequest.QueryString">
1851 <summary>
1852 Gets variables sent in the query string
1853 </summary>
1854 </member>
1855 <member name="P:HttpServer.IHttpRequest.Uri">
1856 <summary>
1857 Gets or sets requested URI.
1858 </summary>
1859 </member>
1860 <member name="P:HttpServer.IHttpRequest.UriParts">
1861 <summary>
1862 Gets URI absolute path divided into parts.
1863 </summary>
1864 <example>
1865 // URI is: http://gauffin.com/code/tiny/
1866 Console.WriteLine(request.UriParts[0]); // result: code
1867 Console.WriteLine(request.UriParts[1]); // result: tiny
1868 </example>
1869 <remarks>
1870 If you're using controllers than the first part is controller name,
1871 the second part is method name and the third part is Id property.
1872 </remarks>
1873 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
1874 </member>
1875 <member name="P:HttpServer.IHttpRequest.UriPath">
1876 <summary>
1877 Gets or sets path and query.
1878 </summary>
1879 <see cref="P:HttpServer.IHttpRequest.Uri"/>
1880 <remarks>
1881 Are only used during request parsing. Cannot be set after "Host" header have been
1882 added.
1883 </remarks>
1884 </member>
1885 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
1886 <summary>
1887 PrototypeJS implementation of the javascript functions.
1888 </summary>
1889 </member>
1890 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation">
1891 <summary>
1892 Purpose of this class is to create a javascript toolkit independent javascript helper.
1893 </summary>
1894 </member>
1895 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)">
1896 <summary>
1897 Generates a list with JS options.
1898 </summary>
1899 <param name="sb">StringBuilder that the options should be added to.</param>
1900 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
1901 <param name="startWithComma">true if we should start with a comma.</param>
1902 </member>
1903 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])">
1904 <summary>
1905 Removes any javascript parameters from an array of parameters
1906 </summary>
1907 <param name="options">The array of parameters to remove javascript params from</param>
1908 <returns>An array of html parameters</returns>
1909 </member>
1910 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])">
1911 <summary>
1912 javascript action that should be added to the "onsubmit" event in the form tag.
1913 </summary>
1914 <returns></returns>
1915 <remarks>All javascript option names should end with colon.</remarks>
1916 <example>
1917 <code>
1918 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1919 </code>
1920 </example>
1921 </member>
1922 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])">
1923 <summary>
1924 Requests a url through ajax
1925 </summary>
1926 <param name="url">url to fetch</param>
1927 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
1928 <returns>a link tag</returns>
1929 <remarks>All javascript option names should end with colon.</remarks>
1930 <example>
1931 <code>
1932 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1933 </code>
1934 </example>
1935 </member>
1936 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])">
1937 <summary>
1938 Ajax requests that updates an element with
1939 the fetched content
1940 </summary>
1941 <param name="url">Url to fetch content from</param>
1942 <param name="targetId">element to update</param>
1943 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
1944 <returns>A link tag.</returns>
1945 <remarks>All javascript option names should end with colon.</remarks>
1946 <example>
1947 <code>
1948 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
1949 </code>
1950 </example>
1951 </member>
1952 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])">
1953 <summary>
1954 A link that pop ups a Dialog (overlay div)
1955 </summary>
1956 <param name="url">url to contents of dialog</param>
1957 <param name="title">link title</param>
1958 <returns>A "a"-tag that popups a dialog when clicked</returns>
1959 <param name="htmlAttributes">name/value of html attributes</param>
1960 <example>
1961 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1962 </example>
1963 </member>
1964 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog">
1965 <summary>
1966 Close a javascript dialog window/div.
1967 </summary>
1968 <returns>javascript for closing a dialog.</returns>
1969 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
1970 </member>
1971 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])">
1972 <summary>
1973 Creates a new modal dialog window
1974 </summary>
1975 <param name="url">url to open in window.</param>
1976 <param name="title">window title (may not be supported by all js implementations)</param>
1977 <param name="options"></param>
1978 <returns></returns>
1979 </member>
1980 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
1981 <summary>
1982 Requests a url through ajax
1983 </summary>
1984 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
1985 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
1986 <returns>a link tag</returns>
1987 <remarks>onclick attribute is used by this method.</remarks>
1988 <example>
1989 <code>
1990 // plain text
1991 JSHelper.AjaxRequest("'/user/show/1'");
1992  
1993 // ajax request using this.href
1994 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
1995 </code>
1996 </example>
1997 </member>
1998 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)">
1999 <summary>
2000 Determins if a list of strings contains a specific value
2001 </summary>
2002 <param name="options">options to check in</param>
2003 <param name="value">value to find</param>
2004 <returns>true if value was found</returns>
2005 <remarks>case insensitive</remarks>
2006 </member>
2007 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])">
2008 <summary>
2009 Ajax requests that updates an element with
2010 the fetched content
2011 </summary>
2012 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
2013 <param name="targetId">element to update</param>
2014 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
2015 <returns>A link tag.</returns>
2016 <example>
2017 <code>
2018 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
2019 </code>
2020 </example>
2021 </member>
2022 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])">
2023 <summary>
2024 A link that pop ups a Dialog (overlay div)
2025 </summary>
2026 <param name="url">URL to contents of dialog</param>
2027 <param name="title">link title</param>
2028 <param name="htmlAttributes">name, value, name, value</param>
2029 <returns>
2030 A "a"-tag that popups a dialog when clicked
2031 </returns>
2032 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
2033 And the following JavaScript (load it in application.js):
2034 <code>
2035 Event.observe(window, 'load',
2036 function() {
2037 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
2038 }
2039 );
2040 </code>
2041 </remarks>
2042 <example>
2043 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2044 </example>
2045 </member>
2046 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])">
2047 <summary>
2048 create a modal dialog (usually using DIVs)
2049 </summary>
2050 <param name="url">url to fetch</param>
2051 <param name="title">dialog title</param>
2052 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param>
2053 <returns></returns>
2054 </member>
2055 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog">
2056 <summary>
2057 Close a javascript dialog window/div.
2058 </summary>
2059 <returns>javascript for closing a dialog.</returns>
2060 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/>
2061 </member>
2062 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])">
2063 <summary>
2064 javascript action that should be added to the "onsubmit" event in the form tag.
2065 </summary>
2066 <param name="options">remember to encapsulate strings in ''</param>
2067 <returns></returns>
2068 <remarks>All javascript option names should end with colon.</remarks>
2069 <example>
2070 <code>
2071 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
2072 </code>
2073 </example>
2074 </member>
2075 <member name="T:HttpServer.Helpers.FormHelper">
2076 <summary>
2077 Helpers making it easier to work with forms.
2078 </summary>
2079 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
2080 </member>
2081 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation">
2082 <summary>
2083 Used to let the website use different JavaScript libraries.
2084 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
2085 </summary>
2086 </member>
2087 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])">
2088 <summary>
2089 Create a &lt;form&gt; tag.
2090 </summary>
2091 <param name="id">name of form</param>
2092 <param name="action">action to invoke on submit</param>
2093 <param name="isAjax">form should be posted as Ajax</param>
2094 <returns>HTML code</returns>
2095 <example>
2096 <code>
2097 // without options
2098 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
2099  
2100 // with options
2101 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
2102 </code>
2103 </example>
2104 <param name="options">HTML attributes or JavaScript options.</param>
2105 <remarks>Method will ALWAYS be POST.</remarks>
2106 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception>
2107 </member>
2108 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2109 <summary>
2110 Creates a select list with the values in a collection.
2111 </summary>
2112 <param name="name">Name of the SELECT-tag</param>
2113 <param name="collection">collection used to generate options.</param>
2114 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2115 <param name="selectedValue">value that should be marked as selected.</param>
2116 <param name="firstEmpty">First row should contain an empty value.</param>
2117 <returns>string containing a SELECT-tag.</returns>
2118 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
2119 </member>
2120 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2121 <summary>
2122 Creates a select list with the values in a collection.
2123 </summary>
2124 <param name="name">Name of the SELECT-tag</param>
2125 <param name="id">Id of the SELECT-tag</param>
2126 <param name="collection">collection used to generate options.</param>
2127 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2128 <param name="selectedValue">value that should be marked as selected.</param>
2129 <param name="firstEmpty">First row should contain an empty value.</param>
2130 <returns>string containing a SELECT-tag.</returns>
2131 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
2132 <example>
2133 <code>
2134 // Class that is going to be used in a SELECT-tag.
2135 public class User
2136 {
2137 private readonly string _realName;
2138 private readonly int _id;
2139 public User(int id, string realName)
2140 {
2141 _id = id;
2142 _realName = realName;
2143 }
2144 public string RealName
2145 {
2146 get { return _realName; }
2147 }
2148  
2149 public int Id
2150 {
2151 get { return _id; }
2152 }
2153 }
2154  
2155 // Using an inline delegate to generate the select list
2156 public void UserInlineDelegate()
2157 {
2158 List&lt;User&gt; items = new List&lt;User&gt;();
2159 items.Add(new User(1, "adam"));
2160 items.Add(new User(2, "bertial"));
2161 items.Add(new User(3, "david"));
2162 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
2163 {
2164 User user = (User)o;
2165 id = user.Id;
2166 value = user.RealName;
2167 }, 2, true);
2168 }
2169  
2170 // Using an method as delegate to generate the select list.
2171 public void UseExternalDelegate()
2172 {
2173 List&lt;User&gt; items = new List&lt;User&gt;();
2174 items.Add(new User(1, "adam"));
2175 items.Add(new User(2, "bertial"));
2176 items.Add(new User(3, "david"));
2177 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
2178 }
2179  
2180 // delegate returning id and title
2181 public static void UserOptions(object o, out object id, out object title)
2182 {
2183 User user = (User)o;
2184 id = user.Id;
2185 value = user.RealName;
2186 }
2187 </code>
2188 </example>
2189 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
2190 </member>
2191 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])">
2192 <summary>
2193 Creates a select list with the values in a collection.
2194 </summary>
2195 <param name="name">Name of the SELECT-tag</param>
2196 <param name="id">Id of the SELECT-tag</param>
2197 <param name="collection">collection used to generate options.</param>
2198 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2199 <param name="selectedValue">value that should be marked as selected.</param>
2200 <param name="firstEmpty">First row should contain an empty value.</param>
2201 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param>
2202 <returns>string containing a SELECT-tag.</returns>
2203 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
2204 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
2205 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception>
2206 </member>
2207 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2208 <summary>
2209 Generate a list of HTML options
2210 </summary>
2211 <param name="collection">collection used to generate options.</param>
2212 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2213 <param name="selectedValue">value that should be marked as selected.</param>
2214 <param name="firstEmpty">First row should contain an empty value.</param>
2215 <returns></returns>
2216 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
2217 </member>
2218 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2219 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception>
2220 </member>
2221 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
2222 <summary>
2223 Creates a check box.
2224 </summary>
2225 <param name="name">element name</param>
2226 <param name="value">element value</param>
2227 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
2228 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
2229 the box is checked or not. </param>
2230 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
2231 <returns>a generated radio button</returns>
2232 </member>
2233 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
2234 <summary>
2235 Creates a check box.
2236 </summary>
2237 <param name="name">element name</param>
2238 <param name="id">element id</param>
2239 <param name="value">element value</param>
2240 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
2241 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
2242 the box is checked or not. </param>
2243 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
2244 <returns>a generated radio button</returns>
2245 <remarks>
2246 value in your business object. (check box will be selected if it matches the element value)
2247 </remarks>
2248 </member>
2249 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
2250 <summary>
2251 Creates a check box.
2252 </summary>
2253 <param name="name">element name</param>
2254 <param name="id">element id</param>
2255 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
2256 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
2257 the box is checked or not. </param>
2258 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
2259 <returns>a generated radio button</returns>
2260 <remarks>will set value to "1".</remarks>
2261 </member>
2262 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])">
2263 <summary>
2264 Creates a RadioButton.
2265 </summary>
2266 <param name="name">element name</param>
2267 <param name="value">element value</param>
2268 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
2269 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
2270 the box is checked or not. </param>
2271 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
2272 <returns>a generated radio button</returns>
2273 </member>
2274 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])">
2275 <summary>
2276 Creates a RadioButton.
2277 </summary>
2278 <param name="name">element name</param>
2279 <param name="id">element id</param>
2280 <param name="value">element value</param>
2281 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
2282 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
2283 the box is checked or not. </param>
2284 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
2285 <returns>a generated radio button</returns>
2286 </member>
2287 <member name="M:HttpServer.Helpers.FormHelper.End">
2288 <summary>
2289 form close tag
2290 </summary>
2291 <returns></returns>
2292 </member>
2293 <member name="T:HttpServer.ExceptionHandler">
2294 <summary>
2295 We dont want to let the server to die due to exceptions thrown in worker threads.
2296 therefore we use this delegate to give you a change to handle uncaught exceptions.
2297 </summary>
2298 <param name="source">Class that the exception was thrown in.</param>
2299 <param name="exception">Exception</param>
2300 <remarks>
2301 Server will throw a InternalServerException in release version if you dont
2302 handle this delegate.
2303 </remarks>
2304 </member>
2305 <member name="T:HttpServer.Authentication.DigestAuthentication">
2306 <summary>
2307 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
2308 encrypted with a "key" from the server.
2309 </summary>
2310 <remarks>
2311 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
2312 </remarks>
2313 </member>
2314 <member name="T:HttpServer.Authentication.AuthenticationModule">
2315 <summary>
2316 Authentication modules are used to implement different
2317 kind of HTTP authentication.
2318 </summary>
2319 </member>
2320 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
2321 <summary>
2322 Tag used for authentication.
2323 </summary>
2324 </member>
2325 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
2326 <summary>
2327 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
2328 </summary>
2329 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2330 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
2331 </member>
2332 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2333 <summary>
2334 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
2335 </summary>
2336 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2337 </member>
2338 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
2339 <summary>
2340 Create a response that can be sent in the WWW-Authenticate header.
2341 </summary>
2342 <param name="realm">Realm that the user should authenticate in</param>
2343 <param name="options">Array with optional options.</param>
2344 <returns>A correct authentication request.</returns>
2345 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
2346 </member>
2347 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
2348 <summary>
2349 An authentication response have been received from the web browser.
2350 Check if it's correct
2351 </summary>
2352 <param name="authenticationHeader">Contents from the Authorization header</param>
2353 <param name="realm">Realm that should be authenticated</param>
2354 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2355 <param name="options">options to specific implementations</param>
2356 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
2357 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
2358 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
2359 </member>
2360 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
2361 <summary>
2362 Used to invoke the authentication delegate that is used to lookup the user name/realm.
2363 </summary>
2364 <param name="realm">Realm (domain) that user want to authenticate in</param>
2365 <param name="userName">User name</param>
2366 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
2367 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
2368 <returns>true if authentication was successful</returns>
2369 </member>
2370 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
2371 <summary>
2372 Determines if authentication is required.
2373 </summary>
2374 <param name="request">HTTP request from browser</param>
2375 <returns>true if user should be authenticated.</returns>
2376 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
2377 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
2378 </member>
2379 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
2380 <summary>
2381 name used in HTTP request.
2382 </summary>
2383 </member>
2384 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
2385 <summary>
2386 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
2387 </summary>
2388 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2389 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
2390 </member>
2391 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2392 <summary>
2393 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
2394 </summary>
2395 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2396 </member>
2397 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
2398 <summary>
2399 Used by test classes to be able to use hardcoded values
2400 </summary>
2401 </member>
2402 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
2403 <summary>
2404 An authentication response have been received from the web browser.
2405 Check if it's correct
2406 </summary>
2407 <param name="authenticationHeader">Contents from the Authorization header</param>
2408 <param name="realm">Realm that should be authenticated</param>
2409 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2410 <param name="options">First option: true if username/password is correct but not cnonce</param>
2411 <returns>
2412 Authentication object that is stored for the request. A user class or something like that.
2413 </returns>
2414 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
2415 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
2416 </member>
2417 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
2418 <summary>
2419 Encrypts parameters into a Digest string
2420 </summary>
2421 <param name="realm">Realm that the user want to log into.</param>
2422 <param name="userName">User logging in</param>
2423 <param name="password">Users password.</param>
2424 <param name="method">HTTP method.</param>
2425 <param name="uri">Uri/domain that generated the login prompt.</param>
2426 <param name="qop">Quality of Protection.</param>
2427 <param name="nonce">"Number used ONCE"</param>
2428 <param name="nc">Hexadecimal request counter.</param>
2429 <param name="cnonce">"Client Number used ONCE"</param>
2430 <returns>Digest encrypted string</returns>
2431 </member>
2432 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
2433 <summary>
2434  
2435 </summary>
2436 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
2437 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param>
2438 <param name="qop">Quality of Protection</param>
2439 <param name="nonce">"Number used ONCE"</param>
2440 <param name="nc">Hexadecimal request counter.</param>
2441 <param name="cnonce">Client number used once</param>
2442 <returns></returns>
2443 </member>
2444 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
2445 <summary>
2446 Create a response that can be sent in the WWW-Authenticate header.
2447 </summary>
2448 <param name="realm">Realm that the user should authenticate in</param>
2449 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
2450 <returns>A correct auth request.</returns>
2451 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
2452 </member>
2453 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
2454 <summary>
2455 Decodes authorization header value
2456 </summary>
2457 <param name="buffer">header value</param>
2458 <param name="encoding">Encoding that the buffer is in</param>
2459 <returns>All headers and their values if successful; otherwise null</returns>
2460 <example>
2461 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
2462 </example>
2463 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
2464 </member>
2465 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
2466 <summary>
2467 Gets the current nonce.
2468 </summary>
2469 <returns></returns>
2470 </member>
2471 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
2472 <summary>
2473 Gets the Md5 hash bin hex2.
2474 </summary>
2475 <param name="toBeHashed">To be hashed.</param>
2476 <returns></returns>
2477 </member>
2478 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
2479 <summary>
2480 determines if the nonce is valid or has expired.
2481 </summary>
2482 <param name="nonce">nonce value (check wikipedia for info)</param>
2483 <returns>true if the nonce has not expired.</returns>
2484 </member>
2485 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
2486 <summary>
2487 name used in http request.
2488 </summary>
2489 </member>
2490 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
2491 <summary>
2492 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
2493 HA1 generated string.
2494 </summary>
2495 </member>
2496 <member name="T:HttpServer.HttpHelper">
2497 <summary>
2498 Generic helper functions for HTTP
2499 </summary>
2500 </member>
2501 <member name="F:HttpServer.HttpHelper.HTTP10">
2502 <summary>
2503 Version string for HTTP v1.0
2504 </summary>
2505 </member>
2506 <member name="F:HttpServer.HttpHelper.HTTP11">
2507 <summary>
2508 Version string for HTTP v1.1
2509 </summary>
2510 </member>
2511 <member name="F:HttpServer.HttpHelper.EmptyUri">
2512 <summary>
2513 An empty URI
2514 </summary>
2515 </member>
2516 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)">
2517 <summary>
2518 Parses a query string.
2519 </summary>
2520 <param name="queryString">Query string (URI encoded)</param>
2521 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
2522 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
2523 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
2524 </member>
2525 <member name="T:HttpServer.Authentication.AuthenticationHandler">
2526 <summary>
2527 Delegate used to let authentication modules authenticate the user name and password.
2528 </summary>
2529 <param name="realm">Realm that the user want to authenticate in</param>
2530 <param name="userName">User name specified by client</param>
2531 <param name="token">Can either be user password or implementation specific token.</param>
2532 <param name="login">object that will be stored in a session variable called <see cref="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag"/> if authentication was successful.</param>
2533 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
2534 <remarks>
2535 <para>
2536 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
2537 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
2538 </para>
2539 </remarks>
2540 </member>
2541 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
2542 <summary>
2543 Let's you decide on a system level if authentication is required.
2544 </summary>
2545 <param name="request">HTTP request from client</param>
2546 <returns>true if user should be authenticated.</returns>
2547 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
2548 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
2549 </member>
2550 <member name="T:HttpServer.Parser.BodyEventArgs">
2551 <summary>
2552 Arguments used when more body bytes have come.
2553 </summary>
2554 </member>
2555 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)">
2556 <summary>
2557 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
2558 </summary>
2559 <param name="buffer">buffer that contains the received bytes.</param>
2560 <param name="offset">offset in buffer where to start processing.</param>
2561 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param>
2562 </member>
2563 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor">
2564 <summary>
2565 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
2566 </summary>
2567 </member>
2568 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer">
2569 <summary>
2570 Gets or sets buffer that contains the received bytes.
2571 </summary>
2572 </member>
2573 <member name="P:HttpServer.Parser.BodyEventArgs.Count">
2574 <summary>
2575 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed.
2576 </summary>
2577 </member>
2578 <member name="P:HttpServer.Parser.BodyEventArgs.Offset">
2579 <summary>
2580 Gets or sets offset in buffer where to start processing.
2581 </summary>
2582 </member>
2583 <member name="T:HttpServer.Method">
2584 <summary>
2585 Contains all HTTP Methods (according to the HTTP 1.1 specification)
2586 <para>
2587 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
2588 </para>
2589 </summary>
2590 </member>
2591 <member name="F:HttpServer.Method.Delete">
2592 <summary>
2593 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
2594 </summary>
2595 <remarks>
2596 <para>
2597 This method MAY be overridden by human intervention (or other means) on the origin server.
2598 The client cannot be guaranteed that the operation has been carried out, even if the status code
2599 returned from the origin server indicates that the action has been completed successfully.
2600 </para>
2601 <para>
2602 However, the server SHOULD NOT indicate success unless, at the time the response is given,
2603 it intends to delete the resource or move it to an inaccessible location.
2604 </para>
2605 <para>
2606 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
2607 202 (Accepted) if the action has not yet been enacted,
2608 or 204 (No Content) if the action has been enacted but the response does not include an entity.
2609 </para>
2610 <para>
2611 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
2612 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
2613 </para>
2614 </remarks>
2615 </member>
2616 <member name="F:HttpServer.Method.Get">
2617 <summary>
2618 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
2619 </summary>
2620 <remarks>
2621 <para>
2622 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
2623 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
2624 </para>
2625 <para>
2626 The semantics of the GET method change to a "conditional GET" if the request message includes an
2627 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
2628 A conditional GET method requests that the entity be transferred only under the circumstances described
2629 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
2630 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
2631 data already held by the client.
2632 </para>
2633 </remarks>
2634 </member>
2635 <member name="F:HttpServer.Method.Header">
2636 <summary>
2637 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
2638 </summary>
2639 <remarks>
2640 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
2641 information sent in response to a GET request. This method can be used for obtaining meta information about
2642 the entity implied by the request without transferring the entity-body itself.
2643  
2644 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
2645 </remarks>
2646 </member>
2647 <member name="F:HttpServer.Method.Options">
2648 <summary>
2649 <para>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.</para>
2650 </summary>
2651 <remarks>
2652 <para>This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</para>
2653 </remarks>
2654 </member>
2655 <member name="F:HttpServer.Method.Post">
2656 <summary>
2657 The POST method is used to request that the origin server accept the entity enclosed
2658 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
2659 </summary>
2660 <remarks>
2661 POST is designed to allow a uniform method to cover the following functions:
2662 <list type="bullet">
2663 <item>
2664 Annotation of existing resources;
2665 </item><item>
2666 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
2667 </item><item>
2668 Providing a block of data, such as the result of submitting a form, to a data-handling process;
2669 </item><item>
2670 Extending a database through an append operation.
2671 </item>
2672 </list>
2673 <para>
2674 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
2675 contain an entity which describes the status of the request and refers to the new resource, and a
2676 Location header (see section 14.30).
2677 </para>
2678 <para>
2679 The action performed by the POST method might not result in a resource that can be identified by a URI.
2680 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
2681 whether or not the response includes an entity that describes the result.
2682 </para><para>
2683 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
2684 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
2685 to retrieve a cacheable resource.
2686 </para>
2687 </remarks>
2688 </member>
2689 <member name="F:HttpServer.Method.Put">
2690 <summary>
2691 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
2692 </summary>
2693 <remarks>
2694 <list type="bullet">
2695 <item>
2696 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
2697 modified version of the one residing on the origin server.
2698 </item><item>
2699 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
2700 resource by the requesting user agent, the origin server can create the resource with that URI.
2701 </item><item>
2702 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
2703 </item><item>
2704 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
2705 indicate successful completion of the request.
2706 </item><item>
2707 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
2708 given that reflects the nature of the problem.
2709 </item>
2710 </list>
2711 <para>
2712 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
2713 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
2714 </para>
2715 </remarks>
2716 </member>
2717 <member name="F:HttpServer.Method.Trace">
2718 <summary>
2719 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
2720 </summary>
2721 </member>
2722 <member name="T:HttpServer.Methods">
2723 <summary>
2724 Contains all HTTP Methods (according to the HTTP 1.1 specification)
2725 <para>
2726 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
2727 </para>
2728 </summary>
2729 </member>
2730 <member name="F:HttpServer.Methods.Delete">
2731 <summary>
2732 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
2733 </summary>
2734 <remarks>
2735 <para>
2736 This method MAY be overridden by human intervention (or other means) on the origin server.
2737 The client cannot be guaranteed that the operation has been carried out, even if the status code
2738 returned from the origin server indicates that the action has been completed successfully.
2739 </para>
2740 <para>
2741 However, the server SHOULD NOT indicate success unless, at the time the response is given,
2742 it intends to delete the resource or move it to an inaccessible location.
2743 </para>
2744 <para>
2745 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
2746 202 (Accepted) if the action has not yet been enacted,
2747 or 204 (No Content) if the action has been enacted but the response does not include an entity.
2748 </para>
2749 <para>
2750 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
2751 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
2752 </para>
2753 </remarks>
2754 </member>
2755 <member name="F:HttpServer.Methods.Get">
2756 <summary>
2757 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
2758 </summary>
2759 <remarks>
2760 <para>
2761 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
2762 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
2763 </para>
2764 <para>
2765 The semantics of the GET method change to a "conditional GET" if the request message includes an
2766 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
2767 A conditional GET method requests that the entity be transferred only under the circumstances described
2768 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
2769 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
2770 data already held by the client.
2771 </para>
2772 </remarks>
2773 </member>
2774 <member name="F:HttpServer.Methods.Header">
2775 <summary>
2776 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
2777 </summary>
2778 <remarks>
2779 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
2780 information sent in response to a GET request. This method can be used for obtaining meta information about
2781 the entity implied by the request without transferring the entity-body itself.
2782  
2783 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
2784 </remarks>
2785 </member>
2786 <member name="F:HttpServer.Methods.Options">
2787 <summary>
2788 <para>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.</para>
2789 </summary>
2790 <remarks>
2791 <para>This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</para>
2792 </remarks>
2793 </member>
2794 <member name="F:HttpServer.Methods.Post">
2795 <summary>
2796 The POST method is used to request that the origin server accept the entity enclosed
2797 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
2798 </summary>
2799 <remarks>
2800 POST is designed to allow a uniform method to cover the following functions:
2801 <list type="bullet">
2802 <item>
2803 Annotation of existing resources;
2804 </item><item>
2805 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
2806 </item><item>
2807 Providing a block of data, such as the result of submitting a form, to a data-handling process;
2808 </item><item>
2809 Extending a database through an append operation.
2810 </item>
2811 </list>
2812 <para>
2813 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
2814 contain an entity which describes the status of the request and refers to the new resource, and a
2815 Location header (see section 14.30).
2816 </para>
2817 <para>
2818 The action performed by the POST method might not result in a resource that can be identified by a URI.
2819 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
2820 whether or not the response includes an entity that describes the result.
2821 </para><para>
2822 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
2823 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
2824 to retrieve a cacheable resource.
2825 </para>
2826 </remarks>
2827 </member>
2828 <member name="F:HttpServer.Methods.Put">
2829 <summary>
2830 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
2831 </summary>
2832 <remarks>
2833 <list type="bullet">
2834 <item>
2835 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
2836 modified version of the one residing on the origin server.
2837 </item><item>
2838 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
2839 resource by the requesting user agent, the origin server can create the resource with that URI.
2840 </item><item>
2841 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
2842 </item><item>
2843 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
2844 indicate successful completion of the request.
2845 </item><item>
2846 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
2847 given that reflects the nature of the problem.
2848 </item>
2849 </list>
2850 <para>
2851 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
2852 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
2853 </para>
2854 </remarks>
2855 </member>
2856 <member name="F:HttpServer.Methods.Trace">
2857 <summary>
2858 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
2859 </summary>
2860 </member>
2861 <member name="T:HttpServer.HttpContextFactory">
2862 <summary>
2863 Used to create and reuse contexts.
2864 </summary>
2865 </member>
2866 <member name="T:HttpServer.IHttpContextFactory">
2867 <summary>
2868 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es.
2869 </summary>
2870 </member>
2871 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
2872 <summary>
2873 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
2874 </summary>
2875 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2876 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
2877 </member>
2878 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2879 <summary>
2880 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
2881 </summary>
2882 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2883 <param name="certificate">HTTPS certificate to use.</param>
2884 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
2885 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
2886 </member>
2887 <member name="M:HttpServer.IHttpContextFactory.Shutdown">
2888 <summary>
2889 Server is shutting down so shut down the factory
2890 </summary>
2891 </member>
2892 <member name="E:HttpServer.IHttpContextFactory.RequestReceived">
2893 <summary>
2894 A request have been received from one of the contexts.
2895 </summary>
2896 </member>
2897 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)">
2898 <summary>
2899 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class.
2900 </summary>
2901 <param name="writer">The writer.</param>
2902 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param>
2903 <param name="factory">Used to create a request parser.</param>
2904 </member>
2905 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
2906 <summary>
2907 Create a new context.
2908 </summary>
2909 <param name="isSecured">true if socket is running HTTPS.</param>
2910 <param name="endPoint">Client that connected</param>
2911 <param name="stream">Network/SSL stream.</param>
2912 <returns>A context.</returns>
2913 </member>
2914 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
2915 <summary>
2916 Create a new context.
2917 </summary>
2918 <param name="isSecured">true if HTTPS is used.</param>
2919 <param name="endPoint">Remote client</param>
2920 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param>
2921 <returns>A new context (always).</returns>
2922 </member>
2923 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2924 <summary>
2925 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
2926 </summary>
2927 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2928 <param name="certificate">HTTPS certificate to use.</param>
2929 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
2930 <returns>
2931 A created <see cref="T:HttpServer.IHttpClientContext"/>.
2932 </returns>
2933 </member>
2934 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
2935 <summary>
2936 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
2937 </summary>
2938 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2939 <returns>
2940 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
2941 </returns>
2942 </member>
2943 <member name="M:HttpServer.HttpContextFactory.Shutdown">
2944 <summary>
2945 Server is shutting down so shut down the factory
2946 </summary>
2947 </member>
2948 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs">
2949 <summary>
2950 True if detailed trace logs should be written.
2951 </summary>
2952 </member>
2953 <member name="E:HttpServer.HttpContextFactory.RequestReceived">
2954 <summary>
2955 A request have been received from one of the contexts.
2956 </summary>
2957 </member>
2958 <member name="T:HttpServer.ReusableSocketNetworkStream">
2959 <summary>
2960 Custom network stream to mark sockets as reusable when disposing the stream.
2961 </summary>
2962 </member>
2963 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)">
2964 <summary>
2965 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />.
2966 </summary>
2967 <param name="socket">
2968 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
2969 </param>
2970 <exception cref="T:System.ArgumentNullException">
2971 The <paramref name="socket" /> parameter is null.
2972 </exception>
2973 <exception cref="T:System.IO.IOException">
2974 The <paramref name="socket" /> parameter is not connected.
2975 -or-
2976 The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
2977 -or-
2978 The <paramref name="socket" /> parameter is in a nonblocking state.
2979 </exception>
2980 </member>
2981 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)">
2982 <summary>
2983 Initializes a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified <see cref="T:System.Net.Sockets.Socket" /> ownership.
2984 </summary>
2985 <param name="socket">
2986 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
2987 </param>
2988 <param name="ownsSocket">
2989 Set to true to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, false.
2990 </param>
2991 <exception cref="T:System.ArgumentNullException">
2992 The <paramref name="socket" /> parameter is null.
2993 </exception>
2994 <exception cref="T:System.IO.IOException">
2995 The <paramref name="socket" /> parameter is not connected.
2996 -or-
2997 the value of the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
2998 -or-
2999 the <paramref name="socket" /> parameter is in a nonblocking state.
3000 </exception>
3001 </member>
3002 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)">
3003 <summary>
3004 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights.
3005 </summary>
3006 <param name="socket">
3007 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
3008 </param>
3009 <param name="access">
3010 A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specify the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.
3011 </param>
3012 <exception cref="T:System.ArgumentNullException">
3013 The <paramref name="socket" /> parameter is null.
3014 </exception>
3015 <exception cref="T:System.IO.IOException">
3016 The <paramref name="socket" /> parameter is not connected.
3017 -or-
3018 the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
3019 -or-
3020 the <paramref name="socket" /> parameter is in a nonblocking state.
3021 </exception>
3022 </member>
3023 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)">
3024 <summary>
3025 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights and the specified <see cref="T:System.Net.Sockets.Socket" /> ownership.
3026 </summary>
3027 <param name="socket">
3028 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
3029 </param>
3030 <param name="access">
3031 A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specifies the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.
3032 </param>
3033 <param name="ownsSocket">
3034 Set to true to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, false.
3035 </param>
3036 <exception cref="T:System.ArgumentNullException">
3037 The <paramref name="socket" /> parameter is null.
3038 </exception>
3039 <exception cref="T:System.IO.IOException">
3040 The <paramref name="socket" /> parameter is not connected.
3041 -or-
3042 The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
3043 -or-
3044 The <paramref name="socket" /> parameter is in a nonblocking state.
3045 </exception>
3046 </member>
3047 <member name="M:HttpServer.ReusableSocketNetworkStream.Close">
3048 <summary>
3049 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
3050 </summary>
3051 </member>
3052 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)">
3053 <summary>
3054 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources.
3055 </summary>
3056 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
3057 </member>
3058 <member name="T:HttpServer.ClientAcceptedEventArgs">
3059 <summary>
3060 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
3061 </summary>
3062 <remarks>
3063 Can be used to revoke incoming connections
3064 </remarks>
3065 </member>
3066 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
3067 <summary>
3068 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
3069 </summary>
3070 <param name="socket">The socket.</param>
3071 </member>
3072 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
3073 <summary>
3074 Client may not be handled.
3075 </summary>
3076 </member>
3077 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
3078 <summary>
3079 Accepted socket.
3080 </summary>
3081 </member>
3082 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
3083 <summary>
3084 Client should be revoked.
3085 </summary>
3086 </member>
3087 <member name="T:HttpServer.Sessions.MemorySession">
3088 <summary>
3089 A session stored in memory.
3090 </summary>
3091 </member>
3092 <member name="T:HttpServer.Sessions.IHttpSession">
3093 <summary>
3094 Interface for sessions
3095 </summary>
3096 </member>
3097 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
3098 <summary>
3099 Remove everything from the session
3100 </summary>
3101 </member>
3102 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
3103 <summary>
3104 Remove everything from the session
3105 </summary>
3106 <param name="expires">True if the session is cleared due to expiration</param>
3107 </member>
3108 <member name="P:HttpServer.Sessions.IHttpSession.Id">
3109 <summary>
3110 Session id
3111 </summary>
3112 </member>
3113 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
3114 <summary>
3115 Should
3116 </summary>
3117 <param name="name">Name of the session variable</param>
3118 <returns>null if it's not set</returns>
3119 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
3120 </member>
3121 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
3122 <summary>
3123 When the session was last accessed.
3124 This property is touched by the http server each time the
3125 session is requested.
3126 </summary>
3127 </member>
3128 <member name="P:HttpServer.Sessions.IHttpSession.Count">
3129 <summary>
3130 Number of session variables.
3131 </summary>
3132 </member>
3133 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
3134 <summary>
3135 Event triggered upon clearing the session
3136 </summary>
3137 </member>
3138 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
3139 <summary>
3140  
3141 </summary>
3142 <param name="id">A unique id used by the sessions store to identify the session</param>
3143 </member>
3144 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
3145 <summary>
3146 Id
3147 </summary>
3148 <param name="id"></param>
3149 </member>
3150 <member name="M:HttpServer.Sessions.MemorySession.Clear">
3151 <summary>
3152 Remove everything from the session
3153 </summary>
3154 </member>
3155 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
3156 <summary>
3157 Clears the specified expire.
3158 </summary>
3159 <param name="expires">True if the session is cleared due to expiration</param>
3160 </member>
3161 <member name="M:HttpServer.Sessions.MemorySession.Dispose">
3162 <summary>
3163 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
3164 </summary>
3165 <filterpriority>2</filterpriority>
3166 </member>
3167 <member name="P:HttpServer.Sessions.MemorySession.Id">
3168 <summary>
3169 Session id
3170 </summary>
3171 </member>
3172 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
3173 <summary>
3174 Should
3175 </summary>
3176 <param name="name">Name of the session variable</param>
3177 <returns>null if it's not set</returns>
3178 </member>
3179 <member name="P:HttpServer.Sessions.MemorySession.Accessed">
3180 <summary>
3181 when the session was last accessed.
3182 </summary>
3183 <remarks>
3184 Used to determine when the session should be removed.
3185 </remarks>
3186 </member>
3187 <member name="P:HttpServer.Sessions.MemorySession.Count">
3188 <summary>
3189 Number of values in the session
3190 </summary>
3191 </member>
3192 <member name="P:HttpServer.Sessions.MemorySession.Changed">
3193 <summary>
3194 Flag to indicate that the session have been changed
3195 and should be saved into the session store.
3196 </summary>
3197 </member>
3198 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
3199 <summary>
3200 Event triggered upon clearing the session
3201 </summary>
3202 </member>
3203 <member name="T:HttpServer.HttpModules.ReverseProxyModule">
3204 <summary>
3205 A reverse proxy are used to act as a bridge between local (protected/hidden) websites
3206 and public clients.
3207  
3208 A typical usage is to allow web servers on non standard ports to still be available
3209 to the public clients, or allow web servers on private ips to be available.
3210 </summary>
3211 </member>
3212 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)">
3213 <summary>
3214  
3215 </summary>
3216 <param name="source">Base url requested from browser</param>
3217 <param name="destination">Base url on private web server</param>
3218 <example>
3219 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
3220 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
3221 </example>
3222 </member>
3223 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)">
3224 <summary>
3225 Method that determines if an url should be handled or not by the module
3226 </summary>
3227 <param name="uri">Url requested by the client.</param>
3228 <returns>true if module should handle the url.</returns>
3229 </member>
3230 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3231 <summary>
3232 Method that process the url
3233 </summary>
3234 <param name="request">Information sent by the browser about the request</param>
3235 <param name="response">Information that is being sent back to the client.</param>
3236 <param name="session">Session used to </param>
3237 </member>
3238 <member name="T:HttpServer.FormDecoders.UrlDecoder">
3239 <summary>
3240 Can handle application/x-www-form-urlencoded
3241 </summary>
3242 </member>
3243 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
3244 <summary>
3245 </summary>
3246 <param name="stream">Stream containing the content</param>
3247 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
3248 <param name="encoding">Stream encoding</param>
3249 <returns>
3250 A HTTP form, or null if content could not be parsed.
3251 </returns>
3252 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
3253 </member>
3254 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
3255 <summary>
3256 Checks if the decoder can handle the mime type
3257 </summary>
3258 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
3259 <returns>True if the decoder can parse the specified content type</returns>
3260 </member>
3261 <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
3262 <summary>
3263 This provider is used to let us implement any type of form decoding we want without
3264 having to rewrite anything else in the server.
3265 </summary>
3266 </member>
3267 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
3268 <summary>
3269  
3270 </summary>
3271 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
3272 <param name="stream">Stream containing form data.</param>
3273 <param name="encoding">Encoding used when decoding the stream</param>
3274 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
3275 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
3276 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
3277 </member>
3278 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
3279 <summary>
3280 Add a decoder.
3281 </summary>
3282 <param name="decoder"></param>
3283 <exception cref="T:System.ArgumentNullException"></exception>
3284 </member>
3285 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
3286 <summary>
3287 Number of added decoders.
3288 </summary>
3289 </member>
3290 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
3291 <summary>
3292 Use with care.
3293 </summary>
3294 </member>
3295 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
3296 <summary>
3297 Decoder used for unknown content types.
3298 </summary>
3299 </member>
3300 <member name="T:HttpServer.Exceptions.InternalServerException">
3301 <summary>
3302 The server encountered an unexpected condition which prevented it from fulfilling the request.
3303 </summary>
3304 </member>
3305 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor">
3306 <summary>
3307 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
3308 </summary>
3309 </member>
3310 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)">
3311 <summary>
3312 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
3313 </summary>
3314 <param name="message">error message.</param>
3315 </member>
3316 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)">
3317 <summary>
3318 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
3319 </summary>
3320 <param name="message">error message.</param>
3321 <param name="inner">inner exception.</param>
3322 </member>
3323 <member name="T:HttpServer.IHttpResponse">
3324 <summary>
3325 Response that is sent back to the web browser / client.
3326  
3327 A response can be sent if different ways. The easiest one is
3328 to just fill the Body stream with content, everything else
3329 will then be taken care of by the framework. The default content-type
3330 is text/html, you should change it if you send anything else.
3331  
3332 The second and slighty more complex way is to send the response
3333 as parts. Start with sending the header using the SendHeaders method and
3334 then you can send the body using SendBody method, but do not forget
3335 to set ContentType and ContentLength before doing so.
3336 </summary>
3337 <example>
3338 public void MyHandler(IHttpRequest request, IHttpResponse response)
3339 {
3340  
3341 }
3342 </example>
3343 </member>
3344 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)">
3345 <summary>
3346 Add another header to the document.
3347 </summary>
3348 <param name="name">Name of the header, case sensitive, use lower cases.</param>
3349 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
3350 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3351 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
3352 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
3353 </member>
3354 <member name="M:HttpServer.IHttpResponse.Send">
3355 <summary>
3356 Send headers and body to the browser.
3357 </summary>
3358 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
3359 </member>
3360 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
3361 <summary>
3362 Make sure that you have specified ContentLength and sent the headers first.
3363 </summary>
3364 <param name="buffer"></param>
3365 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3366 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3367 <param name="offset">offest of first byte to send</param>
3368 <param name="count">number of bytes to send.</param>
3369 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3370 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3371 <remarks>This method can be used if you want to send body contents without caching them first. This
3372 is recommended for larger files to keep the memory usage low.</remarks>
3373 </member>
3374 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])">
3375 <summary>
3376 Make sure that you have specified ContentLength and sent the headers first.
3377 </summary>
3378 <param name="buffer"></param>
3379 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3380 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3381 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3382 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3383 <remarks>This method can be used if you want to send body contents without caching them first. This
3384 is recommended for larger files to keep the memory usage low.</remarks>
3385 </member>
3386 <member name="M:HttpServer.IHttpResponse.SendHeaders">
3387 <summary>
3388 Send headers to the client.
3389 </summary>
3390 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3391 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/>
3392 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3393 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/>
3394 </member>
3395 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)">
3396 <summary>
3397 Redirect client to somewhere else using the 302 status code.
3398 </summary>
3399 <param name="uri">Destination of the redirect</param>
3400 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3401 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
3402 action.</remarks>
3403 </member>
3404 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)">
3405 <summary>
3406 redirect to somewhere
3407 </summary>
3408 <param name="url">where the redirect should go</param>
3409 <remarks>
3410 No body are allowed when doing redirects.
3411 </remarks>
3412 </member>
3413 <member name="P:HttpServer.IHttpResponse.Body">
3414 <summary>
3415 The body stream is used to cache the body contents
3416 before sending everything to the client. It's the simplest
3417 way to serve documents.
3418 </summary>
3419 </member>
3420 <member name="P:HttpServer.IHttpResponse.ProtocolVersion">
3421 <summary>
3422 Defines the version of the HTTP Response for applications where it's required
3423 for this to be forced.
3424 </summary>
3425 </member>
3426 <member name="P:HttpServer.IHttpResponse.Chunked">
3427 <summary>
3428 The chunked encoding modifies the body of a message in order to
3429 transfer it as a series of chunks, each with its own size indicator,
3430 followed by an OPTIONAL trailer containing entity-header fields. This
3431 allows dynamically produced content to be transferred along with the
3432 information necessary for the recipient to verify that it has
3433 received the full message.
3434 </summary>
3435 </member>
3436 <member name="P:HttpServer.IHttpResponse.Connection">
3437 <summary>
3438 Kind of connection
3439 </summary>
3440 </member>
3441 <member name="P:HttpServer.IHttpResponse.Encoding">
3442 <summary>
3443 Encoding to use when sending stuff to the client.
3444 </summary>
3445 <remarks>Default is UTF8</remarks>
3446 </member>
3447 <member name="P:HttpServer.IHttpResponse.KeepAlive">
3448 <summary>
3449 Number of seconds to keep connection alive
3450 </summary>
3451 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
3452 </member>
3453 <member name="P:HttpServer.IHttpResponse.Status">
3454 <summary>
3455 Status code that is sent to the client.
3456 </summary>
3457 <remarks>Default is HttpStatusCode.Ok</remarks>
3458 </member>
3459 <member name="P:HttpServer.IHttpResponse.Reason">
3460 <summary>
3461 Information about why a specific status code was used.
3462 </summary>
3463 </member>
3464 <member name="P:HttpServer.IHttpResponse.ContentLength">
3465 <summary>
3466 Size of the body. MUST be specified before sending the header,
3467 unless property Chunked is set to true.
3468 </summary>
3469 </member>
3470 <member name="P:HttpServer.IHttpResponse.ContentType">
3471 <summary>
3472 Kind of content in the body
3473 </summary>
3474 <remarks>Default is text/html</remarks>
3475 </member>
3476 <member name="P:HttpServer.IHttpResponse.HeadersSent">
3477 <summary>
3478 Headers have been sent to the client-
3479 </summary>
3480 <remarks>You can not send any additional headers if they have already been sent.</remarks>
3481 </member>
3482 <member name="P:HttpServer.IHttpResponse.Sent">
3483 <summary>
3484 The whole response have been sent.
3485 </summary>
3486 </member>
3487 <member name="P:HttpServer.IHttpResponse.Cookies">
3488 <summary>
3489 Cookies that should be created/changed.
3490 </summary>
3491 </member>
3492 <member name="T:HttpServer.ConnectionType">
3493 <summary>
3494 Type of HTTP connection
3495 </summary>
3496 </member>
3497 <member name="F:HttpServer.ConnectionType.Close">
3498 <summary>
3499 Connection is closed after each request-response
3500 </summary>
3501 </member>
3502 <member name="F:HttpServer.ConnectionType.KeepAlive">
3503 <summary>
3504 Connection is kept alive for X seconds (unless another request have been made)
3505 </summary>
3506 </member>
3507 <member name="T:HttpServer.HttpModules.WebSiteModule">
3508 <summary>
3509 The website module let's you handle multiple websites in the same server.
3510 It uses the "Host" header to check which site you want.
3511 </summary>
3512 <remarks>It's recommended that you do not
3513 add any other modules to HttpServer if you are using the website module. Instead,
3514 add all wanted modules to each website.</remarks>
3515 </member>
3516 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
3517 <summary>
3518  
3519 </summary>
3520 <param name="host">domain name that should be handled.</param>
3521 <param name="name"></param>
3522 </member>
3523 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3524 <summary>
3525 Method that process the url
3526 </summary>
3527 <param name="request">Information sent by the browser about the request</param>
3528 <param name="response">Information that is being sent back to the client.</param>
3529 <param name="session">Session used to </param>
3530 </member>
3531 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
3532 <summary>
3533 Name of site.
3534 </summary>
3535 </member>
3536 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs">
3537 <summary>
3538 Used to inform http server that
3539 </summary>
3540 </member>
3541 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)">
3542 <summary>
3543 Eventarguments used when an exception is thrown by a module
3544 </summary>
3545 <param name="e">the exception</param>
3546 </member>
3547 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception">
3548 <summary>
3549 Exception thrown in a module
3550 </summary>
3551 </member>
3552 <member name="T:HttpServer.HttpInputItem">
3553 <summary>
3554 represents a HTTP input item. Each item can have multiple sub items, a sub item
3555 is made in a HTML form by using square brackets
3556 </summary>
3557 <example>
3558 // <input type="text" name="user[FirstName]" value="jonas" /> becomes:
3559 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
3560 </example>
3561 <remarks>
3562 All names in a form SHOULD be in lowercase.
3563 </remarks>
3564 </member>
3565 <member name="F:HttpServer.HttpInputItem.Empty">
3566 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
3567 </member>
3568 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)">
3569 <summary>
3570 Initializes an input item setting its name/identifier and value
3571 </summary>
3572 <param name="name">Parameter name/id</param>
3573 <param name="value">Parameter value</param>
3574 </member>
3575 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)">
3576 <summary>Creates a deep copy of the item specified</summary>
3577 <param name="item">The item to copy</param>
3578 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
3579 </member>
3580 <member name="M:HttpServer.HttpInputItem.Add(System.String)">
3581 <summary>
3582 Add another value to this item
3583 </summary>
3584 <param name="value">Value to add.</param>
3585 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
3586 </member>
3587 <member name="M:HttpServer.HttpInputItem.Contains(System.String)">
3588 <summary>
3589 checks if a sub-item exists (and has a value).
3590 </summary>
3591 <param name="name">name in lower case</param>
3592 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
3593 </member>
3594 <member name="M:HttpServer.HttpInputItem.ToString">
3595 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
3596 </member>
3597 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)">
3598 <summary>
3599 Outputs the string in a formatted manner
3600 </summary>
3601 <param name="prefix">A prefix to append, used internally</param>
3602 <param name="asQuerySting">produce a query string</param>
3603 </member>
3604 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)">
3605 <summary>
3606 Add a sub item.
3607 </summary>
3608 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param>
3609 <param name="value">Value to add.</param>
3610 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
3611 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
3612 </member>
3613 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
3614 <summary>
3615 Returns an enumerator that iterates through the collection.
3616 </summary>
3617  
3618 <returns>
3619 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
3620 </returns>
3621 <filterpriority>1</filterpriority>
3622 </member>
3623 <member name="M:HttpServer.HttpInputItem.GetEnumerator">
3624 <summary>
3625 Returns an enumerator that iterates through a collection.
3626 </summary>
3627  
3628 <returns>
3629 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
3630 </returns>
3631 <filterpriority>2</filterpriority>
3632 </member>
3633 <member name="M:HttpServer.HttpInputItem.ToString(System.String)">
3634 <summary>
3635 Outputs the string in a formatted manner
3636 </summary>
3637 <param name="prefix">A prefix to append, used internally</param>
3638 <returns></returns>
3639 </member>
3640 <member name="P:HttpServer.HttpInputItem.Count">
3641 <summary>
3642 Number of values
3643 </summary>
3644 </member>
3645 <member name="P:HttpServer.HttpInputItem.Item(System.String)">
3646 <summary>
3647 Get a sub item
3648 </summary>
3649 <param name="name">name in lower case.</param>
3650 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
3651 </member>
3652 <member name="P:HttpServer.HttpInputItem.Name">
3653 <summary>
3654 Name of item (in lower case).
3655 </summary>
3656 </member>
3657 <member name="P:HttpServer.HttpInputItem.Value">
3658 <summary>
3659 Returns the first value, or null if no value exist.
3660 </summary>
3661 </member>
3662 <member name="P:HttpServer.HttpInputItem.LastValue">
3663 <summary>
3664 Returns the last value, or null if no value exist.
3665 </summary>
3666 </member>
3667 <member name="P:HttpServer.HttpInputItem.Values">
3668 <summary>
3669 Returns the list with values.
3670 </summary>
3671 </member>
3672 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)">
3673 <summary>
3674  
3675 </summary>
3676 <param name="name">name in lower case</param>
3677 <returns></returns>
3678 </member>
3679 <member name="T:HttpServer.Helpers.ResourceManager">
3680 <summary>Class to handle loading of resource files</summary>
3681 </member>
3682 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
3683 <summary>
3684 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
3685 </summary>
3686 </member>
3687 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
3688 <summary>
3689 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
3690 </summary>
3691 <param name="writer">logger.</param>
3692 </member>
3693 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
3694 <summary>
3695 Loads resources from a namespace in the given assembly to an URI
3696 </summary>
3697 <param name="toUri">The URI to map the resources to</param>
3698 <param name="fromAssembly">The assembly in which the resources reside</param>
3699 <param name="fromNamespace">The namespace from which to load the resources</param>
3700 <usage>
3701 <code>
3702 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
3703 </code>
3704 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
3705 </usage>
3706 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3707 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
3708 </member>
3709 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
3710 <summary>
3711 Retrieves a stream for the specified resource path if loaded otherwise null
3712 </summary>
3713 <param name="path">Path to the resource to retrieve a stream for</param>
3714 <returns>A stream or null if the resource couldn't be found</returns>
3715 </member>
3716 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
3717 <summary>
3718 Fetch all files from the resource that matches the specified arguments.
3719 </summary>
3720 <param name="path">The path to the resource to extract</param>
3721 <returns>
3722 a list of files if found; or an empty array if no files are found.
3723 </returns>
3724 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
3725 </member>
3726 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
3727 <summary>
3728 Fetch all files from the resource that matches the specified arguments.
3729 </summary>
3730 <param name="path">Where the file should reside.</param>
3731 <param name="filename">Files to check</param>
3732 <returns>
3733 a list of files if found; or an empty array if no files are found.
3734 </returns>
3735 </member>
3736 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
3737 <summary>
3738 Returns whether or not the loader has an instance of the file requested
3739 </summary>
3740 <param name="filename">The name of the template/file</param>
3741 <returns>True if the loader can provide the file</returns>
3742 </member>
3743 <member name="T:HttpServer.Parser.RequestLineEventArgs">
3744 <summary>
3745 Used when the request line have been successfully parsed.
3746 </summary>
3747 </member>
3748 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)">
3749 <summary>
3750 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3751 </summary>
3752 <param name="httpMethod">The HTTP method.</param>
3753 <param name="uriPath">The URI path.</param>
3754 <param name="httpVersion">The HTTP version.</param>
3755 </member>
3756 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor">
3757 <summary>
3758 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3759 </summary>
3760 </member>
3761 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod">
3762 <summary>
3763 Gets or sets http method.
3764 </summary>
3765 <remarks>
3766 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
3767 </remarks>
3768 </member>
3769 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion">
3770 <summary>
3771 Gets or sets the version of the HTTP protocol that the client want to use.
3772 </summary>
3773 </member>
3774 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath">
3775 <summary>
3776 Gets or sets requested URI path.
3777 </summary>
3778 </member>
3779 <member name="T:HttpServer.IHttpContextHandler">
3780 <summary>
3781 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
3782 </summary>
3783 </member>
3784 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
3785 <summary>
3786 Client have been disconnected.
3787 </summary>
3788 <param name="client">Client that was disconnected.</param>
3789 <param name="error">Reason</param>
3790 <see cref="T:HttpServer.IHttpClientContext"/>
3791 </member>
3792 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
3793 <summary>
3794 Invoked when a client context have received a new HTTP request
3795 </summary>
3796 <param name="client">Client that received the request.</param>
3797 <param name="request">Request that was received.</param>
3798 <see cref="T:HttpServer.IHttpClientContext"/>
3799 </member>
3800 <member name="T:HttpServer.HttpForm">
3801 <summary>Container for posted form data</summary>
3802 </member>
3803 <member name="F:HttpServer.HttpForm.EmptyForm">
3804 <summary>Instance to help mark a non-initialized form</summary>
3805 </member>
3806 <member name="M:HttpServer.HttpForm.#ctor">
3807 <summary>Initializes a form container with the specified name</summary>
3808 </member>
3809 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)">
3810 <summary>
3811 Makes a deep copy of the input
3812 </summary>
3813 <param name="input">The input to copy</param>
3814 </member>
3815 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)">
3816 <summary>
3817 Adds a file to the collection of posted files
3818 </summary>
3819 <param name="file">The file to add</param>
3820 <exception cref="T:System.ArgumentException">If the file is already added</exception>
3821 <exception cref="T:System.ArgumentNullException">If file is null</exception>
3822 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
3823 </member>
3824 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)">
3825 <summary>
3826 Checks if the form contains a specified file
3827 </summary>
3828 <param name="name">Field name of the file parameter</param>
3829 <returns>True if the file exists</returns>
3830 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
3831 </member>
3832 <member name="M:HttpServer.HttpForm.GetFile(System.String)">
3833 <summary>
3834 Retrieves a file held by by the form
3835 </summary>
3836 <param name="name">The identifier of the file</param>
3837 <returns>The requested file or null if the file was not found</returns>
3838 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception>
3839 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
3840 </member>
3841 <member name="M:HttpServer.HttpForm.Clear">
3842 <summary>Disposes all held HttpFile's and resets values</summary>
3843 </member>
3844 <member name="P:HttpServer.HttpForm.Files">
3845 <summary>
3846 Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/>
3847 </summary>
3848 <returns>0 if no files are added</returns>
3849 </member>
3850 <member name="T:HttpServer.HttpClientContext">
3851 <summary>
3852 Contains a connection to a browser/client.
3853 </summary>
3854 <remarks>
3855 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
3856 </remarks>
3857 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
3858 </member>
3859 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
3860 <summary>
3861 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
3862 </summary>
3863 <param name="secured">true if the connection is secured (SSL/TLS)</param>
3864 <param name="remoteEndPoint">client that connected.</param>
3865 <param name="stream">Stream used for communication</param>
3866 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
3867 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param>
3868 <exception cref="T:System.Net.Sockets.SocketException">If <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> fails</exception>
3869 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
3870 </member>
3871 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
3872 <summary>
3873 Process incoming body bytes.
3874 </summary>
3875 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
3876 <param name="e">Bytes</param>
3877 </member>
3878 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
3879 <summary>
3880  
3881 </summary>
3882 <param name="sender"></param>
3883 <param name="e"></param>
3884 </member>
3885 <member name="M:HttpServer.HttpClientContext.Start">
3886 <summary>
3887 Start reading content.
3888 </summary>
3889 <remarks>
3890 Make sure to call base.Start() if you override this method.
3891 </remarks>
3892 </member>
3893 <member name="M:HttpServer.HttpClientContext.Cleanup">
3894 <summary>
3895 Clean up context.
3896 </summary>
3897 <remarks>
3898 Make sure to call base.Cleanup() if you override the method.
3899 </remarks>
3900 </member>
3901 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
3902 <summary>
3903 Disconnect from client
3904 </summary>
3905 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
3906 </member>
3907 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
3908 <summary>
3909 Send a response.
3910 </summary>
3911 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3912 <param name="statusCode">HTTP status code</param>
3913 <param name="reason">reason for the status code.</param>
3914 <param name="body">HTML body contents, can be null or empty.</param>
3915 <param name="contentType">A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty</param>
3916 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
3917 </member>
3918 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
3919 <summary>
3920 Send a response.
3921 </summary>
3922 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3923 <param name="statusCode">HTTP status code</param>
3924 <param name="reason">reason for the status code.</param>
3925 </member>
3926 <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
3927 <summary>
3928 Send a response.
3929 </summary>
3930 <exception cref="T:System.ArgumentNullException"></exception>
3931 </member>
3932 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
3933 <summary>
3934 send a whole buffer
3935 </summary>
3936 <param name="buffer">buffer to send</param>
3937 <exception cref="T:System.ArgumentNullException"></exception>
3938 </member>
3939 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
3940 <summary>
3941 Send data using the stream
3942 </summary>
3943 <param name="buffer">Contains data to send</param>
3944 <param name="offset">Start position in buffer</param>
3945 <param name="size">number of bytes to send</param>
3946 <exception cref="T:System.ArgumentNullException"></exception>
3947 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
3948 </member>
3949 <member name="E:HttpServer.HttpClientContext.Cleaned">
3950 <summary>
3951 This context have been cleaned, which means that it can be reused.
3952 </summary>
3953 </member>
3954 <member name="E:HttpServer.HttpClientContext.Started">
3955 <summary>
3956 Context have been started (a new client have connected)
3957 </summary>
3958 </member>
3959 <member name="P:HttpServer.HttpClientContext.CurrentRequest">
3960 <summary>
3961 Overload to specify own type.
3962 </summary>
3963 <remarks>
3964 Must be specified before the context is being used.
3965 </remarks>
3966 </member>
3967 <member name="P:HttpServer.HttpClientContext.Secured">
3968 <summary>
3969 Using SSL or other encryption method.
3970 </summary>
3971 </member>
3972 <member name="P:HttpServer.HttpClientContext.IsSecured">
3973 <summary>
3974 Using SSL or other encryption method.
3975 </summary>
3976 </member>
3977 <member name="P:HttpServer.HttpClientContext.LogWriter">
3978 <summary>
3979 Specify which logger to use.
3980 </summary>
3981 </member>
3982 <member name="P:HttpServer.HttpClientContext.Stream">
3983 <summary>
3984 Gets or sets the network stream.
3985 </summary>
3986 </member>
3987 <member name="P:HttpServer.HttpClientContext.RemoteAddress">
3988 <summary>
3989 Gets or sets IP address that the client connected from.
3990 </summary>
3991 </member>
3992 <member name="P:HttpServer.HttpClientContext.RemotePort">
3993 <summary>
3994 Gets or sets port that the client connected from.
3995 </summary>
3996 </member>
3997 <member name="E:HttpServer.HttpClientContext.Disconnected">
3998 <summary>
3999 The context have been disconnected.
4000 </summary>
4001 <remarks>
4002 Event can be used to clean up a context, or to reuse it.
4003 </remarks>
4004 </member>
4005 <member name="E:HttpServer.HttpClientContext.RequestReceived">
4006 <summary>
4007 A request have been received in the context.
4008 </summary>
4009 </member>
4010 <member name="T:HttpServer.Helpers.XmlHelper">
4011 <summary>
4012 Helpers to make XML handling easier
4013 </summary>
4014 </member>
4015 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
4016 <summary>
4017 Serializes object to XML.
4018 </summary>
4019 <param name="value">object to serialize.</param>
4020 <returns>XML</returns>
4021 <remarks>
4022 Removes name spaces and adds indentation
4023 </remarks>
4024 </member>
4025 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
4026 <summary>
4027 Create an object from a XML string
4028 </summary>
4029 <typeparam name="T">Type of object</typeparam>
4030 <param name="xml">XML string</param>
4031 <returns>object</returns>
4032 </member>
4033 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine">
4034 <summary>
4035  
4036 </summary>
4037 <returns></returns>
4038 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
4039 <exception cref="T:System.ObjectDisposedException"></exception>
4040 </member>
4041 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
4042 <summary>Represents a field in a multipart form</summary>
4043 </member>
4044 <member name="T:HttpServer.Check">
4045 <summary>
4046 Small design by contract implementation.
4047 </summary>
4048 </member>
4049 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
4050 <summary>
4051 Check whether a parameter is empty.
4052 </summary>
4053 <param name="value">Parameter value</param>
4054 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4055 <exception cref="T:System.ArgumentException">value is empty.</exception>
4056 </member>
4057 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
4058 <summary>
4059 Checks whether a parameter is null.
4060 </summary>
4061 <param name="value">Parameter value</param>
4062 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4063 <exception cref="T:System.ArgumentNullException">value is null.</exception>
4064 </member>
4065 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
4066 <summary>
4067 Checks whether a parameter is null.
4068 </summary>
4069 <param name="minValue"></param>
4070 <param name="value">Parameter value</param>
4071 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4072 <exception cref="T:System.ArgumentException">value is null.</exception>
4073 </member>
4074 <member name="T:HttpServer.LogPrio">
4075 <summary>
4076 Priority for log entries
4077 </summary>
4078 <seealso cref="T:HttpServer.ILogWriter"/>
4079 </member>
4080 <member name="F:HttpServer.LogPrio.Trace">
4081 <summary>
4082 Very detailed logs to be able to follow the flow of the program.
4083 </summary>
4084 </member>
4085 <member name="F:HttpServer.LogPrio.Debug">
4086 <summary>
4087 Logs to help debug errors in the application
4088 </summary>
4089 </member>
4090 <member name="F:HttpServer.LogPrio.Info">
4091 <summary>
4092 Information to be able to keep track of state changes etc.
4093 </summary>
4094 </member>
4095 <member name="F:HttpServer.LogPrio.Warning">
4096 <summary>
4097 Something did not go as we expected, but it's no problem.
4098 </summary>
4099 </member>
4100 <member name="F:HttpServer.LogPrio.Error">
4101 <summary>
4102 Something that should not fail failed, but we can still keep
4103 on going.
4104 </summary>
4105 </member>
4106 <member name="F:HttpServer.LogPrio.Fatal">
4107 <summary>
4108 Something failed, and we cannot handle it properly.
4109 </summary>
4110 </member>
4111 <member name="T:HttpServer.ILogWriter">
4112 <summary>
4113 Interface used to write to log files.
4114 </summary>
4115 </member>
4116 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
4117 <summary>
4118 Write an entry to the log file.
4119 </summary>
4120 <param name="source">object that is writing to the log</param>
4121 <param name="priority">importance of the log message</param>
4122 <param name="message">the message</param>
4123 </member>
4124 <member name="T:HttpServer.ConsoleLogWriter">
4125 <summary>
4126 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
4127 </summary>
4128 <seealso cref="T:HttpServer.ILogWriter"/>
4129 </member>
4130 <member name="F:HttpServer.ConsoleLogWriter.Instance">
4131 <summary>
4132 The actual instance of this class.
4133 </summary>
4134 </member>
4135 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
4136 <summary>
4137 Logwriters the specified source.
4138 </summary>
4139 <param name="source">object that wrote the logentry.</param>
4140 <param name="prio">Importance of the log message</param>
4141 <param name="message">The message.</param>
4142 </member>
4143 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)">
4144 <summary>
4145 Get color for the specified logprio
4146 </summary>
4147 <param name="prio">prio for the log entry</param>
4148 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
4149 </member>
4150 <member name="T:HttpServer.NullLogWriter">
4151 <summary>
4152 Default log writer, writes everything to null (nowhere).
4153 </summary>
4154 <seealso cref="T:HttpServer.ILogWriter"/>
4155 </member>
4156 <member name="F:HttpServer.NullLogWriter.Instance">
4157 <summary>
4158 The logging instance.
4159 </summary>
4160 </member>
4161 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
4162 <summary>
4163 Writes everything to null
4164 </summary>
4165 <param name="source">object that wrote the log entry.</param>
4166 <param name="prio">Importance of the log message</param>
4167 <param name="message">The message.</param>
4168 </member>
4169 <member name="T:HttpServer.HttpResponse">
4170 <summary>
4171 Response that is sent back to the web browser / client.
4172 </summary>
4173 <remarks>
4174 <para>
4175 A response can be sent if different ways. The easiest one is
4176 to just fill the Body stream with content, everything else
4177 will then be taken care of by the framework. The default content-type
4178 is text/html, you should change it if you send anything else.
4179 </para><para>
4180 The second and slightly more complex way is to send the response
4181 as parts. Start with sending the header using the SendHeaders method and
4182 then you can send the body using SendBody method, but do not forget
4183 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
4184 </para>
4185 </remarks>
4186 <example>
4187 <code>
4188 // Example using response body.
4189 class MyModule : HttpModule
4190 {
4191 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
4192 {
4193 StreamWriter writer = new StreamWriter(response.Body);
4194 writer.WriteLine("Hello dear World!");
4195 writer.Flush();
4196  
4197 // return true to tell webserver that we've handled the url
4198 return true;
4199 }
4200 }
4201 </code>
4202 </example>
4203 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
4204 </member>
4205 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
4206 <summary>
4207 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
4208 </summary>
4209 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
4210 <param name="request">Contains information of what the client want to receive.</param>
4211 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
4212 </member>
4213 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)">
4214 <summary>
4215 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
4216 </summary>
4217 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
4218 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
4219 <param name="connectionType">Type of HTTP connection used.</param>
4220 </member>
4221 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)">
4222 <summary>
4223 Add another header to the document.
4224 </summary>
4225 <param name="name">Name of the header, case sensitive, use lower cases.</param>
4226 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
4227 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4228 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
4229 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
4230 </member>
4231 <member name="M:HttpServer.HttpResponse.Send">
4232 <summary>
4233 Send headers and body to the browser.
4234 </summary>
4235 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
4236 </member>
4237 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
4238 <summary>
4239 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
4240 </summary>
4241 <param name="buffer"></param>
4242 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
4243 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
4244 <param name="offset">offset of first byte to send</param>
4245 <param name="count">number of bytes to send.</param>
4246 <seealso cref="M:HttpServer.HttpResponse.Send"/>
4247 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
4248 <remarks>This method can be used if you want to send body contents without caching them first. This
4249 is recommended for larger files to keep the memory usage low.</remarks>
4250 </member>
4251 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])">
4252 <summary>
4253 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
4254 </summary>
4255 <param name="buffer"></param>
4256 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
4257 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
4258 <seealso cref="M:HttpServer.HttpResponse.Send"/>
4259 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
4260 <remarks>This method can be used if you want to send body contents without caching them first. This
4261 is recommended for larger files to keep the memory usage low.</remarks>
4262 </member>
4263 <member name="M:HttpServer.HttpResponse.SendHeaders">
4264 <summary>
4265 Send headers to the client.
4266 </summary>
4267 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4268 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
4269 <seealso cref="M:HttpServer.HttpResponse.Send"/>
4270 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
4271 </member>
4272 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)">
4273 <summary>
4274 Redirect client to somewhere else using the 302 status code.
4275 </summary>
4276 <param name="uri">Destination of the redirect</param>
4277 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4278 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
4279 action.</remarks>
4280 </member>
4281 <member name="M:HttpServer.HttpResponse.Redirect(System.String)">
4282 <summary>
4283 redirect to somewhere
4284 </summary>
4285 <param name="url">where the redirect should go</param>
4286 <remarks>
4287 No body are allowed when doing redirects.
4288 </remarks>
4289 </member>
4290 <member name="P:HttpServer.HttpResponse.Body">
4291 <summary>
4292 The body stream is used to cache the body contents
4293 before sending everything to the client. It's the simplest
4294 way to serve documents.
4295 </summary>
4296 </member>
4297 <member name="P:HttpServer.HttpResponse.Chunked">
4298 <summary>
4299 The chunked encoding modifies the body of a message in order to
4300 transfer it as a series of chunks, each with its own size indicator,
4301 followed by an OPTIONAL trailer containing entity-header fields. This
4302 allows dynamically produced content to be transferred along with the
4303 information necessary for the recipient to verify that it has
4304 received the full message.
4305 </summary>
4306 </member>
4307 <member name="P:HttpServer.HttpResponse.ProtocolVersion">
4308 <summary>
4309 Defines the version of the HTTP Response for applications where it's required
4310 for this to be forced.
4311 </summary>
4312 </member>
4313 <member name="P:HttpServer.HttpResponse.Connection">
4314 <summary>
4315 Kind of connection
4316 </summary>
4317 </member>
4318 <member name="P:HttpServer.HttpResponse.Encoding">
4319 <summary>
4320 Encoding to use when sending stuff to the client.
4321 </summary>
4322 <remarks>Default is UTF8</remarks>
4323 </member>
4324 <member name="P:HttpServer.HttpResponse.KeepAlive">
4325 <summary>
4326 Number of seconds to keep connection alive
4327 </summary>
4328 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks>
4329 </member>
4330 <member name="P:HttpServer.HttpResponse.Status">
4331 <summary>
4332 Status code that is sent to the client.
4333 </summary>
4334 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks>
4335 </member>
4336 <member name="P:HttpServer.HttpResponse.Reason">
4337 <summary>
4338 Information about why a specific status code was used.
4339 </summary>
4340 </member>
4341 <member name="P:HttpServer.HttpResponse.ContentLength">
4342 <summary>
4343 Size of the body. MUST be specified before sending the header,
4344 unless property Chunked is set to true.
4345 </summary>
4346 </member>
4347 <member name="P:HttpServer.HttpResponse.ContentType">
4348 <summary>
4349 Kind of content in the body
4350 </summary>
4351 <remarks>Default type is "text/html"</remarks>
4352 </member>
4353 <member name="P:HttpServer.HttpResponse.HeadersSent">
4354 <summary>
4355 Headers have been sent to the client-
4356 </summary>
4357 <remarks>You can not send any additional headers if they have already been sent.</remarks>
4358 </member>
4359 <member name="P:HttpServer.HttpResponse.Sent">
4360 <summary>
4361 The whole response have been sent.
4362 </summary>
4363 </member>
4364 <member name="P:HttpServer.HttpResponse.Cookies">
4365 <summary>
4366 Cookies that should be created/changed.
4367 </summary>
4368 </member>
4369 <member name="T:HttpServer.Exceptions.NotFoundException">
4370 <summary>
4371 The requested resource was not found in the web server.
4372 </summary>
4373 </member>
4374 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
4375 <summary>
4376 Create a new exception
4377 </summary>
4378 <param name="message">message describing the error</param>
4379 <param name="inner">inner exception</param>
4380 </member>
4381 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
4382 <summary>
4383 Create a new exception
4384 </summary>
4385 <param name="message">message describing the error</param>
4386 </member>
4387 <member name="T:HttpServer.ContextTimeoutManager">
4388 <summary>
4389 Timeout Manager. Checks for dead clients. Clients with open connections that are not doing anything. Closes sessions opened with keepalive.
4390 </summary>
4391 </member>
4392 <member name="M:HttpServer.ContextTimeoutManager.ProcessContextTimeouts">
4393 <summary>
4394 Causes the watcher to immediately check the connections.
4395 </summary>
4396 </member>
4397 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCount">
4398 <summary>
4399 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4400 and negative every 24.9 days. This trims down TickCount so it doesn't wrap
4401 for the callers.
4402 This trims it to a 12 day interval so don't let your frame time get too long.
4403 </summary>
4404 <returns></returns>
4405 </member>
4406 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCountSubtract(System.Int32,System.Int32)">
4407 <summary>
4408 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4409 and negative every 24.9 days. Subtracts the passed value (previously fetched by
4410 'EnvironmentTickCount()') and accounts for any wrapping.
4411 </summary>
4412 <param name="newValue"></param>
4413 <param name="prevValue"></param>
4414 <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
4415 </member>
4416 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCountAdd(System.Int32,System.Int32)">
4417 <summary>
4418 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4419 and negative every 24.9 days. Subtracts the passed value (previously fetched by
4420 'EnvironmentTickCount()') and accounts for any wrapping.
4421 </summary>
4422 <param name="newValue"></param>
4423 <param name="prevValue"></param>
4424 <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
4425 </member>
4426 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCountSubtract(System.Int32)">
4427 <summary>
4428 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4429 and negative every 24.9 days. Subtracts the passed value (previously fetched by
4430 'EnvironmentTickCount()') and accounts for any wrapping.
4431 </summary>
4432 <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
4433 </member>
4434 <member name="T:HttpServer.ContextTimeoutManager.MonitorType">
4435 <summary>
4436 Use a Thread or a Timer to monitor the ugly
4437 </summary>
4438 </member>
4439 <member name="T:HttpServer.Sessions.MemorySessionStore">
4440 <summary>
4441 Session store using memory for each session.
4442 </summary>
4443 </member>
4444 <member name="T:HttpServer.Sessions.IHttpSessionStore">
4445 <summary>
4446 A session store is used to store and load sessions on a media.
4447 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
4448 </summary>
4449 </member>
4450 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create">
4451 <summary>
4452 Creates a new http session with a generated id.
4453 </summary>
4454 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
4455 </member>
4456 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)">
4457 <summary>
4458 Creates a new http session with a specific id
4459 </summary>
4460 <param name="id">Id used to identify the new cookie..</param>
4461 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4462 <remarks>
4463 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4464 </remarks>
4465 </member>
4466 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)">
4467 <summary>
4468 Load an existing session.
4469 </summary>
4470 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
4471 <returns>A session if found; otherwise null.</returns>
4472 </member>
4473 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
4474 <summary>
4475 Save an updated session to the store.
4476 </summary>
4477 <param name="session">Session id (usually retrieved from a client side cookie).</param>
4478 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
4479 </member>
4480 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
4481 <summary>
4482 We use the flyweight pattern which reuses small objects
4483 instead of creating new each time.
4484 </summary>
4485 <param name="session">Unused session that should be reused next time Create is called.</param>
4486 </member>
4487 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
4488 <summary>
4489 Remove expired sessions
4490 </summary>
4491 </member>
4492 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)">
4493 <summary>
4494 Remove a session
4495 </summary>
4496 <param name="sessionId">id of the session.</param>
4497 </member>
4498 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)">
4499 <summary>
4500 Load a session from the store
4501 </summary>
4502 <param name="sessionId"></param>
4503 <returns>null if session is not found.</returns>
4504 </member>
4505 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime">
4506 <summary>
4507 Number of minutes before a session expires.
4508 </summary>
4509 <value>Default time is 20 minutes.</value>
4510 </member>
4511 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor">
4512 <summary>
4513 Initializes the class setting the expirationtimer to clean the session every minute
4514 </summary>
4515 </member>
4516 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)">
4517 <summary>
4518 Delegate for the cleanup timer
4519 </summary>
4520 </member>
4521 <member name="M:HttpServer.Sessions.MemorySessionStore.Create">
4522 <summary>
4523 Creates a new http session
4524 </summary>
4525 <returns></returns>
4526 </member>
4527 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)">
4528 <summary>
4529 Creates a new http session with a specific id
4530 </summary>
4531 <param name="id">Id used to identify the new cookie..</param>
4532 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4533 <remarks>
4534 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4535 </remarks>
4536 </member>
4537 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)">
4538 <summary>
4539 Load an existing session.
4540 </summary>
4541 <param name="sessionId"></param>
4542 <returns></returns>
4543 </member>
4544 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)">
4545 <summary>
4546 Save an updated session to the store.
4547 </summary>
4548 <param name="session"></param>
4549 </member>
4550 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
4551 <summary>
4552 We use the flyweight pattern which reuses small objects
4553 instead of creating new each time.
4554 </summary>
4555 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
4556 </member>
4557 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup">
4558 <summary>
4559 Remove expired sessions
4560 </summary>
4561 </member>
4562 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)">
4563 <summary>
4564 Remove a session
4565 </summary>
4566 <param name="sessionId">id of the session.</param>
4567 </member>
4568 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)">
4569 <summary>
4570 Load a session from the store
4571 </summary>
4572 <param name="sessionId"></param>
4573 <returns>null if session is not found.</returns>
4574 </member>
4575 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime">
4576 <summary>
4577 Number of minutes before a session expires.
4578 Default is 20 minutes.
4579 </summary>
4580 </member>
4581 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
4582 <summary>
4583 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
4584 </summary>
4585 </member>
4586 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
4587 <summary>
4588 Instantiates the arguments for the event
4589 </summary>
4590 <param name="expired">True if the session is cleared due to expiration</param>
4591 </member>
4592 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
4593 <summary>
4594 Returns true if the session is cleared due to expiration
4595 </summary>
4596 </member>
4597 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
4598 <summary>
4599 Delegate for when a IHttpSession is cleared
4600 </summary>
4601 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
4602 <param name="args">Arguments for the clearing</param>
4603 </member>
4604 <member name="T:HttpServer.RequestQueue">
4605 <summary>
4606 Used to queue incoming requests.
4607 </summary>
4608 </member>
4609 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
4610 <summary>
4611 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
4612 </summary>
4613 <param name="handler">Called when a request should be processed.</param>
4614 </member>
4615 <member name="M:HttpServer.RequestQueue.QueueThread">
4616 <summary>
4617 Used to process queued requests.
4618 </summary>
4619 </member>
4620 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
4621 <summary>
4622 Gets or sets maximum number of allowed simultaneous requests.
4623 </summary>
4624 </member>
4625 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
4626 <summary>
4627 Gets or sets maximum number of requests queuing to be handled.
4628 </summary>
4629 </member>
4630 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
4631 <summary>
4632 Specifies how many requests the HTTP server is currently processing.
4633 </summary>
4634 </member>
4635 <member name="T:HttpServer.RequestQueue.QueueItem">
4636 <summary>
4637 Used two queue incoming requests to avoid
4638 thread starvation.
4639 </summary>
4640 </member>
4641 <member name="T:HttpServer.ProcessRequestHandler">
4642 <summary>
4643 Method used to process a queued request
4644 </summary>
4645 <param name="context">Context that the request was received from.</param>
4646 <param name="request">Request to process.</param>
4647 </member>
4648 <member name="T:HttpServer.Parser.HeaderEventArgs">
4649 <summary>
4650 Event arguments used when a new header have been parsed.
4651 </summary>
4652 </member>
4653 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
4654 <summary>
4655 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
4656 </summary>
4657 <param name="name">Name of header.</param>
4658 <param name="value">Header value.</param>
4659 </member>
4660 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
4661 <summary>
4662 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
4663 </summary>
4664 </member>
4665 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
4666 <summary>
4667 Gets or sets header name.
4668 </summary>
4669 </member>
4670 <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
4671 <summary>
4672 Gets or sets header value.
4673 </summary>
4674 </member>
4675 <member name="T:HttpServer.HttpRequest">
4676 <summary>
4677 Contains server side HTTP request information.
4678 </summary>
4679 </member>
4680 <member name="F:HttpServer.HttpRequest.UriSplitters">
4681 <summary>
4682 Chars used to split an URL path into multiple parts.
4683 </summary>
4684 </member>
4685 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)">
4686 <summary>
4687 Assign a form.
4688 </summary>
4689 <param name="form"></param>
4690 </member>
4691 <member name="M:HttpServer.HttpRequest.Clone">
4692 <summary>
4693 Creates a new object that is a copy of the current instance.
4694 </summary>
4695  
4696 <returns>
4697 A new object that is a copy of this instance.
4698 </returns>
4699 <filterpriority>2</filterpriority>
4700 </member>
4701 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
4702 <summary>
4703 Decode body into a form.
4704 </summary>
4705 <param name="providers">A list with form decoders.</param>
4706 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
4707 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
4708 </member>
4709 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)">
4710 <summary>
4711 Cookies
4712 </summary>
4713 <param name="cookies">the cookies</param>
4714 </member>
4715 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
4716 <summary>
4717 Create a response object.
4718 </summary>
4719 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
4720 </member>
4721 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)">
4722 <summary>
4723 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
4724 </summary>
4725 <param name="name">Name of the header, should not be URL encoded</param>
4726 <param name="value">Value of the header, should not be URL encoded</param>
4727 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
4728 </member>
4729 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
4730 <summary>
4731 Add bytes to the body
4732 </summary>
4733 <param name="bytes">buffer to read bytes from</param>
4734 <param name="offset">where to start read</param>
4735 <param name="length">number of bytes to read</param>
4736 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
4737 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
4738 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
4739 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
4740 </member>
4741 <member name="M:HttpServer.HttpRequest.Clear">
4742 <summary>
4743 Clear everything in the request
4744 </summary>
4745 </member>
4746 <member name="P:HttpServer.HttpRequest.Secure">
4747 <summary>
4748 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure.
4749 </summary>
4750 </member>
4751 <member name="P:HttpServer.HttpRequest.UriPath">
4752 <summary>
4753 Path and query (will be merged with the host header) and put in Uri
4754 </summary>
4755 <see cref="P:HttpServer.HttpRequest.Uri"/>
4756 </member>
4757 <member name="P:HttpServer.HttpRequest.BodyIsComplete">
4758 <summary>
4759 Gets whether the body is complete.
4760 </summary>
4761 </member>
4762 <member name="P:HttpServer.HttpRequest.AcceptTypes">
4763 <summary>
4764 Gets kind of types accepted by the client.
4765 </summary>
4766 </member>
4767 <member name="P:HttpServer.HttpRequest.Body">
4768 <summary>
4769 Gets or sets body stream.
4770 </summary>
4771 </member>
4772 <member name="P:HttpServer.HttpRequest.Connection">
4773 <summary>
4774 Gets or sets kind of connection used for the session.
4775 </summary>
4776 </member>
4777 <member name="P:HttpServer.HttpRequest.ContentLength">
4778 <summary>
4779 Gets or sets number of bytes in the body.
4780 </summary>
4781 </member>
4782 <member name="P:HttpServer.HttpRequest.Headers">
4783 <summary>
4784 Gets headers sent by the client.
4785 </summary>
4786 </member>
4787 <member name="P:HttpServer.HttpRequest.HttpVersion">
4788 <summary>
4789 Gets or sets version of HTTP protocol that's used.
4790 </summary>
4791 <remarks>
4792 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
4793 </remarks>
4794 <seealso cref="T:HttpServer.HttpHelper"/>
4795 </member>
4796 <member name="P:HttpServer.HttpRequest.Method">
4797 <summary>
4798 Gets or sets requested method.
4799 </summary>
4800 <value></value>
4801 <remarks>
4802 Will always be in upper case.
4803 </remarks>
4804 <see cref="!:HttpServer.Method"/>
4805 </member>
4806 <member name="P:HttpServer.HttpRequest.QueryString">
4807 <summary>
4808 Gets variables sent in the query string
4809 </summary>
4810 </member>
4811 <member name="P:HttpServer.HttpRequest.Uri">
4812 <summary>
4813 Gets or sets requested URI.
4814 </summary>
4815 </member>
4816 <member name="P:HttpServer.HttpRequest.UriParts">
4817 <summary>
4818 Uri absolute path splitted into parts.
4819 </summary>
4820 <example>
4821 // uri is: http://gauffin.com/code/tiny/
4822 Console.WriteLine(request.UriParts[0]); // result: code
4823 Console.WriteLine(request.UriParts[1]); // result: tiny
4824 </example>
4825 <remarks>
4826 If you're using controllers than the first part is controller name,
4827 the second part is method name and the third part is Id property.
4828 </remarks>
4829 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
4830 </member>
4831 <member name="P:HttpServer.HttpRequest.Param">
4832 <summary>
4833 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>.
4834 </summary>
4835 </member>
4836 <member name="P:HttpServer.HttpRequest.Form">
4837 <summary>
4838 Gets form parameters.
4839 </summary>
4840 </member>
4841 <member name="P:HttpServer.HttpRequest.IsAjax">
4842 <summary>
4843 Gets whether the request was made by Ajax (Asynchronous JavaScript)
4844 </summary>
4845 </member>
4846 <member name="P:HttpServer.HttpRequest.Cookies">
4847 <summary>
4848 Gets cookies that was sent with the request.
4849 </summary>
4850 </member>
4851 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)">
4852 <summary>
4853 Add a component instance
4854 </summary>
4855 <typeparam name="T">Interface type</typeparam>
4856 <param name="instance">Instance to add</param>
4857 </member>
4858 <member name="M:HttpServer.ComponentProvider.Get``1">
4859 <summary>
4860 Get a component.
4861 </summary>
4862 <typeparam name="T">Interface type</typeparam>
4863 <returns>Component if registered, otherwise null.</returns>
4864 <remarks>
4865 Component will get created if needed.
4866 </remarks>
4867 </member>
4868 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)">
4869 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
4870 </member>
4871 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
4872 <summary>
4873 Checks if the specified component interface have been added.
4874 </summary>
4875 <param name="interfaceType"></param>
4876 <returns>true if found; otherwise false.</returns>
4877 </member>
4878 <member name="M:HttpServer.ComponentProvider.Add``2">
4879 <summary>
4880 Add a component.
4881 </summary>
4882 <typeparam name="InterfaceType">Type being requested.</typeparam>
4883 <typeparam name="InstanceType">Type being created.</typeparam>
4884 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception>
4885 </member>
4886 <member name="T:HttpServer.Rules.RegexRedirectRule">
4887 <summary>
4888 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
4889 a regular expression can be used to identify redirect URLs and their targets.
4890 </summary>
4891 <example>
4892 <![CDATA[
4893 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
4894 ]]>
4895 </example>
4896 </member>
4897 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)">
4898 <summary>
4899 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
4900 </summary>
4901 <param name="fromUrlExpression">Expression to match URL</param>
4902 <param name="toUrlExpression">Expression to generate URL</param>
4903 <example>
4904 <![CDATA[
4905 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
4906 Result of ie. /employee1 will then be /user/employee1
4907 ]]>
4908 </example>
4909 </member>
4910 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
4911 <summary>
4912 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
4913 </summary>
4914 <param name="fromUrlExpression">Expression to match URL</param>
4915 <param name="toUrlExpression">Expression to generate URL</param>
4916 <param name="options">Regular expression options to use, can be null</param>
4917 <example>
4918 <![CDATA[
4919 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
4920 Result of ie. /employee1 will then be /user/employee1
4921 ]]>
4922 </example>
4923 </member>
4924 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)">
4925 <summary>
4926 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
4927 </summary>
4928 <param name="fromUrlExpression">Expression to match URL</param>
4929 <param name="toUrlExpression">Expression to generate URL</param>
4930 <param name="options">Regular expression options to apply</param>
4931 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
4932 <example>
4933 <![CDATA[
4934 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
4935 Result of ie. /employee1 will then be /user/employee1
4936 ]]>
4937 </example>
4938 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
4939 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/>
4940 </member>
4941 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
4942 <summary>
4943 Process the incoming request.
4944 </summary>
4945 <param name="request">incoming HTTP request</param>
4946 <param name="response">outgoing HTTP response</param>
4947 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
4948 <remarks>
4949 returning true means that no modules will get the request. Returning true is typically being done
4950 for redirects.
4951 </remarks>
4952 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
4953 </member>
4954 <member name="T:HttpServer.Helpers.ResourceInfo">
4955 <summary>
4956 Container to bind resource names to assemblies
4957 </summary>
4958 </member>
4959 <member name="M:HttpServer.Helpers.ResourceInfo.#ctor(System.String,System.String,System.Reflection.Assembly)">
4960 <summary>
4961 Instantiates an instance of <see cref="T:HttpServer.Helpers.ResourceInfo"/>
4962 </summary>
4963 <param name="uri">The dot seperated uri the resource maps to</param>
4964 <param name="resourceName">The full resource name</param>
4965 <param name="assembly">The assembly the resource exists in</param>
4966 </member>
4967 <member name="M:HttpServer.Helpers.ResourceInfo.GetStream">
4968 <summary>
4969 Retrieves a stream to the resource
4970 </summary>
4971 <returns>Null if the resource couldn't be located somehow</returns>
4972 </member>
4973 <member name="P:HttpServer.Helpers.ResourceInfo.Assembly">
4974 <summary>
4975 Retrieves the assembly the resource resides in
4976 </summary>
4977 </member>
4978 <member name="P:HttpServer.Helpers.ResourceInfo.Uri">
4979 <summary>
4980 Retrieves the full name/path of the assembly
4981 </summary>
4982 </member>
4983 <member name="P:HttpServer.Helpers.ResourceInfo.Extension">
4984 <summary>
4985 Retrieves the extension of the resource
4986 </summary>
4987 </member>
4988 <member name="P:HttpServer.Helpers.ResourceInfo.ExtensionLessUri">
4989 <summary>Returns the Uri without extension</summary>
4990 </member>
4991 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
4992 <summary>Retrieves the full path name to the resource file</summary>
4993 </member>
4994 <member name="T:HttpServer.Authentication.BasicAuthentication">
4995 <summary>
4996 The "basic" authentication scheme is based on the model that the
4997 client must authenticate itself with a user-ID and a password for
4998 each realm. The realm value should be considered an opaque string
4999 which can only be compared for equality with other realms on that
5000 server. The server will service the request only if it can validate
5001 the user-ID and password for the protection space of the Request-URI.
5002 There are no optional authentication parameters.
5003 </summary>
5004 </member>
5005 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
5006 <summary>
5007 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
5008 </summary>
5009 <param name="authenticator">Delegate used to provide information used during authentication.</param>
5010 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
5011 </member>
5012 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
5013 <summary>
5014 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
5015 </summary>
5016 <param name="authenticator">Delegate used to provide information used during authentication.</param>
5017 </member>
5018 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])">
5019 <summary>
5020 Create a response that can be sent in the WWW-Authenticate header.
5021 </summary>
5022 <param name="realm">Realm that the user should authenticate in</param>
5023 <param name="options">Not used in basic auth</param>
5024 <returns>A correct auth request.</returns>
5025 </member>
5026 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
5027 <summary>
5028 An authentication response have been received from the web browser.
5029 Check if it's correct
5030 </summary>
5031 <param name="authenticationHeader">Contents from the Authorization header</param>
5032 <param name="realm">Realm that should be authenticated</param>
5033 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
5034 <param name="options">Not used in basic auth</param>
5035 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
5036 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
5037 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
5038 </member>
5039 <member name="P:HttpServer.Authentication.BasicAuthentication.Name">
5040 <summary>
5041 name used in http request.
5042 </summary>
5043 </member>
5044 <member name="T:HttpServer.RequestParserState">
5045 <summary>
5046 Current state in the parsing.
5047 </summary>
5048 </member>
5049 <member name="F:HttpServer.RequestParserState.FirstLine">
5050 <summary>
5051 Should parse the request line
5052 </summary>
5053 </member>
5054 <member name="F:HttpServer.RequestParserState.HeaderName">
5055 <summary>
5056 Searching for a complete header name
5057 </summary>
5058 </member>
5059 <member name="F:HttpServer.RequestParserState.AfterName">
5060 <summary>
5061 Searching for colon after header name (ignoring white spaces)
5062 </summary>
5063 </member>
5064 <member name="F:HttpServer.RequestParserState.Between">
5065 <summary>
5066 Searching for start of header value (ignoring white spaces)
5067 </summary>
5068 </member>
5069 <member name="F:HttpServer.RequestParserState.HeaderValue">
5070 <summary>
5071 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
5072 </summary>
5073 </member>
5074 <member name="F:HttpServer.RequestParserState.Body">
5075 <summary>
5076 Adding bytes to body
5077 </summary>
5078 </member>
5079 <member name="T:HttpServer.Helpers.JSHelper">
5080 <summary>
5081 Will contain helper functions for javascript.
5082 </summary>
5083 </member>
5084 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])">
5085 <summary>
5086 Requests a url through ajax
5087 </summary>
5088 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5089 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
5090 <returns>a link tag</returns>
5091 <remarks>onclick attribute is used by this method.</remarks>
5092 <example>
5093 <code>
5094 // plain text
5095 JSHelper.AjaxRequest("'/user/show/1'");
5096  
5097 // ajax request using this.href
5098 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
5099 </code>
5100 </example>
5101 </member>
5102 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])">
5103 <summary>
5104 Ajax requests that updates an element with
5105 the fetched content
5106 </summary>
5107 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5108 <param name="targetId">element to update</param>
5109 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
5110 <returns>A link tag.</returns>
5111 <example>
5112 <code>
5113 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
5114 </code>
5115 </example>
5116 </member>
5117 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])">
5118 <summary>
5119 Opens contents in a dialog window.
5120 </summary>
5121 <param name="url">url to contents of dialog</param>
5122 <param name="title">link title</param>
5123 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
5124 </member>
5125 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog">
5126 <summary>
5127 Close a javascript dialog window/div.
5128 </summary>
5129 <returns>javascript for closing a dialog.</returns>
5130 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
5131 </member>
5132 <member name="T:HttpServer.ContentType">
5133 <summary>
5134 Lists content type mime types.
5135 </summary>
5136 </member>
5137 <member name="F:HttpServer.ContentType.Text">
5138 <summary>
5139 text/plain
5140 </summary>
5141 </member>
5142 <member name="F:HttpServer.ContentType.Html">
5143 <summary>
5144 text/haml
5145 </summary>
5146 </member>
5147 <member name="F:HttpServer.ContentType.Javascript">
5148 <summary>
5149 content type for javascript documents = application/javascript
5150 </summary>
5151 <remarks>
5152 <para>
5153 RFC 4329 states that text/javascript have been superseeded by
5154 application/javascript. You might still want to check browser versions
5155 since older ones do not support application/javascript.
5156 </para>
5157 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
5158 </remarks>
5159 </member>
5160 <member name="F:HttpServer.ContentType.Xml">
5161 <summary>
5162 text/xml
5163 </summary>
5164 </member>
5165 <member name="T:HttpServer.ContentTypes">
5166 <summary>
5167 A list of content types
5168 </summary>
5169 </member>
5170 <member name="M:HttpServer.ContentTypes.#ctor(System.String)">
5171 <summary>
5172  
5173 </summary>
5174 <param name="types">Semicolon separated content types.</param>
5175 </member>
5176 <member name="M:HttpServer.ContentTypes.GetEnumerator">
5177 <summary>
5178 Returns an enumerator that iterates through a collection.
5179 </summary>
5180 <returns>
5181 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
5182 </returns>
5183 </member>
5184 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
5185 <summary>
5186 Searches for the specified type
5187 </summary>
5188 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
5189 <returns>true if type was found.</returns>
5190 </member>
5191 <member name="P:HttpServer.ContentTypes.First">
5192 <summary>
5193 Get this first content type.
5194 </summary>
5195 </member>
5196 <member name="P:HttpServer.ContentTypes.Item(System.String)">
5197 <summary>
5198 Fetch a content type
5199 </summary>
5200 <param name="type">Part of type ("xml" would return "application/xml")</param>
5201 <returns></returns>
5202 <remarks>All content types are in lower case.</remarks>
5203 </member>
5204 <member name="T:HttpServer.RequestParserFactory">
5205 <summary>
5206 Creates request parsers when needed.
5207 </summary>
5208 </member>
5209 <member name="T:HttpServer.IRequestParserFactory">
5210 <summary>
5211 Creates request parsers when needed.
5212 </summary>
5213 </member>
5214 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
5215 <summary>
5216 Create a new request parser.
5217 </summary>
5218 <param name="logWriter">Used when logging should be enabled.</param>
5219 <returns>A new request parser.</returns>
5220 </member>
5221 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
5222 <summary>
5223 Create a new request parser.
5224 </summary>
5225 <param name="logWriter">Used when logging should be enabled.</param>
5226 <returns>A new request parser.</returns>
5227 </member>
5228 <member name="T:HttpServer.Exceptions.UnauthorizedException">
5229 <summary>
5230 The request requires user authentication. The response MUST include a
5231 WWW-Authenticate header field (section 14.47) containing a challenge
5232 applicable to the requested resource.
5233  
5234 The client MAY repeat the request with a suitable Authorization header
5235 field (section 14.8). If the request already included Authorization
5236 credentials, then the 401 response indicates that authorization has been
5237 refused for those credentials. If the 401 response contains the same challenge
5238 as the prior response, and the user agent has already attempted authentication
5239 at least once, then the user SHOULD be presented the entity that was given in the response,
5240 since that entity might include relevant diagnostic information.
5241  
5242 HTTP access authentication is explained in rfc2617:
5243 http://www.ietf.org/rfc/rfc2617.txt
5244  
5245 (description is taken from
5246 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
5247 </summary>
5248 </member>
5249 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
5250 <summary>
5251 Create a new unauhtorized exception.
5252 </summary>
5253 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
5254 </member>
5255 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
5256 <summary>
5257 Create a new unauhtorized exception.
5258 </summary>
5259 <param name="message">reason to why the request was unauthorized.</param>
5260 <param name="inner">inner exception</param>
5261 </member>
5262 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
5263 <summary>
5264 Create a new unauhtorized exception.
5265 </summary>
5266 <param name="message">reason to why the request was unauthorized.</param>
5267 </member>
5268 <member name="T:HttpServer.HttpModules.FileModule">
5269 <summary>
5270 The purpose of this module is to serve files.
5271 </summary>
5272 </member>
5273 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)">
5274 <summary>
5275 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
5276 </summary>
5277 <param name="baseUri">Uri to serve, for instance "/files/"</param>
5278 <param name="basePath">Path on hard drive where we should start looking for files</param>
5279 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
5280 </member>
5281 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)">
5282 <summary>
5283 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
5284 </summary>
5285 <param name="baseUri">Uri to serve, for instance "/files/"</param>
5286 <param name="basePath">Path on hard drive where we should start looking for files</param>
5287 </member>
5288 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes">
5289 <summary>
5290 Mimtypes that this class can handle per default
5291 </summary>
5292 </member>
5293 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)">
5294 <summary>
5295 Determines if the request should be handled by this module.
5296 Invoked by the <see cref="T:HttpServer.HttpServer"/>
5297 </summary>
5298 <param name="uri"></param>
5299 <returns>true if this module should handle it.</returns>
5300 </member>
5301 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)">
5302 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception>
5303 </member>
5304 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})">
5305 <summary>
5306 check if source contains any of the chars.
5307 </summary>
5308 <param name="source"></param>
5309 <param name="chars"></param>
5310 <returns></returns>
5311 </member>
5312 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
5313 <summary>
5314 Method that process the Uri.
5315 </summary>
5316 <param name="request">Information sent by the browser about the request</param>
5317 <param name="response">Information that is being sent back to the client.</param>
5318 <param name="session">Session used to </param>
5319 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
5320 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
5321 </member>
5322 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)">
5323 <summary>
5324 return a file extension from an absolute Uri path (or plain filename)
5325 </summary>
5326 <param name="uri"></param>
5327 <returns></returns>
5328 </member>
5329 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes">
5330 <summary>
5331 List with all mime-type that are allowed.
5332 </summary>
5333 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
5334 </member>
5335 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars">
5336 <summary>
5337 characters that may not exist in a path.
5338 </summary>
5339 <example>
5340 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
5341 </example>
5342 </member>
5343 <member name="T:HttpServer.Helpers.WebHelper">
5344 <summary>
5345 Webhelper provides helpers for common tasks in HTML.
5346 </summary>
5347 </member>
5348 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
5349 <summary>
5350 Used to let the website use different javascript libraries.
5351 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
5352 </summary>
5353 </member>
5354 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
5355 <summary>
5356 Creates a link that invokes through ajax.
5357 </summary>
5358 <param name="url">url to fetch</param>
5359 <param name="title">link title</param>
5360 <param name="options">
5361 optional options in format "key, value, key, value".
5362 Javascript options starts with ':'.
5363 </param>
5364 <returns>a link tag</returns>
5365 <example>
5366 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
5367 </example>
5368 </member>
5369 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
5370 <summary>
5371 Builds a link that updates an element with the fetched ajax content.
5372 </summary>
5373 <param name="url">Url to fetch content from</param>
5374 <param name="title">link title</param>
5375 <param name="targetId">html element to update with the results of the ajax request.</param>
5376 <param name="options">optional options in format "key, value, key, value"</param>
5377 <returns>A link tag.</returns>
5378 </member>
5379 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
5380 <summary>
5381 A link that pop ups a Dialog (overlay div)
5382 </summary>
5383 <param name="url">url to contents of dialog</param>
5384 <param name="title">link title</param>
5385 <param name="htmlAttributes">name/value of html attributes.</param>
5386 <returns>A "a"-tag that popups a dialog when clicked</returns>
5387 <example>
5388 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
5389 </example>
5390 </member>
5391 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
5392 <summary>
5393 Create/Open a dialog box using ajax
5394 </summary>
5395 <param name="url"></param>
5396 <param name="title"></param>
5397 <param name="parameters"></param>
5398 <returns></returns>
5399 </member>
5400 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
5401 <summary>
5402 Close a javascript dialog window/div.
5403 </summary>
5404 <returns>javascript for closing a dialog.</returns>
5405 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
5406 </member>
5407 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
5408 <summary>
5409 Create a &lt;form&gt; tag.
5410 </summary>
5411 <param name="name">name of form</param>
5412 <param name="action">action to invoke on submit</param>
5413 <param name="isAjax">form should be posted as ajax</param>
5414 <returns>html code</returns>
5415 <example>
5416 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
5417 </example>
5418 </member>
5419 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
5420 <summary>
5421 Create a link tag.
5422 </summary>
5423 <param name="url">url to go to</param>
5424 <param name="title">link title (text that is displayed)</param>
5425 <param name="htmlAttributes">html attributes, name, value, name, value</param>
5426 <returns>html code</returns>
5427 <example>
5428 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
5429 </example>
5430 </member>
5431 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
5432 <summary>
5433 Build a link
5434 </summary>
5435 <param name="url">url to go to.</param>
5436 <param name="title">title of link (displayed text)</param>
5437 <param name="htmlAttributes">extra html attributes.</param>
5438 <returns>a complete link</returns>
5439 </member>
5440 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
5441 <summary>
5442 Build a link
5443 </summary>
5444 <param name="url">url to go to.</param>
5445 <param name="title">title of link (displayed text)</param>
5446 <param name="htmlAttributes">extra html attributes.</param>
5447 <returns>a complete link</returns>
5448 <param name="options">more options</param>
5449 </member>
5450 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
5451 <summary>
5452 Obsolete
5453 </summary>
5454 <param name="name">Obsolete</param>
5455 <param name="collection">Obsolete</param>
5456 <param name="getIdTitle">Obsolete</param>
5457 <param name="selectedValue">Obsolete</param>
5458 <param name="firstEmpty">Obsolete</param>
5459 <returns>Obsolete</returns>
5460 </member>
5461 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
5462 <summary>
5463 Obsolete
5464 </summary>
5465 <param name="name">Obsolete</param>
5466 <param name="id">Obsolete</param>
5467 <param name="collection">Obsolete</param>
5468 <param name="getIdTitle">Obsolete</param>
5469 <param name="selectedValue">Obsolete</param>
5470 <param name="firstEmpty">Obsolete</param>
5471 <returns>Obsolete</returns>
5472 </member>
5473 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
5474 <summary>
5475 Render errors into a UL with class "errors"
5476 </summary>
5477 <param name="className">class used by UL-tag.</param>
5478 <param name="theList">items to list</param>
5479 <returns>an unordered html list.</returns>
5480 </member>
5481 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
5482 <summary>
5483 Render errors into a UL with class "errors"
5484 </summary>
5485 <param name="className">class used by UL-tag.</param>
5486 <param name="theList">items to list</param>
5487 <returns>an unordered html list.</returns>
5488 </member>
5489 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
5490 <summary>
5491 Render errors into a UL with class "errors"
5492 </summary>
5493 <param name="errors"></param>
5494 <returns></returns>
5495 </member>
5496 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])">
5497 <summary>
5498 Generates a list with html attributes.
5499 </summary>
5500 <param name="sb">StringBuilder that the options should be added to.</param>
5501 <param name="firstOptions">attributes set by user.</param>
5502 <param name="secondOptions">attributes set by any of the helper classes.</param>
5503 </member>
5504 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])">
5505 <summary>
5506 Generates a list with html attributes.
5507 </summary>
5508 <param name="sb">StringBuilder that the options should be added to.</param>
5509 <param name="options"></param>
5510 </member>
5511 <member name="T:HttpServer.Helpers.GetIdTitle">
5512 <summary>
5513 Delegate used by <see cref="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"/> to populate select options.
5514 </summary>
5515 <param name="obj">current object (for instance a User).</param>
5516 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
5517 <param name="title">Text shown in the select list.</param>
5518 <example>
5519 // Class that is going to be used in a SELECT-tag.
5520 public class User
5521 {
5522 private readonly string _realName;
5523 private readonly int _id;
5524 public User(int id, string realName)
5525 {
5526 _id = id;
5527 _realName = realName;
5528 }
5529 public string RealName
5530 {
5531 get { return _realName; }
5532 }
5533  
5534 public int Id
5535 {
5536 get { return _id; }
5537 }
5538 }
5539  
5540 // Using an inline delegate to generate the select list
5541 public void UserInlineDelegate()
5542 {
5543 List&lt;User&gt; items = new List&lt;User&gt;();
5544 items.Add(new User(1, "adam"));
5545 items.Add(new User(2, "bertial"));
5546 items.Add(new User(3, "david"));
5547 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
5548 {
5549 User user = (User)o;
5550 id = user.Id;
5551 value = user.RealName;
5552 }, 2, true);
5553 }
5554  
5555 // Using an method as delegate to generate the select list.
5556 public void UseExternalDelegate()
5557 {
5558 List&lt;User&gt; items = new List&lt;User&gt;();
5559 items.Add(new User(1, "adam"));
5560 items.Add(new User(2, "bertial"));
5561 items.Add(new User(3, "david"));
5562 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
5563 }
5564  
5565 // delegate returning id and title
5566 public static void UserOptions(object o, out object id, out object title)
5567 {
5568 User user = (User)o;
5569 id = user.Id;
5570 value = user.RealName;
5571 } /// </example>
5572 </member>
5573 </members>
5574 </doc>