aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rwxr-xr-xbin/HttpServer_OpenSim.dllbin115712 -> 115712 bytes
-rw-r--r--bin/HttpServer_OpenSim.pdbbin409088 -> 413184 bytes
-rw-r--r--bin/HttpServer_OpenSim.xml10909
3 files changed, 5453 insertions, 5456 deletions
diff --git a/bin/HttpServer_OpenSim.dll b/bin/HttpServer_OpenSim.dll
index 95ea5dd..d910bb9 100755
--- a/bin/HttpServer_OpenSim.dll
+++ b/bin/HttpServer_OpenSim.dll
Binary files differ
diff --git a/bin/HttpServer_OpenSim.pdb b/bin/HttpServer_OpenSim.pdb
index b6b77f7..b9161e1 100644
--- a/bin/HttpServer_OpenSim.pdb
+++ b/bin/HttpServer_OpenSim.pdb
Binary files differ
diff --git a/bin/HttpServer_OpenSim.xml b/bin/HttpServer_OpenSim.xml
index 27386b7..d31bcca 100644
--- a/bin/HttpServer_OpenSim.xml
+++ b/bin/HttpServer_OpenSim.xml
@@ -1,5456 +1,5453 @@
1<?xml version="1.0"?> 1<?xml version="1.0"?>
2<doc> 2<doc>
3 <assembly> 3 <assembly>
4 <name>HttpServer_OpenSim</name> 4 <name>HttpServer_OpenSim</name>
5 </assembly> 5 </assembly>
6 <members> 6 <members>
7 <member name="T:HttpServer.Exceptions.BadRequestException"> 7 <member name="T:HttpServer.Sessions.IHttpSessionStore">
8 <summary> 8 <summary>
9 The request could not be understood by the server due to malformed syntax. 9 A session store is used to store and load sessions on a media.
10 The client SHOULD NOT repeat the request without modifications. 10 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
11 11 </summary>
12 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php 12 </member>
13 </summary> 13 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create">
14 </member> 14 <summary>
15 <member name="T:HttpServer.Exceptions.HttpException"> 15 Creates a new http session with a generated id.
16 <summary> 16 </summary>
17 All HTTP based exceptions will derive this class. 17 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
18 </summary> 18 </member>
19 </member> 19 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)">
20 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)"> 20 <summary>
21 <summary> 21 Creates a new http session with a specific id
22 Create a new HttpException 22 </summary>
23 </summary> 23 <param name="id">Id used to identify the new cookie..</param>
24 <param name="code">http status code (sent in the response)</param> 24 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
25 <param name="message">error description</param> 25 <remarks>
26 </member> 26 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
27 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)"> 27 </remarks>
28 <summary> 28 </member>
29 Create a new HttpException 29 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)">
30 </summary> 30 <summary>
31 <param name="code">http status code (sent in the response)</param> 31 Load an existing session.
32 <param name="message">error description</param> 32 </summary>
33 <param name="inner">inner exception</param> 33 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
34 </member> 34 <returns>A session if found; otherwise null.</returns>
35 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode"> 35 </member>
36 <summary> 36 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
37 status code to use in the response. 37 <summary>
38 </summary> 38 Save an updated session to the store.
39 </member> 39 </summary>
40 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)"> 40 <param name="session">Session id (usually retrieved from a client side cookie).</param>
41 <summary> 41 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
42 Create a new bad request exception. 42 </member>
43 </summary> 43 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
44 <param name="errMsg">reason to why the request was bad.</param> 44 <summary>
45 </member> 45 We use the flyweight pattern which reuses small objects
46 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)"> 46 instead of creating new each time.
47 <summary> 47 </summary>
48 Create a new bad request exception. 48 <param name="session">Unused session that should be reused next time Create is called.</param>
49 </summary> 49 </member>
50 <param name="errMsg">reason to why the request was bad.</param> 50 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
51 <param name="inner">inner exception</param> 51 <summary>
52 </member> 52 Remove expired sessions
53 <member name="T:HttpServer.Authentication.DigestAuthentication"> 53 </summary>
54 <summary> 54 </member>
55 Implements HTTP Digest authentication. It's more secure than Basic auth since password is 55 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)">
56 encrypted with a "key" from the server. 56 <summary>
57 </summary> 57 Remove a session
58 <remarks> 58 </summary>
59 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure. 59 <param name="sessionId">id of the session.</param>
60 </remarks> 60 </member>
61 </member> 61 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)">
62 <member name="T:HttpServer.Authentication.AuthenticationModule"> 62 <summary>
63 <summary> 63 Load a session from the store
64 Authentication modules are used to implement different 64 </summary>
65 kind of HTTP authentication. 65 <param name="sessionId"></param>
66 </summary> 66 <returns>null if session is not found.</returns>
67 </member> 67 </member>
68 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag"> 68 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime">
69 <summary> 69 <summary>
70 Tag used for authentication. 70 Number of minutes before a session expires.
71 </summary> 71 </summary>
72 </member> 72 <value>Default time is 20 minutes.</value>
73 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 73 </member>
74 <summary> 74 <member name="T:HttpServer.IHttpRequest">
75 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class. 75 <summary>
76 </summary> 76 Contains server side HTTP request information.
77 <param name="authenticator">Delegate used to provide information used during authentication.</param> 77 </summary>
78 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param> 78 </member>
79 </member> 79 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
80 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 80 <summary>
81 <summary> 81 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
82 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class. 82 </summary>
83 </summary> 83 <param name="name">Name of the header, should not be URL encoded</param>
84 <param name="authenticator">Delegate used to provide information used during authentication.</param> 84 <param name="value">Value of the header, should not be URL encoded</param>
85 </member> 85 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
86 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])"> 86 </member>
87 <summary> 87 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
88 Create a response that can be sent in the WWW-Authenticate header. 88 <summary>
89 </summary> 89 Add bytes to the body
90 <param name="realm">Realm that the user should authenticate in</param> 90 </summary>
91 <param name="options">Array with optional options.</param> 91 <param name="bytes">buffer to read bytes from</param>
92 <returns>A correct authentication request.</returns> 92 <param name="offset">where to start read</param>
93 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception> 93 <param name="length">number of bytes to read</param>
94 </member> 94 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
95 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])"> 95 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
96 <summary> 96 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
97 An authentication response have been received from the web browser. 97 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
98 Check if it's correct 98 </member>
99 </summary> 99 <member name="M:HttpServer.IHttpRequest.Clear">
100 <param name="authenticationHeader">Contents from the Authorization header</param> 100 <summary>
101 <param name="realm">Realm that should be authenticated</param> 101 Clear everything in the request
102 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 102 </summary>
103 <param name="options">options to specific implementations</param> 103 </member>
104 <returns>Authentication object that is stored for the request. A user class or something like that.</returns> 104 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
105 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception> 105 <summary>
106 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception> 106 Decode body into a form.
107 </member> 107 </summary>
108 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)"> 108 <param name="providers">A list with form decoders.</param>
109 <summary> 109 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
110 Used to invoke the authentication delegate that is used to lookup the user name/realm. 110 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
111 </summary> 111 </member>
112 <param name="realm">Realm (domain) that user want to authenticate in</param> 112 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
113 <param name="userName">User name</param> 113 <summary>
114 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param> 114 Sets the cookies.
115 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param> 115 </summary>
116 <returns>true if authentication was successful</returns> 116 <param name="cookies">The cookies.</param>
117 </member> 117 </member>
118 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)"> 118 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
119 <summary> 119 <summary>
120 Determines if authentication is required. 120 Create a response object.
121 </summary> 121 </summary>
122 <param name="request">HTTP request from browser</param> 122 <param name="context">Context for the connected client.</param>
123 <returns>true if user should be authenticated.</returns> 123 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
124 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks> 124 </member>
125 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception> 125 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
126 </member> 126 <summary>
127 <member name="P:HttpServer.Authentication.AuthenticationModule.Name"> 127 Gets kind of types accepted by the client.
128 <summary> 128 </summary>
129 name used in HTTP request. 129 </member>
130 </summary> 130 <member name="P:HttpServer.IHttpRequest.Body">
131 </member> 131 <summary>
132 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 132 Gets or sets body stream.
133 <summary> 133 </summary>
134 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class. 134 </member>
135 </summary> 135 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
136 <param name="authenticator">Delegate used to provide information used during authentication.</param> 136 <summary>
137 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param> 137 Gets whether the body is complete.
138 </member> 138 </summary>
139 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 139 </member>
140 <summary> 140 <member name="P:HttpServer.IHttpRequest.Connection">
141 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class. 141 <summary>
142 </summary> 142 Gets or sets kind of connection used for the session.
143 <param name="authenticator">Delegate used to provide information used during authentication.</param> 143 </summary>
144 </member> 144 </member>
145 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck"> 145 <member name="P:HttpServer.IHttpRequest.ContentLength">
146 <summary> 146 <summary>
147 Used by test classes to be able to use hardcoded values 147 Gets or sets number of bytes in the body.
148 </summary> 148 </summary>
149 </member> 149 </member>
150 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])"> 150 <member name="P:HttpServer.IHttpRequest.Cookies">
151 <summary> 151 <summary>
152 An authentication response have been received from the web browser. 152 Gets cookies that was sent with the request.
153 Check if it's correct 153 </summary>
154 </summary> 154 </member>
155 <param name="authenticationHeader">Contents from the Authorization header</param> 155 <member name="P:HttpServer.IHttpRequest.Form">
156 <param name="realm">Realm that should be authenticated</param> 156 <summary>
157 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 157 Gets form parameters.
158 <param name="options">First option: true if username/password is correct but not cnonce</param> 158 </summary>
159 <returns> 159 </member>
160 Authentication object that is stored for the request. A user class or something like that. 160 <member name="P:HttpServer.IHttpRequest.Headers">
161 </returns> 161 <summary>
162 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception> 162 Gets headers sent by the client.
163 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception> 163 </summary>
164 </member> 164 </member>
165 <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)"> 165 <member name="P:HttpServer.IHttpRequest.HttpVersion">
166 <summary> 166 <summary>
167 Encrypts parameters into a Digest string 167 Gets or sets version of HTTP protocol that's used.
168 </summary> 168 </summary>
169 <param name="realm">Realm that the user want to log into.</param> 169 <remarks>
170 <param name="userName">User logging in</param> 170 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
171 <param name="password">Users password.</param> 171 </remarks>
172 <param name="method">HTTP method.</param> 172 <seealso cref="T:HttpServer.HttpHelper"/>
173 <param name="uri">Uri/domain that generated the login prompt.</param> 173 </member>
174 <param name="qop">Quality of Protection.</param> 174 <member name="P:HttpServer.IHttpRequest.IsAjax">
175 <param name="nonce">"Number used ONCE"</param> 175 <summary>
176 <param name="nc">Hexadecimal request counter.</param> 176 Gets whether the request was made by Ajax (Asynchronous JavaScript)
177 <param name="cnonce">"Client Number used ONCE"</param> 177 </summary>
178 <returns>Digest encrypted string</returns> 178 </member>
179 </member> 179 <member name="P:HttpServer.IHttpRequest.Method">
180 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)"> 180 <summary>
181 <summary> 181 Gets or sets requested method.
182 182 </summary>
183 </summary> 183 <remarks>
184 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param> 184 Will always be in upper case.
185 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param> 185 </remarks>
186 <param name="qop">Quality of Protection</param> 186 <see cref="P:HttpServer.IHttpRequest.Method"/>
187 <param name="nonce">"Number used ONCE"</param> 187 </member>
188 <param name="nc">Hexadecimal request counter.</param> 188 <member name="P:HttpServer.IHttpRequest.Param">
189 <param name="cnonce">Client number used once</param> 189 <summary>
190 <returns></returns> 190 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
191 </member> 191 </summary>
192 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])"> 192 </member>
193 <summary> 193 <member name="P:HttpServer.IHttpRequest.QueryString">
194 Create a response that can be sent in the WWW-Authenticate header. 194 <summary>
195 </summary> 195 Gets variables sent in the query string
196 <param name="realm">Realm that the user should authenticate in</param> 196 </summary>
197 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param> 197 </member>
198 <returns>A correct auth request.</returns> 198 <member name="P:HttpServer.IHttpRequest.Uri">
199 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception> 199 <summary>
200 </member> 200 Gets or sets requested URI.
201 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)"> 201 </summary>
202 <summary> 202 </member>
203 Decodes authorization header value 203 <member name="P:HttpServer.IHttpRequest.UriParts">
204 </summary> 204 <summary>
205 <param name="buffer">header value</param> 205 Gets URI absolute path divided into parts.
206 <param name="encoding">Encoding that the buffer is in</param> 206 </summary>
207 <returns>All headers and their values if successful; otherwise null</returns> 207 <example>
208 <example> 208 // URI is: http://gauffin.com/code/tiny/
209 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII); 209 Console.WriteLine(request.UriParts[0]); // result: code
210 </example> 210 Console.WriteLine(request.UriParts[1]); // result: tiny
211 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks> 211 </example>
212 </member> 212 <remarks>
213 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce"> 213 If you're using controllers than the first part is controller name,
214 <summary> 214 the second part is method name and the third part is Id property.
215 Gets the current nonce. 215 </remarks>
216 </summary> 216 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
217 <returns></returns> 217 </member>
218 </member> 218 <member name="P:HttpServer.IHttpRequest.UriPath">
219 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)"> 219 <summary>
220 <summary> 220 Gets or sets path and query.
221 Gets the Md5 hash bin hex2. 221 </summary>
222 </summary> 222 <see cref="P:HttpServer.IHttpRequest.Uri"/>
223 <param name="toBeHashed">To be hashed.</param> 223 <remarks>
224 <returns></returns> 224 Are only used during request parsing. Cannot be set after "Host" header have been
225 </member> 225 added.
226 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)"> 226 </remarks>
227 <summary> 227 </member>
228 determines if the nonce is valid or has expired. 228 <member name="T:HttpServer.IHttpContextHandler">
229 </summary> 229 <summary>
230 <param name="nonce">nonce value (check wikipedia for info)</param> 230 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
231 <returns>true if the nonce has not expired.</returns> 231 </summary>
232 </member> 232 </member>
233 <member name="P:HttpServer.Authentication.DigestAuthentication.Name"> 233 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
234 <summary> 234 <summary>
235 name used in http request. 235 Client have been disconnected.
236 </summary> 236 </summary>
237 </member> 237 <param name="client">Client that was disconnected.</param>
238 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"> 238 <param name="error">Reason</param>
239 <summary> 239 <see cref="T:HttpServer.IHttpClientContext"/>
240 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a 240 </member>
241 HA1 generated string. 241 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
242 </summary> 242 <summary>
243 </member> 243 Invoked when a client context have received a new HTTP request
244 <member name="T:HttpServer.Rules.RegexRedirectRule"> 244 </summary>
245 <summary> 245 <param name="client">Client that received the request.</param>
246 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules 246 <param name="request">Request that was received.</param>
247 a regular expression can be used to identify redirect URLs and their targets. 247 <see cref="T:HttpServer.IHttpClientContext"/>
248 </summary> 248 </member>
249 <example> 249 <member name="T:HttpServer.Helpers.GetIdTitle">
250 <![CDATA[ 250 <summary>
251 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase) 251 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.
252 ]]> 252 </summary>
253 </example> 253 <param name="obj">current object (for instance a User).</param>
254 </member> 254 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
255 <member name="T:HttpServer.Rules.RedirectRule"> 255 <param name="title">Text shown in the select list.</param>
256 <summary> 256 <example>
257 redirects from one URL to another. 257 // Class that is going to be used in a SELECT-tag.
258 </summary> 258 public class User
259 </member> 259 {
260 <member name="T:HttpServer.Rules.IRule"> 260 private readonly string _realName;
261 <summary> 261 private readonly int _id;
262 Rules are used to perform operations before a request is being handled. 262 public User(int id, string realName)
263 Rules can be used to create routing etc. 263 {
264 </summary> 264 _id = id;
265 </member> 265 _realName = realName;
266 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 266 }
267 <summary> 267 public string RealName
268 Process the incoming request. 268 {
269 </summary> 269 get { return _realName; }
270 <param name="request">incoming HTTP request</param> 270 }
271 <param name="response">outgoing HTTP response</param> 271
272 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns> 272 public int Id
273 <remarks> 273 {
274 returning true means that no modules will get the request. Returning true is typically being done 274 get { return _id; }
275 for redirects. 275 }
276 </remarks> 276 }
277 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception> 277
278 </member> 278 // Using an inline delegate to generate the select list
279 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)"> 279 public void UserInlineDelegate()
280 <summary> 280 {
281 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 281 List&lt;User&gt; items = new List&lt;User&gt;();
282 </summary> 282 items.Add(new User(1, "adam"));
283 <param name="fromUrl">Absolute path (no server name)</param> 283 items.Add(new User(2, "bertial"));
284 <param name="toUrl">Absolute path (no server name)</param> 284 items.Add(new User(3, "david"));
285 <example> 285 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
286 server.Add(new RedirectRule("/", "/user/index")); 286 {
287 </example> 287 User user = (User)o;
288 </member> 288 id = user.Id;
289 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)"> 289 value = user.RealName;
290 <summary> 290 }, 2, true);
291 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 291 }
292 </summary> 292
293 <param name="fromUrl">Absolute path (no server name)</param> 293 // Using an method as delegate to generate the select list.
294 <param name="toUrl">Absolute path (no server name)</param> 294 public void UseExternalDelegate()
295 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param> 295 {
296 <example> 296 List&lt;User&gt; items = new List&lt;User&gt;();
297 server.Add(new RedirectRule("/", "/user/index")); 297 items.Add(new User(1, "adam"));
298 </example> 298 items.Add(new User(2, "bertial"));
299 </member> 299 items.Add(new User(3, "david"));
300 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 300 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
301 <summary> 301 }
302 Process the incoming request. 302
303 </summary> 303 // delegate returning id and title
304 <param name="request">incoming HTTP request</param> 304 public static void UserOptions(object o, out object id, out object title)
305 <param name="response">outgoing HTTP response</param> 305 {
306 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns> 306 User user = (User)o;
307 <remarks> 307 id = user.Id;
308 returning true means that no modules will get the request. Returning true is typically being done 308 value = user.RealName;
309 for redirects. 309 } /// </example>
310 </remarks> 310 </member>
311 </member> 311 <member name="T:HttpServer.Exceptions.ForbiddenException">
312 <member name="P:HttpServer.Rules.RedirectRule.FromUrl"> 312 <summary>
313 <summary> 313 The server understood the request, but is refusing to fulfill it.
314 Gets string to match request URI with. 314 Authorization will not help and the request SHOULD NOT be repeated.
315 </summary> 315 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
316 <remarks>Is compared to request.Uri.AbsolutePath</remarks> 316 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
317 </member> 317 available to the client, the status code 404 (Not Found) can be used instead.
318 <member name="P:HttpServer.Rules.RedirectRule.ToUrl"> 318
319 <summary> 319 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
320 Gets where to redirect. 320 </summary>
321 </summary> 321 </member>
322 </member> 322 <member name="T:HttpServer.Exceptions.HttpException">
323 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect"> 323 <summary>
324 <summary> 324 All HTTP based exceptions will derive this class.
325 Gets whether server should redirect client. 325 </summary>
326 </summary> 326 </member>
327 <remarks> 327 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
328 <c>false</c> means that the rule will replace 328 <summary>
329 the current request URI with the new one from this class. 329 Create a new HttpException
330 <c>true</c> means that a redirect response is sent to the client. 330 </summary>
331 </remarks> 331 <param name="code">http status code (sent in the response)</param>
332 </member> 332 <param name="message">error description</param>
333 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)"> 333 </member>
334 <summary> 334 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
335 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 335 <summary>
336 </summary> 336 Create a new HttpException
337 <param name="fromUrlExpression">Expression to match URL</param> 337 </summary>
338 <param name="toUrlExpression">Expression to generate URL</param> 338 <param name="code">http status code (sent in the response)</param>
339 <example> 339 <param name="message">error description</param>
340 <![CDATA[ 340 <param name="inner">inner exception</param>
341 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}")); 341 </member>
342 Result of ie. /employee1 will then be /user/employee1 342 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
343 ]]> 343 <summary>
344 </example> 344 status code to use in the response.
345 </member> 345 </summary>
346 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)"> 346 </member>
347 <summary> 347 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
348 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 348 <summary>
349 </summary> 349 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
350 <param name="fromUrlExpression">Expression to match URL</param> 350 </summary>
351 <param name="toUrlExpression">Expression to generate URL</param> 351 <param name="errorMsg">error message</param>
352 <param name="options">Regular expression options to use, can be null</param> 352 </member>
353 <example> 353 <member name="T:HttpServer.Sessions.MemorySession">
354 <![CDATA[ 354 <summary>
355 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase)); 355 A session stored in memory.
356 Result of ie. /employee1 will then be /user/employee1 356 </summary>
357 ]]> 357 </member>
358 </example> 358 <member name="T:HttpServer.Sessions.IHttpSession">
359 </member> 359 <summary>
360 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)"> 360 Interface for sessions
361 <summary> 361 </summary>
362 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 362 </member>
363 </summary> 363 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
364 <param name="fromUrlExpression">Expression to match URL</param> 364 <summary>
365 <param name="toUrlExpression">Expression to generate URL</param> 365 Remove everything from the session
366 <param name="options">Regular expression options to apply</param> 366 </summary>
367 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param> 367 </member>
368 <example> 368 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
369 <![CDATA[ 369 <summary>
370 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None)); 370 Remove everything from the session
371 Result of ie. /employee1 will then be /user/employee1 371 </summary>
372 ]]> 372 <param name="expires">True if the session is cleared due to expiration</param>
373 </example> 373 </member>
374 <exception cref="T:System.ArgumentNullException">Argument is null.</exception> 374 <member name="P:HttpServer.Sessions.IHttpSession.Id">
375 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/> 375 <summary>
376 </member> 376 Session id
377 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 377 </summary>
378 <summary> 378 </member>
379 Process the incoming request. 379 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
380 </summary> 380 <summary>
381 <param name="request">incoming HTTP request</param> 381 Should
382 <param name="response">outgoing HTTP response</param> 382 </summary>
383 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns> 383 <param name="name">Name of the session variable</param>
384 <remarks> 384 <returns>null if it's not set</returns>
385 returning true means that no modules will get the request. Returning true is typically being done 385 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
386 for redirects. 386 </member>
387 </remarks> 387 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
388 <exception cref="T:System.ArgumentNullException">If request or response is null</exception> 388 <summary>
389 </member> 389 When the session was last accessed.
390 <member name="T:HttpServer.ExceptionHandler"> 390 This property is touched by the http server each time the
391 <summary> 391 session is requested.
392 We dont want to let the server to die due to exceptions thrown in worker threads. 392 </summary>
393 therefore we use this delegate to give you a change to handle uncaught exceptions. 393 </member>
394 </summary> 394 <member name="P:HttpServer.Sessions.IHttpSession.Count">
395 <param name="source">Class that the exception was thrown in.</param> 395 <summary>
396 <param name="exception">Exception</param> 396 Number of session variables.
397 <remarks> 397 </summary>
398 Server will throw a InternalServerException in release version if you dont 398 </member>
399 handle this delegate. 399 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
400 </remarks> 400 <summary>
401 </member> 401 Event triggered upon clearing the session
402 <member name="T:HttpServer.Authentication.AuthenticationHandler"> 402 </summary>
403 <summary> 403 </member>
404 Delegate used to let authentication modules authenticate the user name and password. 404 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
405 </summary> 405 <summary>
406 <param name="realm">Realm that the user want to authenticate in</param> 406
407 <param name="userName">User name specified by client</param> 407 </summary>
408 <param name="token">Can either be user password or implementation specific token.</param> 408 <param name="id">A unique id used by the sessions store to identify the session</param>
409 <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> 409 </member>
410 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception> 410 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
411 <remarks> 411 <summary>
412 <para> 412 Id
413 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated 413 </summary>
414 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password); 414 <param name="id"></param>
415 </para> 415 </member>
416 </remarks> 416 <member name="M:HttpServer.Sessions.MemorySession.Clear">
417 </member> 417 <summary>
418 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler"> 418 Remove everything from the session
419 <summary> 419 </summary>
420 Let's you decide on a system level if authentication is required. 420 </member>
421 </summary> 421 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
422 <param name="request">HTTP request from client</param> 422 <summary>
423 <returns>true if user should be authenticated.</returns> 423 Clears the specified expire.
424 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks> 424 </summary>
425 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception> 425 <param name="expires">True if the session is cleared due to expiration</param>
426 </member> 426 </member>
427 <member name="T:HttpServer.Sessions.IHttpSession"> 427 <member name="M:HttpServer.Sessions.MemorySession.Dispose">
428 <summary> 428 <summary>
429 Interface for sessions 429 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
430 </summary> 430 </summary>
431 </member> 431 <filterpriority>2</filterpriority>
432 <member name="M:HttpServer.Sessions.IHttpSession.Clear"> 432 </member>
433 <summary> 433 <member name="P:HttpServer.Sessions.MemorySession.Id">
434 Remove everything from the session 434 <summary>
435 </summary> 435 Session id
436 </member> 436 </summary>
437 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)"> 437 </member>
438 <summary> 438 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
439 Remove everything from the session 439 <summary>
440 </summary> 440 Should
441 <param name="expires">True if the session is cleared due to expiration</param> 441 </summary>
442 </member> 442 <param name="name">Name of the session variable</param>
443 <member name="P:HttpServer.Sessions.IHttpSession.Id"> 443 <returns>null if it's not set</returns>
444 <summary> 444 </member>
445 Session id 445 <member name="P:HttpServer.Sessions.MemorySession.Accessed">
446 </summary> 446 <summary>
447 </member> 447 when the session was last accessed.
448 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)"> 448 </summary>
449 <summary> 449 <remarks>
450 Should 450 Used to determine when the session should be removed.
451 </summary> 451 </remarks>
452 <param name="name">Name of the session variable</param> 452 </member>
453 <returns>null if it's not set</returns> 453 <member name="P:HttpServer.Sessions.MemorySession.Count">
454 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception> 454 <summary>
455 </member> 455 Number of values in the session
456 <member name="P:HttpServer.Sessions.IHttpSession.Accessed"> 456 </summary>
457 <summary> 457 </member>
458 When the session was last accessed. 458 <member name="P:HttpServer.Sessions.MemorySession.Changed">
459 This property is touched by the http server each time the 459 <summary>
460 session is requested. 460 Flag to indicate that the session have been changed
461 </summary> 461 and should be saved into the session store.
462 </member> 462 </summary>
463 <member name="P:HttpServer.Sessions.IHttpSession.Count"> 463 </member>
464 <summary> 464 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
465 Number of session variables. 465 <summary>
466 </summary> 466 Event triggered upon clearing the session
467 </member> 467 </summary>
468 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear"> 468 </member>
469 <summary> 469 <member name="T:HttpServer.ResponseCookie">
470 Event triggered upon clearing the session 470 <summary>
471 </summary> 471 cookie being sent back to the browser.
472 </member> 472 </summary>
473 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs"> 473 <seealso cref="T:HttpServer.ResponseCookie"/>
474 <summary> 474 </member>
475 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared 475 <member name="T:HttpServer.RequestCookie">
476 </summary> 476 <summary>
477 </member> 477 cookie sent by the client/browser
478 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)"> 478 </summary>
479 <summary> 479 <seealso cref="T:HttpServer.ResponseCookie"/>
480 Instantiates the arguments for the event 480 </member>
481 </summary> 481 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)">
482 <param name="expired">True if the session is cleared due to expiration</param> 482 <summary>
483 </member> 483 Constructor.
484 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired"> 484 </summary>
485 <summary> 485 <param name="id">cookie identifier</param>
486 Returns true if the session is cleared due to expiration 486 <param name="content">cookie content</param>
487 </summary> 487 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
488 </member> 488 <exception cref="T:System.ArgumentException">id is empty</exception>
489 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler"> 489 </member>
490 <summary> 490 <member name="M:HttpServer.RequestCookie.ToString">
491 Delegate for when a IHttpSession is cleared 491 <summary>
492 </summary> 492 Gets the cookie HTML representation.
493 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param> 493 </summary>
494 <param name="args">Arguments for the clearing</param> 494 <returns>cookie string</returns>
495 </member> 495 </member>
496 <member name="T:HttpServer.ResponseCookies"> 496 <member name="P:HttpServer.RequestCookie.Name">
497 <summary> 497 <summary>
498 Cookies that should be set. 498 Gets the cookie identifier.
499 </summary> 499 </summary>
500 </member> 500 </member>
501 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)"> 501 <member name="P:HttpServer.RequestCookie.Value">
502 <summary> 502 <summary>
503 Adds a cookie in the collection. 503 Cookie value. Set to null to remove cookie.
504 </summary> 504 </summary>
505 <param name="cookie">cookie to add</param> 505 </member>
506 <exception cref="T:System.ArgumentNullException">cookie is null</exception> 506 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
507 </member> 507 <summary>
508 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)"> 508 Constructor.
509 <summary> 509 </summary>
510 Copy a request cookie 510 <param name="id">cookie identifier</param>
511 </summary> 511 <param name="content">cookie content</param>
512 <param name="cookie"></param> 512 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
513 <param name="expires">When the cookie should expire</param> 513 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
514 </member> 514 <exception cref="T:System.ArgumentException">id is empty</exception>
515 <member name="M:HttpServer.ResponseCookies.GetEnumerator"> 515 </member>
516 <summary> 516 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
517 Gets a collection enumerator on the cookie list. 517 <summary>
518 </summary> 518 Create a new cookie
519 <returns>collection enumerator</returns> 519 </summary>
520 </member> 520 <param name="name">name identifying the cookie</param>
521 <member name="M:HttpServer.ResponseCookies.Clear"> 521 <param name="value">cookie value</param>
522 <summary> 522 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
523 Remove all cookies 523 <param name="path">Path to where the cookie is valid</param>
524 </summary> 524 <param name="domain">Domain that the cookie is valid for.</param>
525 </member> 525 </member>
526 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator"> 526 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
527 <summary> 527 <summary>
528 Returns an enumerator that iterates through the collection. 528 Create a new cookie
529 </summary> 529 </summary>
530 530 <param name="cookie">Name and value will be used</param>
531 <returns> 531 <param name="expires">when the cookie expires.</param>
532 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 532 </member>
533 </returns> 533 <member name="M:HttpServer.ResponseCookie.ToString">
534 <filterpriority>1</filterpriority> 534 <summary>
535 </member> 535 Gets the cookie HTML representation.
536 <member name="P:HttpServer.ResponseCookies.Count"> 536 </summary>
537 <summary> 537 <returns>cookie string</returns>
538 Gets the count of cookies in the collection. 538 </member>
539 </summary> 539 <member name="P:HttpServer.ResponseCookie.Expires">
540 </member> 540 <summary>
541 <member name="P:HttpServer.ResponseCookies.Item(System.String)"> 541 When the cookie expires.
542 <summary> 542 DateTime.MinValue means that the cookie expires when the session do so.
543 Gets the cookie of a given identifier (null if not existing). 543 </summary>
544 </summary> 544 </member>
545 </member> 545 <member name="P:HttpServer.ResponseCookie.Path">
546 <member name="T:HttpServer.RequestParserFactory"> 546 <summary>
547 <summary> 547 Cookie is only valid under this path.
548 Creates request parsers when needed. 548 </summary>
549 </summary> 549 </member>
550 </member> 550 <member name="T:HttpServer.IHttpClientContext">
551 <member name="T:HttpServer.IRequestParserFactory"> 551 <summary>
552 <summary> 552 Contains a connection to a browser/client.
553 Creates request parsers when needed. 553 </summary>
554 </summary> 554 </member>
555 </member> 555 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
556 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)"> 556 <summary>
557 <summary> 557 Disconnect from client
558 Create a new request parser. 558 </summary>
559 </summary> 559 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
560 <param name="logWriter">Used when logging should be enabled.</param> 560 </member>
561 <returns>A new request parser.</returns> 561 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
562 </member> 562 <summary>
563 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)"> 563 Send a response.
564 <summary> 564 </summary>
565 Create a new request parser. 565 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
566 </summary> 566 <param name="statusCode">HTTP status code</param>
567 <param name="logWriter">Used when logging should be enabled.</param> 567 <param name="reason">reason for the status code.</param>
568 <returns>A new request parser.</returns> 568 <param name="body">HTML body contents, can be null or empty.</param>
569 </member> 569 <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>
570 <member name="T:HttpServer.Parser.HttpRequestParser"> 570 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
571 <summary> 571 </member>
572 Parses a HTTP request directly from a stream 572 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
573 </summary> 573 <summary>
574 </member> 574 Send a response.
575 <member name="T:HttpServer.IHttpRequestParser"> 575 </summary>
576 <summary> 576 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
577 Event driven parser used to parse incoming HTTP requests. 577 <param name="statusCode">HTTP status code</param>
578 </summary> 578 <param name="reason">reason for the status code.</param>
579 <remarks> 579 </member>
580 The parser supports partial messages and keeps the states between 580 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
581 each parsed buffer. It's therefore important that the parser gets 581 <summary>
582 <see cref="M:HttpServer.IHttpRequestParser.Clear"/>ed if a client disconnects. 582 Send a response.
583 </remarks> 583 </summary>
584 </member> 584 <exception cref="T:System.ArgumentNullException"></exception>
585 <member name="M:HttpServer.IHttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)"> 585 </member>
586 <summary> 586 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
587 Parse partial or complete message. 587 <summary>
588 </summary> 588 send a whole buffer
589 <param name="buffer">buffer containing incoming bytes</param> 589 </summary>
590 <param name="offset">where in buffer that parsing should start</param> 590 <param name="buffer">buffer to send</param>
591 <param name="count">number of bytes to parse</param> 591 <exception cref="T:System.ArgumentNullException"></exception>
592 <returns>Unparsed bytes left in buffer.</returns> 592 </member>
593 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception> 593 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
594 </member> 594 <summary>
595 <member name="M:HttpServer.IHttpRequestParser.Clear"> 595 Send data using the stream
596 <summary> 596 </summary>
597 Clear parser state. 597 <param name="buffer">Contains data to send</param>
598 </summary> 598 <param name="offset">Start position in buffer</param>
599 </member> 599 <param name="size">number of bytes to send</param>
600 <member name="P:HttpServer.IHttpRequestParser.CurrentState"> 600 <exception cref="T:System.ArgumentNullException"></exception>
601 <summary> 601 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
602 Current state in parser. 602 </member>
603 </summary> 603 <member name="M:HttpServer.IHttpClientContext.Close">
604 </member> 604 <summary>
605 <member name="E:HttpServer.IHttpRequestParser.RequestCompleted"> 605 Closes the streams and disposes of the unmanaged resources
606 <summary> 606 </summary>
607 A request have been successfully parsed. 607 </member>
608 </summary> 608 <member name="P:HttpServer.IHttpClientContext.Secured">
609 </member> 609 <summary>
610 <member name="E:HttpServer.IHttpRequestParser.BodyBytesReceived"> 610 Using SSL or other encryption method.
611 <summary> 611 </summary>
612 More body bytes have been received. 612 </member>
613 </summary> 613 <member name="P:HttpServer.IHttpClientContext.IsSecured">
614 </member> 614 <summary>
615 <member name="E:HttpServer.IHttpRequestParser.RequestLineReceived"> 615 Using SSL or other encryption method.
616 <summary> 616 </summary>
617 Request line have been received. 617 </member>
618 </summary> 618 <member name="E:HttpServer.IHttpClientContext.Disconnected">
619 </member> 619 <summary>
620 <member name="E:HttpServer.IHttpRequestParser.HeaderReceived"> 620 The context have been disconnected.
621 <summary> 621 </summary>
622 A header have been received. 622 <remarks>
623 </summary> 623 Event can be used to clean up a context, or to reuse it.
624 </member> 624 </remarks>
625 <member name="P:HttpServer.IHttpRequestParser.LogWriter"> 625 </member>
626 <summary> 626 <member name="E:HttpServer.IHttpClientContext.RequestReceived">
627 Gets or sets the log writer. 627 <summary>
628 </summary> 628 A request have been received in the context.
629 </member> 629 </summary>
630 <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)"> 630 </member>
631 <summary> 631 <member name="T:HttpServer.DisconnectedEventArgs">
632 Create a new request parser 632 <summary>
633 </summary> 633 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
634 <param name="logWriter">delegate receiving log entries.</param> 634 </summary>
635 </member> 635 </member>
636 <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)"> 636 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
637 <summary> 637 <summary>
638 Add a number of bytes to the body 638 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
639 </summary> 639 </summary>
640 <param name="buffer">buffer containing more body bytes.</param> 640 <param name="error">Reason to disconnection.</param>
641 <param name="offset">starting offset in buffer</param> 641 </member>
642 <param name="count">number of bytes, from offset, to read.</param> 642 <member name="P:HttpServer.DisconnectedEventArgs.Error">
643 <returns>offset to continue from.</returns> 643 <summary>
644 </member> 644 Gets reason to why client disconnected.
645 <member name="M:HttpServer.Parser.HttpRequestParser.Clear"> 645 </summary>
646 <summary> 646 </member>
647 Remove all state information for the request. 647 <member name="T:HttpServer.RequestEventArgs">
648 </summary> 648 <summary>
649 </member> 649
650 <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)"> 650 </summary>
651 <summary> 651 </member>
652 Parse request line 652 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
653 </summary> 653 <summary>
654 <param name="value"></param> 654 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
655 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception> 655 </summary>
656 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks> 656 <param name="request">The request.</param>
657 </member> 657 </member>
658 <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)"> 658 <member name="P:HttpServer.RequestEventArgs.Request">
659 <summary> 659 <summary>
660 We've parsed a new header. 660 Gets received request.
661 </summary> 661 </summary>
662 <param name="name">Name in lower case</param> 662 </member>
663 <param name="value">Value, unmodified.</param> 663 <member name="T:HttpServer.HttpListenerBase">
664 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception> 664 <summary>
665 </member> 665 Contains a listener that doesn't do anything with the connections.
666 <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)"> 666 </summary>
667 <summary> 667 </member>
668 Parse a message 668 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
669 </summary> 669 <summary>
670 <param name="buffer">bytes to parse.</param> 670 Listen for regular HTTP connections
671 <param name="offset">where in buffer that parsing should start</param> 671 </summary>
672 <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param> 672 <param name="address">IP Address to accept connections on</param>
673 <returns>offset (where to start parsing next).</returns> 673 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
674 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception> 674 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
675 </member> 675 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
676 <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter"> 676 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
677 <summary> 677 </member>
678 Gets or sets the log writer. 678 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
679 </summary> 679 <summary>
680 </member> 680 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
681 <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState"> 681 </summary>
682 <summary> 682 <param name="address">IP Address to accept connections on</param>
683 Current state in parser. 683 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
684 </summary> 684 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
685 </member> 685 <param name="certificate">Certificate to use</param>
686 <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted"> 686 </member>
687 <summary> 687 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
688 A request have been successfully parsed. 688 <summary>
689 </summary> 689 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
690 </member> 690 </summary>
691 <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived"> 691 <param name="address">IP Address to accept connections on</param>
692 <summary> 692 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
693 More body bytes have been received. 693 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
694 </summary> 694 <param name="certificate">Certificate to use</param>
695 </member> 695 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
696 <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived"> 696 </member>
697 <summary> 697 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
698 Request line have been received. 698 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
699 </summary> 699 </member>
700 </member> 700 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
701 <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived"> 701 <summary>
702 <summary> 702 Will try to accept connections one more time.
703 A header have been received. 703 </summary>
704 </summary> 704 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
705 </member> 705 </member>
706 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs"> 706 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
707 <summary> 707 <summary>
708 Used to inform http server that 708 Can be used to create filtering of new connections.
709 </summary> 709 </summary>
710 </member> 710 <param name="socket">Accepted socket</param>
711 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)"> 711 <returns>true if connection can be accepted; otherwise false.</returns>
712 <summary> 712 </member>
713 Eventarguments used when an exception is thrown by a module 713 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
714 </summary> 714 <summary>
715 <param name="e">the exception</param> 715 Start listen for new connections
716 </member> 716 </summary>
717 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception"> 717 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
718 <summary> 718 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
719 Exception thrown in a module 719 </member>
720 </summary> 720 <member name="M:HttpServer.HttpListenerBase.Stop">
721 </member> 721 <summary>
722 <member name="T:HttpServer.HttpForm"> 722 Stop the listener
723 <summary>Container for posted form data</summary> 723 </summary>
724 </member> 724 <exception cref="T:System.Net.Sockets.SocketException"></exception>
725 <member name="T:HttpServer.HttpInput"> 725 </member>
726 <summary> 726 <member name="P:HttpServer.HttpListenerBase.LogWriter">
727 Contains some kind of input from the browser/client. 727 <summary>
728 can be QueryString, form data or any other request body content. 728 Gives you a change to receive log entries for all internals of the HTTP library.
729 </summary> 729 </summary>
730 </member> 730 <remarks>
731 <member name="T:HttpServer.IHttpInput"> 731 You may not switch log writer after starting the listener.
732 <summary> 732 </remarks>
733 Base class for request data containers 733 </member>
734 </summary> 734 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
735 </member> 735 <summary>
736 <member name="M:HttpServer.IHttpInput.Add(System.String,System.String)"> 736 True if we should turn on trace logs.
737 <summary> 737 </summary>
738 Adds a parameter mapped to the presented name 738 </member>
739 </summary> 739 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
740 <param name="name">The name to map the parameter to</param> 740 <summary>
741 <param name="value">The parameter value</param> 741 Catch exceptions not handled by the listener.
742 </member> 742 </summary>
743 <member name="M:HttpServer.IHttpInput.Contains(System.String)"> 743 <remarks>
744 <summary> 744 Exceptions will be thrown during debug mode if this event is not used,
745 Returns true if the container contains the requested parameter 745 exceptions will be printed to console and suppressed during release mode.
746 </summary> 746 </remarks>
747 <param name="name">Parameter id</param> 747 </member>
748 <returns>True if parameter exists</returns> 748 <member name="E:HttpServer.HttpListenerBase.RequestReceived">
749 </member> 749 <summary>
750 <member name="P:HttpServer.IHttpInput.Item(System.String)"> 750 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
751 <summary> 751 </summary>
752 Returns a request parameter 752 </member>
753 </summary> 753 <member name="T:HttpServer.FormDecoders.MultipartDecoder">
754 <param name="name">The name associated with the parameter</param> 754 <summary>
755 <returns></returns> 755
756 </member> 756 </summary>
757 <member name="F:HttpServer.HttpInput.Empty"> 757 <remarks>
758 <summary> Representation of a non-initialized class instance </summary> 758 http://www.faqs.org/rfcs/rfc1867.html
759 </member> 759 </remarks>
760 <member name="F:HttpServer.HttpInput._ignoreChanges"> 760 </member>
761 <summary> Variable telling the class that it is non-initialized <see cref="F:HttpServer.HttpInput.Empty"/> </summary> 761 <member name="T:HttpServer.FormDecoders.IFormDecoder">
762 </member> 762 <summary>
763 <member name="M:HttpServer.HttpInput.#ctor(System.String)"> 763 Interface for form content decoders.
764 <summary> 764 </summary>
765 Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class. 765 </member>
766 </summary> 766 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
767 <param name="name">form name.</param> 767 <summary>
768 </member> 768
769 <member name="M:HttpServer.HttpInput.#ctor(System.String,System.Boolean)"> 769 </summary>
770 <summary> 770 <param name="stream">Stream containing the content</param>
771 Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class. 771 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
772 </summary> 772 <param name="encoding">Stream enconding</param>
773 <param name="name">form name.</param> 773 <returns>A http form, or null if content could not be parsed.</returns>
774 <param name="ignoreChanges">if set to <c>true</c> all changes will be ignored. </param> 774 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
775 <remarks>this constructor should only be used by Empty</remarks> 775 </member>
776 </member> 776 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
777 <member name="M:HttpServer.HttpInput.#ctor(HttpServer.HttpInput)"> 777 <summary>
778 <summary>Creates a deep copy of the HttpInput class</summary> 778 Checks if the decoder can handle the mime type
779 <param name="input">The object to copy</param> 779 </summary>
780 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks> 780 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
781 </member> 781 <returns>True if the decoder can parse the specified content type</returns>
782 <member name="M:HttpServer.HttpInput.Add(System.String,System.String)"> 782 </member>
783 <summary> 783 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType">
784 Add a new element. Form array elements are parsed 784 <summary>
785 and added in a correct hierarchy. 785 multipart/form-data
786 </summary> 786 </summary>
787 <param name="name">Name is converted to lower case.</param> 787 </member>
788 <param name="value"></param> 788 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData">
789 <exception cref="T:System.ArgumentNullException"><c>name</c> is null.</exception> 789 <summary>
790 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception> 790 form-data
791 </member> 791 </summary>
792 <member name="M:HttpServer.HttpInput.Contains(System.String)"> 792 </member>
793 <summary> 793 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
794 Returns true if the class contains a <see cref="T:HttpServer.HttpInput"/> with the corresponding name. 794 <summary>
795 </summary> 795
796 <param name="name">The field/query string name</param> 796 </summary>
797 <returns>True if the value exists</returns> 797 <param name="stream">Stream containing the content</param>
798 </member> 798 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
799 <member name="M:HttpServer.HttpInput.ParseItem(System.String,System.String)"> 799 <param name="encoding">Stream enconding</param>
800 <summary> 800 <returns>A http form, or null if content could not be parsed.</returns>
801 Parses an item and returns it. 801 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
802 This function is primarily used to parse array items as in user[name]. 802 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception>
803 </summary> 803 </member>
804 <param name="name"></param> 804 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)">
805 <param name="value"></param> 805 <summary>
806 <returns></returns> 806 Checks if the decoder can handle the mime type
807 </member> 807 </summary>
808 <member name="M:HttpServer.HttpInput.ToString"> 808 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
809 <summary> Outputs the instance representing all its values joined together </summary> 809 <returns>True if the decoder can parse the specified content type</returns>
810 <returns></returns> 810 </member>
811 </member> 811 <member name="T:HttpServer.Exceptions.NotFoundException">
812 <member name="M:HttpServer.HttpInput.ToString(System.Boolean)"> 812 <summary>
813 <summary>Returns all items as an unescaped query string.</summary> 813 The requested resource was not found in the web server.
814 <returns></returns> 814 </summary>
815 </member> 815 </member>
816 <member name="M:HttpServer.HttpInput.ExtractOne(System.String)"> 816 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
817 <summary> 817 <summary>
818 Extracts one parameter from an array 818 Create a new exception
819 </summary> 819 </summary>
820 <param name="value">Containing the string array</param> 820 <param name="message">message describing the error</param>
821 <returns>All but the first value</returns> 821 <param name="inner">inner exception</param>
822 <example> 822 </member>
823 string test1 = ExtractOne("system[user][extension][id]"); 823 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
824 string test2 = ExtractOne(test1); 824 <summary>
825 string test3 = ExtractOne(test2); 825 Create a new exception
826 // test1 = user[extension][id] 826 </summary>
827 // test2 = extension[id] 827 <param name="message">message describing the error</param>
828 // test3 = id 828 </member>
829 </example> 829 <member name="T:HttpServer.Authentication.AuthenticationHandler">
830 </member> 830 <summary>
831 <member name="M:HttpServer.HttpInput.Clear"> 831 Delegate used to let authentication modules authenticate the user name and password.
832 <summary>Resets all data contained by class</summary> 832 </summary>
833 </member> 833 <param name="realm">Realm that the user want to authenticate in</param>
834 <member name="M:HttpServer.HttpInput.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 834 <param name="userName">User name specified by client</param>
835 <summary> 835 <param name="token">Can either be user password or implementation specific token.</param>
836 Returns an enumerator that iterates through the collection. 836 <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>
837 </summary> 837 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
838 838 <remarks>
839 <returns> 839 <para>
840 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 840 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
841 </returns> 841 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
842 <filterpriority>1</filterpriority> 842 </para>
843 </member> 843 </remarks>
844 <member name="M:HttpServer.HttpInput.GetEnumerator"> 844 </member>
845 <summary> 845 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
846 Returns an enumerator that iterates through a collection. 846 <summary>
847 </summary> 847 Let's you decide on a system level if authentication is required.
848 848 </summary>
849 <returns> 849 <param name="request">HTTP request from client</param>
850 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 850 <returns>true if user should be authenticated.</returns>
851 </returns> 851 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
852 <filterpriority>2</filterpriority> 852 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
853 </member> 853 </member>
854 <member name="P:HttpServer.HttpInput.Name"> 854 <member name="T:HttpServer.Authentication.AuthenticationModule">
855 <summary> 855 <summary>
856 Form name as lower case 856 Authentication modules are used to implement different
857 </summary> 857 kind of HTTP authentication.
858 </member> 858 </summary>
859 <member name="P:HttpServer.HttpInput.Item(System.String)"> 859 </member>
860 <summary> 860 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
861 Get a form item. 861 <summary>
862 </summary> 862 Tag used for authentication.
863 <param name="name"></param> 863 </summary>
864 <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns> 864 </member>
865 </member> 865 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
866 <member name="F:HttpServer.HttpForm.EmptyForm"> 866 <summary>
867 <summary>Instance to help mark a non-initialized form</summary> 867 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
868 </member> 868 </summary>
869 <member name="M:HttpServer.HttpForm.#ctor"> 869 <param name="authenticator">Delegate used to provide information used during authentication.</param>
870 <summary>Initializes a form container with the specified name</summary> 870 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
871 </member> 871 </member>
872 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)"> 872 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
873 <summary> 873 <summary>
874 Makes a deep copy of the input 874 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
875 </summary> 875 </summary>
876 <param name="input">The input to copy</param> 876 <param name="authenticator">Delegate used to provide information used during authentication.</param>
877 </member> 877 </member>
878 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)"> 878 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
879 <summary> 879 <summary>
880 Adds a file to the collection of posted files 880 Create a response that can be sent in the WWW-Authenticate header.
881 </summary> 881 </summary>
882 <param name="file">The file to add</param> 882 <param name="realm">Realm that the user should authenticate in</param>
883 <exception cref="T:System.ArgumentException">If the file is already added</exception> 883 <param name="options">Array with optional options.</param>
884 <exception cref="T:System.ArgumentNullException">If file is null</exception> 884 <returns>A correct authentication request.</returns>
885 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception> 885 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
886 </member> 886 </member>
887 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)"> 887 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
888 <summary> 888 <summary>
889 Checks if the form contains a specified file 889 An authentication response have been received from the web browser.
890 </summary> 890 Check if it's correct
891 <param name="name">Field name of the file parameter</param> 891 </summary>
892 <returns>True if the file exists</returns> 892 <param name="authenticationHeader">Contents from the Authorization header</param>
893 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception> 893 <param name="realm">Realm that should be authenticated</param>
894 </member> 894 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
895 <member name="M:HttpServer.HttpForm.GetFile(System.String)"> 895 <param name="options">options to specific implementations</param>
896 <summary> 896 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
897 Retrieves a file held by by the form 897 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
898 </summary> 898 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
899 <param name="name">The identifier of the file</param> 899 </member>
900 <returns>The requested file or null if the file was not found</returns> 900 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
901 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception> 901 <summary>
902 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception> 902 Used to invoke the authentication delegate that is used to lookup the user name/realm.
903 </member> 903 </summary>
904 <member name="M:HttpServer.HttpForm.Clear"> 904 <param name="realm">Realm (domain) that user want to authenticate in</param>
905 <summary>Disposes all held HttpFile's and resets values</summary> 905 <param name="userName">User name</param>
906 </member> 906 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
907 <member name="P:HttpServer.HttpForm.Files"> 907 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
908 <summary> 908 <returns>true if authentication was successful</returns>
909 Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/> 909 </member>
910 </summary> 910 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
911 <returns>0 if no files are added</returns> 911 <summary>
912 </member> 912 Determines if authentication is required.
913 <member name="T:HttpServer.FormDecoders.IFormDecoder"> 913 </summary>
914 <summary> 914 <param name="request">HTTP request from browser</param>
915 Interface for form content decoders. 915 <returns>true if user should be authenticated.</returns>
916 </summary> 916 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
917 </member> 917 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
918 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 918 </member>
919 <summary> 919 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
920 920 <summary>
921 </summary> 921 name used in HTTP request.
922 <param name="stream">Stream containing the content</param> 922 </summary>
923 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 923 </member>
924 <param name="encoding">Stream enconding</param> 924 <member name="T:HttpServer.HttpInput">
925 <returns>A http form, or null if content could not be parsed.</returns> 925 <summary>
926 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception> 926 Contains some kind of input from the browser/client.
927 </member> 927 can be QueryString, form data or any other request body content.
928 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)"> 928 </summary>
929 <summary> 929 </member>
930 Checks if the decoder can handle the mime type 930 <member name="T:HttpServer.IHttpInput">
931 </summary> 931 <summary>
932 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 932 Base class for request data containers
933 <returns>True if the decoder can parse the specified content type</returns> 933 </summary>
934 </member> 934 </member>
935 <member name="T:HttpServer.ContentType"> 935 <member name="M:HttpServer.IHttpInput.Add(System.String,System.String)">
936 <summary> 936 <summary>
937 Lists content type mime types. 937 Adds a parameter mapped to the presented name
938 </summary> 938 </summary>
939 </member> 939 <param name="name">The name to map the parameter to</param>
940 <member name="F:HttpServer.ContentType.Text"> 940 <param name="value">The parameter value</param>
941 <summary> 941 </member>
942 text/plain 942 <member name="M:HttpServer.IHttpInput.Contains(System.String)">
943 </summary> 943 <summary>
944 </member> 944 Returns true if the container contains the requested parameter
945 <member name="F:HttpServer.ContentType.Html"> 945 </summary>
946 <summary> 946 <param name="name">Parameter id</param>
947 text/haml 947 <returns>True if parameter exists</returns>
948 </summary> 948 </member>
949 </member> 949 <member name="P:HttpServer.IHttpInput.Item(System.String)">
950 <member name="F:HttpServer.ContentType.Javascript"> 950 <summary>
951 <summary> 951 Returns a request parameter
952 content type for javascript documents = application/javascript 952 </summary>
953 </summary> 953 <param name="name">The name associated with the parameter</param>
954 <remarks> 954 <returns></returns>
955 <para> 955 </member>
956 RFC 4329 states that text/javascript have been superseeded by 956 <member name="F:HttpServer.HttpInput.Empty">
957 application/javascript. You might still want to check browser versions 957 <summary> Representation of a non-initialized class instance </summary>
958 since older ones do not support application/javascript. 958 </member>
959 </para> 959 <member name="F:HttpServer.HttpInput._ignoreChanges">
960 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para> 960 <summary> Variable telling the class that it is non-initialized <see cref="F:HttpServer.HttpInput.Empty"/> </summary>
961 </remarks> 961 </member>
962 </member> 962 <member name="M:HttpServer.HttpInput.#ctor(System.String)">
963 <member name="F:HttpServer.ContentType.Xml"> 963 <summary>
964 <summary> 964 Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class.
965 text/xml 965 </summary>
966 </summary> 966 <param name="name">form name.</param>
967 </member> 967 </member>
968 <member name="T:HttpServer.ContentTypes"> 968 <member name="M:HttpServer.HttpInput.#ctor(System.String,System.Boolean)">
969 <summary> 969 <summary>
970 A list of content types 970 Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class.
971 </summary> 971 </summary>
972 </member> 972 <param name="name">form name.</param>
973 <member name="M:HttpServer.ContentTypes.#ctor(System.String)"> 973 <param name="ignoreChanges">if set to <c>true</c> all changes will be ignored. </param>
974 <summary> 974 <remarks>this constructor should only be used by Empty</remarks>
975 975 </member>
976 </summary> 976 <member name="M:HttpServer.HttpInput.#ctor(HttpServer.HttpInput)">
977 <param name="types">Semicolon separated content types.</param> 977 <summary>Creates a deep copy of the HttpInput class</summary>
978 </member> 978 <param name="input">The object to copy</param>
979 <member name="M:HttpServer.ContentTypes.GetEnumerator"> 979 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
980 <summary> 980 </member>
981 Returns an enumerator that iterates through a collection. 981 <member name="M:HttpServer.HttpInput.Add(System.String,System.String)">
982 </summary> 982 <summary>
983 <returns> 983 Add a new element. Form array elements are parsed
984 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection. 984 and added in a correct hierarchy.
985 </returns> 985 </summary>
986 </member> 986 <param name="name">Name is converted to lower case.</param>
987 <member name="M:HttpServer.ContentTypes.Contains(System.String)"> 987 <param name="value"></param>
988 <summary> 988 <exception cref="T:System.ArgumentNullException"><c>name</c> is null.</exception>
989 Searches for the specified type 989 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
990 </summary> 990 </member>
991 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param> 991 <member name="M:HttpServer.HttpInput.Contains(System.String)">
992 <returns>true if type was found.</returns> 992 <summary>
993 </member> 993 Returns true if the class contains a <see cref="T:HttpServer.HttpInput"/> with the corresponding name.
994 <member name="P:HttpServer.ContentTypes.First"> 994 </summary>
995 <summary> 995 <param name="name">The field/query string name</param>
996 Get this first content type. 996 <returns>True if the value exists</returns>
997 </summary> 997 </member>
998 </member> 998 <member name="M:HttpServer.HttpInput.ParseItem(System.String,System.String)">
999 <member name="P:HttpServer.ContentTypes.Item(System.String)"> 999 <summary>
1000 <summary> 1000 Parses an item and returns it.
1001 Fetch a content type 1001 This function is primarily used to parse array items as in user[name].
1002 </summary> 1002 </summary>
1003 <param name="type">Part of type ("xml" would return "application/xml")</param> 1003 <param name="name"></param>
1004 <returns></returns> 1004 <param name="value"></param>
1005 <remarks>All content types are in lower case.</remarks> 1005 <returns></returns>
1006 </member> 1006 </member>
1007 <member name="T:HttpServer.HttpModules.HttpModule"> 1007 <member name="M:HttpServer.HttpInput.ToString">
1008 <summary> 1008 <summary> Outputs the instance representing all its values joined together </summary>
1009 A HttpModule can be used to serve Uri's. The module itself 1009 <returns></returns>
1010 decides if it should serve a Uri or not. In this way, you can 1010 </member>
1011 get a very flexible http application since you can let multiple modules 1011 <member name="M:HttpServer.HttpInput.ToString(System.Boolean)">
1012 serve almost similar urls. 1012 <summary>Returns all items as an unescaped query string.</summary>
1013 </summary> 1013 <returns></returns>
1014 <remarks> 1014 </member>
1015 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. 1015 <member name="M:HttpServer.HttpInput.ExtractOne(System.String)">
1016 </remarks> 1016 <summary>
1017 </member> 1017 Extracts one parameter from an array
1018 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 1018 </summary>
1019 <summary> 1019 <param name="value">Containing the string array</param>
1020 Method that process the url 1020 <returns>All but the first value</returns>
1021 </summary> 1021 <example>
1022 <param name="request">Information sent by the browser about the request</param> 1022 string test1 = ExtractOne("system[user][extension][id]");
1023 <param name="response">Information that is being sent back to the client.</param> 1023 string test2 = ExtractOne(test1);
1024 <param name="session">Session used to </param> 1024 string test3 = ExtractOne(test2);
1025 <returns>true if this module handled the request.</returns> 1025 // test1 = user[extension][id]
1026 </member> 1026 // test2 = extension[id]
1027 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)"> 1027 // test3 = id
1028 <summary> 1028 </example>
1029 Set the log writer to use. 1029 </member>
1030 </summary> 1030 <member name="M:HttpServer.HttpInput.Clear">
1031 <param name="writer">logwriter to use.</param> 1031 <summary>Resets all data contained by class</summary>
1032 </member> 1032 </member>
1033 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)"> 1033 <member name="M:HttpServer.HttpInput.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
1034 <summary> 1034 <summary>
1035 Log something. 1035 Returns an enumerator that iterates through the collection.
1036 </summary> 1036 </summary>
1037 <param name="prio">importance of log message</param> 1037
1038 <param name="message">message</param> 1038 <returns>
1039 </member> 1039 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
1040 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing"> 1040 </returns>
1041 <summary> 1041 <filterpriority>1</filterpriority>
1042 If true specifies that the module doesn't consume the processing of a request so that subsequent modules 1042 </member>
1043 can continue processing afterwards. Default is false. 1043 <member name="M:HttpServer.HttpInput.GetEnumerator">
1044 </summary> 1044 <summary>
1045 </member> 1045 Returns an enumerator that iterates through a collection.
1046 <member name="T:HttpServer.Helpers.WebHelper"> 1046 </summary>
1047 <summary> 1047
1048 Webhelper provides helpers for common tasks in HTML. 1048 <returns>
1049 </summary> 1049 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
1050 </member> 1050 </returns>
1051 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation"> 1051 <filterpriority>2</filterpriority>
1052 <summary> 1052 </member>
1053 Used to let the website use different javascript libraries. 1053 <member name="P:HttpServer.HttpInput.Name">
1054 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/> 1054 <summary>
1055 </summary> 1055 Form name as lower case
1056 </member> 1056 </summary>
1057 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])"> 1057 </member>
1058 <summary> 1058 <member name="P:HttpServer.HttpInput.Item(System.String)">
1059 Creates a link that invokes through ajax. 1059 <summary>
1060 </summary> 1060 Get a form item.
1061 <param name="url">url to fetch</param> 1061 </summary>
1062 <param name="title">link title</param> 1062 <param name="name"></param>
1063 <param name="options"> 1063 <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns>
1064 optional options in format "key, value, key, value". 1064 </member>
1065 Javascript options starts with ':'. 1065 <member name="T:HttpServer.Check">
1066 </param> 1066 <summary>
1067 <returns>a link tag</returns> 1067 Small design by contract implementation.
1068 <example> 1068 </summary>
1069 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');"); 1069 </member>
1070 </example> 1070 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
1071 </member> 1071 <summary>
1072 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])"> 1072 Check whether a parameter is empty.
1073 <summary> 1073 </summary>
1074 Builds a link that updates an element with the fetched ajax content. 1074 <param name="value">Parameter value</param>
1075 </summary> 1075 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1076 <param name="url">Url to fetch content from</param> 1076 <exception cref="T:System.ArgumentException">value is empty.</exception>
1077 <param name="title">link title</param> 1077 </member>
1078 <param name="targetId">html element to update with the results of the ajax request.</param> 1078 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
1079 <param name="options">optional options in format "key, value, key, value"</param> 1079 <summary>
1080 <returns>A link tag.</returns> 1080 Checks whether a parameter is null.
1081 </member> 1081 </summary>
1082 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"> 1082 <param name="value">Parameter value</param>
1083 <summary> 1083 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1084 A link that pop ups a Dialog (overlay div) 1084 <exception cref="T:System.ArgumentNullException">value is null.</exception>
1085 </summary> 1085 </member>
1086 <param name="url">url to contents of dialog</param> 1086 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
1087 <param name="title">link title</param> 1087 <summary>
1088 <param name="htmlAttributes">name/value of html attributes.</param> 1088 Checks whether a parameter is null.
1089 <returns>A "a"-tag that popups a dialog when clicked</returns> 1089 </summary>
1090 <example> 1090 <param name="minValue"></param>
1091 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); 1091 <param name="value">Parameter value</param>
1092 </example> 1092 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1093 </member> 1093 <exception cref="T:System.ArgumentException">value is null.</exception>
1094 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])"> 1094 </member>
1095 <summary> 1095 <member name="T:HttpServer.Method">
1096 Create/Open a dialog box using ajax 1096 <summary>
1097 </summary> 1097 Contains all HTTP Methods (according to the HTTP 1.1 specification)
1098 <param name="url"></param> 1098 <para>
1099 <param name="title"></param> 1099 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
1100 <param name="parameters"></param> 1100 </para>
1101 <returns></returns> 1101 </summary>
1102 </member> 1102 </member>
1103 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog"> 1103 <member name="F:HttpServer.Method.Delete">
1104 <summary> 1104 <summary>
1105 Close a javascript dialog window/div. 1105 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
1106 </summary> 1106 </summary>
1107 <returns>javascript for closing a dialog.</returns> 1107 <remarks>
1108 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/> 1108 <para>
1109 </member> 1109 This method MAY be overridden by human intervention (or other means) on the origin server.
1110 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)"> 1110 The client cannot be guaranteed that the operation has been carried out, even if the status code
1111 <summary> 1111 returned from the origin server indicates that the action has been completed successfully.
1112 Create a &lt;form&gt; tag. 1112 </para>
1113 </summary> 1113 <para>
1114 <param name="name">name of form</param> 1114 However, the server SHOULD NOT indicate success unless, at the time the response is given,
1115 <param name="action">action to invoke on submit</param> 1115 it intends to delete the resource or move it to an inaccessible location.
1116 <param name="isAjax">form should be posted as ajax</param> 1116 </para>
1117 <returns>html code</returns> 1117 <para>
1118 <example> 1118 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
1119 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); 1119 202 (Accepted) if the action has not yet been enacted,
1120 </example> 1120 or 204 (No Content) if the action has been enacted but the response does not include an entity.
1121 </member> 1121 </para>
1122 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])"> 1122 <para>
1123 <summary> 1123 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
1124 Create a link tag. 1124 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
1125 </summary> 1125 </para>
1126 <param name="url">url to go to</param> 1126 </remarks>
1127 <param name="title">link title (text that is displayed)</param> 1127 </member>
1128 <param name="htmlAttributes">html attributes, name, value, name, value</param> 1128 <member name="F:HttpServer.Method.Get">
1129 <returns>html code</returns> 1129 <summary>
1130 <example> 1130 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
1131 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');"); 1131 </summary>
1132 </example> 1132 <remarks>
1133 </member> 1133 <para>
1134 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])"> 1134 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
1135 <summary> 1135 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
1136 Build a link 1136 </para>
1137 </summary> 1137 <para>
1138 <param name="url">url to go to.</param> 1138 The semantics of the GET method change to a "conditional GET" if the request message includes an
1139 <param name="title">title of link (displayed text)</param> 1139 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
1140 <param name="htmlAttributes">extra html attributes.</param> 1140 A conditional GET method requests that the entity be transferred only under the circumstances described
1141 <returns>a complete link</returns> 1141 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
1142 </member> 1142 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
1143 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])"> 1143 data already held by the client.
1144 <summary> 1144 </para>
1145 Build a link 1145 </remarks>
1146 </summary> 1146 </member>
1147 <param name="url">url to go to.</param> 1147 <member name="F:HttpServer.Method.Header">
1148 <param name="title">title of link (displayed text)</param> 1148 <summary>
1149 <param name="htmlAttributes">extra html attributes.</param> 1149 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
1150 <returns>a complete link</returns> 1150 </summary>
1151 <param name="options">more options</param> 1151 <remarks>
1152 </member> 1152 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
1153 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 1153 information sent in response to a GET request. This method can be used for obtaining meta information about
1154 <summary> 1154 the entity implied by the request without transferring the entity-body itself.
1155 Obsolete 1155
1156 </summary> 1156 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
1157 <param name="name">Obsolete</param> 1157 </remarks>
1158 <param name="collection">Obsolete</param> 1158 </member>
1159 <param name="getIdTitle">Obsolete</param> 1159 <member name="F:HttpServer.Method.Options">
1160 <param name="selectedValue">Obsolete</param> 1160 <summary>
1161 <param name="firstEmpty">Obsolete</param> 1161 <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>
1162 <returns>Obsolete</returns> 1162 </summary>
1163 </member> 1163 <remarks>
1164 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 1164 <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>
1165 <summary> 1165 </remarks>
1166 Obsolete 1166 </member>
1167 </summary> 1167 <member name="F:HttpServer.Method.Post">
1168 <param name="name">Obsolete</param> 1168 <summary>
1169 <param name="id">Obsolete</param> 1169 The POST method is used to request that the origin server accept the entity enclosed
1170 <param name="collection">Obsolete</param> 1170 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
1171 <param name="getIdTitle">Obsolete</param> 1171 </summary>
1172 <param name="selectedValue">Obsolete</param> 1172 <remarks>
1173 <param name="firstEmpty">Obsolete</param> 1173 POST is designed to allow a uniform method to cover the following functions:
1174 <returns>Obsolete</returns> 1174 <list type="bullet">
1175 </member> 1175 <item>
1176 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)"> 1176 Annotation of existing resources;
1177 <summary> 1177 </item><item>
1178 Render errors into a UL with class "errors" 1178 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
1179 </summary> 1179 </item><item>
1180 <param name="className">class used by UL-tag.</param> 1180 Providing a block of data, such as the result of submitting a form, to a data-handling process;
1181 <param name="theList">items to list</param> 1181 </item><item>
1182 <returns>an unordered html list.</returns> 1182 Extending a database through an append operation.
1183 </member> 1183 </item>
1184 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)"> 1184 </list>
1185 <summary> 1185 <para>
1186 Render errors into a UL with class "errors" 1186 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
1187 </summary> 1187 contain an entity which describes the status of the request and refers to the new resource, and a
1188 <param name="className">class used by UL-tag.</param> 1188 Location header (see section 14.30).
1189 <param name="theList">items to list</param> 1189 </para>
1190 <returns>an unordered html list.</returns> 1190 <para>
1191 </member> 1191 The action performed by the POST method might not result in a resource that can be identified by a URI.
1192 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)"> 1192 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
1193 <summary> 1193 whether or not the response includes an entity that describes the result.
1194 Render errors into a UL with class "errors" 1194 </para><para>
1195 </summary> 1195 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
1196 <param name="errors"></param> 1196 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
1197 <returns></returns> 1197 to retrieve a cacheable resource.
1198 </member> 1198 </para>
1199 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])"> 1199 </remarks>
1200 <summary> 1200 </member>
1201 Generates a list with html attributes. 1201 <member name="F:HttpServer.Method.Put">
1202 </summary> 1202 <summary>
1203 <param name="sb">StringBuilder that the options should be added to.</param> 1203 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
1204 <param name="firstOptions">attributes set by user.</param> 1204 </summary>
1205 <param name="secondOptions">attributes set by any of the helper classes.</param> 1205 <remarks>
1206 </member> 1206 <list type="bullet">
1207 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])"> 1207 <item>
1208 <summary> 1208 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
1209 Generates a list with html attributes. 1209 modified version of the one residing on the origin server.
1210 </summary> 1210 </item><item>
1211 <param name="sb">StringBuilder that the options should be added to.</param> 1211 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
1212 <param name="options"></param> 1212 resource by the requesting user agent, the origin server can create the resource with that URI.
1213 </member> 1213 </item><item>
1214 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation"> 1214 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
1215 <summary> 1215 </item><item>
1216 Purpose of this class is to create a javascript toolkit independent javascript helper. 1216 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
1217 </summary> 1217 indicate successful completion of the request.
1218 </member> 1218 </item><item>
1219 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)"> 1219 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
1220 <summary> 1220 given that reflects the nature of the problem.
1221 Generates a list with JS options. 1221 </item>
1222 </summary> 1222 </list>
1223 <param name="sb">StringBuilder that the options should be added to.</param> 1223 <para>
1224 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param> 1224 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
1225 <param name="startWithComma">true if we should start with a comma.</param> 1225 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
1226 </member> 1226 </para>
1227 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])"> 1227 </remarks>
1228 <summary> 1228 </member>
1229 Removes any javascript parameters from an array of parameters 1229 <member name="F:HttpServer.Method.Trace">
1230 </summary> 1230 <summary>
1231 <param name="options">The array of parameters to remove javascript params from</param> 1231 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
1232 <returns>An array of html parameters</returns> 1232 </summary>
1233 </member> 1233 </member>
1234 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])"> 1234 <member name="T:HttpServer.Methods">
1235 <summary> 1235 <summary>
1236 javascript action that should be added to the "onsubmit" event in the form tag. 1236 Contains all HTTP Methods (according to the HTTP 1.1 specification)
1237 </summary> 1237 <para>
1238 <returns></returns> 1238 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
1239 <remarks>All javascript option names should end with colon.</remarks> 1239 </para>
1240 <example> 1240 </summary>
1241 <code> 1241 </member>
1242 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); 1242 <member name="F:HttpServer.Methods.Delete">
1243 </code> 1243 <summary>
1244 </example> 1244 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
1245 </member> 1245 </summary>
1246 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])"> 1246 <remarks>
1247 <summary> 1247 <para>
1248 Requests a url through ajax 1248 This method MAY be overridden by human intervention (or other means) on the origin server.
1249 </summary> 1249 The client cannot be guaranteed that the operation has been carried out, even if the status code
1250 <param name="url">url to fetch</param> 1250 returned from the origin server indicates that the action has been completed successfully.
1251 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param> 1251 </para>
1252 <returns>a link tag</returns> 1252 <para>
1253 <remarks>All javascript option names should end with colon.</remarks> 1253 However, the server SHOULD NOT indicate success unless, at the time the response is given,
1254 <example> 1254 it intends to delete the resource or move it to an inaccessible location.
1255 <code> 1255 </para>
1256 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); 1256 <para>
1257 </code> 1257 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
1258 </example> 1258 202 (Accepted) if the action has not yet been enacted,
1259 </member> 1259 or 204 (No Content) if the action has been enacted but the response does not include an entity.
1260 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])"> 1260 </para>
1261 <summary> 1261 <para>
1262 Ajax requests that updates an element with 1262 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
1263 the fetched content 1263 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
1264 </summary> 1264 </para>
1265 <param name="url">Url to fetch content from</param> 1265 </remarks>
1266 <param name="targetId">element to update</param> 1266 </member>
1267 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param> 1267 <member name="F:HttpServer.Methods.Get">
1268 <returns>A link tag.</returns> 1268 <summary>
1269 <remarks>All javascript option names should end with colon.</remarks> 1269 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
1270 <example> 1270 </summary>
1271 <code> 1271 <remarks>
1272 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');"); 1272 <para>
1273 </code> 1273 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
1274 </example> 1274 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
1275 </member> 1275 </para>
1276 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"> 1276 <para>
1277 <summary> 1277 The semantics of the GET method change to a "conditional GET" if the request message includes an
1278 A link that pop ups a Dialog (overlay div) 1278 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
1279 </summary> 1279 A conditional GET method requests that the entity be transferred only under the circumstances described
1280 <param name="url">url to contents of dialog</param> 1280 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
1281 <param name="title">link title</param> 1281 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
1282 <returns>A "a"-tag that popups a dialog when clicked</returns> 1282 data already held by the client.
1283 <param name="htmlAttributes">name/value of html attributes</param> 1283 </para>
1284 <example> 1284 </remarks>
1285 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); 1285 </member>
1286 </example> 1286 <member name="F:HttpServer.Methods.Header">
1287 </member> 1287 <summary>
1288 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog"> 1288 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
1289 <summary> 1289 </summary>
1290 Close a javascript dialog window/div. 1290 <remarks>
1291 </summary> 1291 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
1292 <returns>javascript for closing a dialog.</returns> 1292 information sent in response to a GET request. This method can be used for obtaining meta information about
1293 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/> 1293 the entity implied by the request without transferring the entity-body itself.
1294 </member> 1294
1295 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])"> 1295 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
1296 <summary> 1296 </remarks>
1297 Creates a new modal dialog window 1297 </member>
1298 </summary> 1298 <member name="F:HttpServer.Methods.Options">
1299 <param name="url">url to open in window.</param> 1299 <summary>
1300 <param name="title">window title (may not be supported by all js implementations)</param> 1300 <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>
1301 <param name="options"></param> 1301 </summary>
1302 <returns></returns> 1302 <remarks>
1303 </member> 1303 <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>
1304 <member name="T:HttpServer.IHttpContextHandler"> 1304 </remarks>
1305 <summary> 1305 </member>
1306 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>. 1306 <member name="F:HttpServer.Methods.Post">
1307 </summary> 1307 <summary>
1308 </member> 1308 The POST method is used to request that the origin server accept the entity enclosed
1309 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)"> 1309 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
1310 <summary> 1310 </summary>
1311 Client have been disconnected. 1311 <remarks>
1312 </summary> 1312 POST is designed to allow a uniform method to cover the following functions:
1313 <param name="client">Client that was disconnected.</param> 1313 <list type="bullet">
1314 <param name="error">Reason</param> 1314 <item>
1315 <see cref="T:HttpServer.IHttpClientContext"/> 1315 Annotation of existing resources;
1316 </member> 1316 </item><item>
1317 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 1317 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
1318 <summary> 1318 </item><item>
1319 Invoked when a client context have received a new HTTP request 1319 Providing a block of data, such as the result of submitting a form, to a data-handling process;
1320 </summary> 1320 </item><item>
1321 <param name="client">Client that received the request.</param> 1321 Extending a database through an append operation.
1322 <param name="request">Request that was received.</param> 1322 </item>
1323 <see cref="T:HttpServer.IHttpClientContext"/> 1323 </list>
1324 </member> 1324 <para>
1325 <member name="T:HttpServer.HttpHelper"> 1325 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
1326 <summary> 1326 contain an entity which describes the status of the request and refers to the new resource, and a
1327 Generic helper functions for HTTP 1327 Location header (see section 14.30).
1328 </summary> 1328 </para>
1329 </member> 1329 <para>
1330 <member name="F:HttpServer.HttpHelper.HTTP10"> 1330 The action performed by the POST method might not result in a resource that can be identified by a URI.
1331 <summary> 1331 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
1332 Version string for HTTP v1.0 1332 whether or not the response includes an entity that describes the result.
1333 </summary> 1333 </para><para>
1334 </member> 1334 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
1335 <member name="F:HttpServer.HttpHelper.HTTP11"> 1335 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
1336 <summary> 1336 to retrieve a cacheable resource.
1337 Version string for HTTP v1.1 1337 </para>
1338 </summary> 1338 </remarks>
1339 </member> 1339 </member>
1340 <member name="F:HttpServer.HttpHelper.EmptyUri"> 1340 <member name="F:HttpServer.Methods.Put">
1341 <summary> 1341 <summary>
1342 An empty URI 1342 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
1343 </summary> 1343 </summary>
1344 </member> 1344 <remarks>
1345 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)"> 1345 <list type="bullet">
1346 <summary> 1346 <item>
1347 Parses a query string. 1347 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
1348 </summary> 1348 modified version of the one residing on the origin server.
1349 <param name="queryString">Query string (URI encoded)</param> 1349 </item><item>
1350 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns> 1350 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
1351 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception> 1351 resource by the requesting user agent, the origin server can create the resource with that URI.
1352 <exception cref="T:System.FormatException">If string cannot be parsed.</exception> 1352 </item><item>
1353 </member> 1353 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
1354 <member name="T:HttpServer.FormDecoders.FormDecoderProvider"> 1354 </item><item>
1355 <summary> 1355 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
1356 This provider is used to let us implement any type of form decoding we want without 1356 indicate successful completion of the request.
1357 having to rewrite anything else in the server. 1357 </item><item>
1358 </summary> 1358 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
1359 </member> 1359 given that reflects the nature of the problem.
1360 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)"> 1360 </item>
1361 <summary> 1361 </list>
1362 1362 <para>
1363 </summary> 1363 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
1364 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param> 1364 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
1365 <param name="stream">Stream containing form data.</param> 1365 </para>
1366 <param name="encoding">Encoding used when decoding the stream</param> 1366 </remarks>
1367 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns> 1367 </member>
1368 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception> 1368 <member name="F:HttpServer.Methods.Trace">
1369 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception> 1369 <summary>
1370 </member> 1370 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
1371 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)"> 1371 </summary>
1372 <summary> 1372 </member>
1373 Add a decoder. 1373 <member name="T:HttpServer.LogPrio">
1374 </summary> 1374 <summary>
1375 <param name="decoder"></param> 1375 Priority for log entries
1376 <exception cref="T:System.ArgumentNullException"></exception> 1376 </summary>
1377 </member> 1377 <seealso cref="T:HttpServer.ILogWriter"/>
1378 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count"> 1378 </member>
1379 <summary> 1379 <member name="F:HttpServer.LogPrio.Trace">
1380 Number of added decoders. 1380 <summary>
1381 </summary> 1381 Very detailed logs to be able to follow the flow of the program.
1382 </member> 1382 </summary>
1383 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders"> 1383 </member>
1384 <summary> 1384 <member name="F:HttpServer.LogPrio.Debug">
1385 Use with care. 1385 <summary>
1386 </summary> 1386 Logs to help debug errors in the application
1387 </member> 1387 </summary>
1388 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder"> 1388 </member>
1389 <summary> 1389 <member name="F:HttpServer.LogPrio.Info">
1390 Decoder used for unknown content types. 1390 <summary>
1391 </summary> 1391 Information to be able to keep track of state changes etc.
1392 </member> 1392 </summary>
1393 <member name="T:HttpServer.Sessions.MemorySession"> 1393 </member>
1394 <summary> 1394 <member name="F:HttpServer.LogPrio.Warning">
1395 A session stored in memory. 1395 <summary>
1396 </summary> 1396 Something did not go as we expected, but it's no problem.
1397 </member> 1397 </summary>
1398 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)"> 1398 </member>
1399 <summary> 1399 <member name="F:HttpServer.LogPrio.Error">
1400 1400 <summary>
1401 </summary> 1401 Something that should not fail failed, but we can still keep
1402 <param name="id">A unique id used by the sessions store to identify the session</param> 1402 on going.
1403 </member> 1403 </summary>
1404 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)"> 1404 </member>
1405 <summary> 1405 <member name="F:HttpServer.LogPrio.Fatal">
1406 Id 1406 <summary>
1407 </summary> 1407 Something failed, and we cannot handle it properly.
1408 <param name="id"></param> 1408 </summary>
1409 </member> 1409 </member>
1410 <member name="M:HttpServer.Sessions.MemorySession.Clear"> 1410 <member name="T:HttpServer.ILogWriter">
1411 <summary> 1411 <summary>
1412 Remove everything from the session 1412 Interface used to write to log files.
1413 </summary> 1413 </summary>
1414 </member> 1414 </member>
1415 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)"> 1415 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
1416 <summary> 1416 <summary>
1417 Clears the specified expire. 1417 Write an entry to the log file.
1418 </summary> 1418 </summary>
1419 <param name="expires">True if the session is cleared due to expiration</param> 1419 <param name="source">object that is writing to the log</param>
1420 </member> 1420 <param name="priority">importance of the log message</param>
1421 <member name="M:HttpServer.Sessions.MemorySession.Dispose"> 1421 <param name="message">the message</param>
1422 <summary> 1422 </member>
1423 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 1423 <member name="T:HttpServer.ConsoleLogWriter">
1424 </summary> 1424 <summary>
1425 <filterpriority>2</filterpriority> 1425 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
1426 </member> 1426 </summary>
1427 <member name="P:HttpServer.Sessions.MemorySession.Id"> 1427 <seealso cref="T:HttpServer.ILogWriter"/>
1428 <summary> 1428 </member>
1429 Session id 1429 <member name="F:HttpServer.ConsoleLogWriter.Instance">
1430 </summary> 1430 <summary>
1431 </member> 1431 The actual instance of this class.
1432 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)"> 1432 </summary>
1433 <summary> 1433 </member>
1434 Should 1434 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
1435 </summary> 1435 <summary>
1436 <param name="name">Name of the session variable</param> 1436 Logwriters the specified source.
1437 <returns>null if it's not set</returns> 1437 </summary>
1438 </member> 1438 <param name="source">object that wrote the logentry.</param>
1439 <member name="P:HttpServer.Sessions.MemorySession.Accessed"> 1439 <param name="prio">Importance of the log message</param>
1440 <summary> 1440 <param name="message">The message.</param>
1441 when the session was last accessed. 1441 </member>
1442 </summary> 1442 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)">
1443 <remarks> 1443 <summary>
1444 Used to determine when the session should be removed. 1444 Get color for the specified logprio
1445 </remarks> 1445 </summary>
1446 </member> 1446 <param name="prio">prio for the log entry</param>
1447 <member name="P:HttpServer.Sessions.MemorySession.Count"> 1447 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
1448 <summary> 1448 </member>
1449 Number of values in the session 1449 <member name="T:HttpServer.NullLogWriter">
1450 </summary> 1450 <summary>
1451 </member> 1451 Default log writer, writes everything to null (nowhere).
1452 <member name="P:HttpServer.Sessions.MemorySession.Changed"> 1452 </summary>
1453 <summary> 1453 <seealso cref="T:HttpServer.ILogWriter"/>
1454 Flag to indicate that the session have been changed 1454 </member>
1455 and should be saved into the session store. 1455 <member name="F:HttpServer.NullLogWriter.Instance">
1456 </summary> 1456 <summary>
1457 </member> 1457 The logging instance.
1458 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear"> 1458 </summary>
1459 <summary> 1459 </member>
1460 Event triggered upon clearing the session 1460 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
1461 </summary> 1461 <summary>
1462 </member> 1462 Writes everything to null
1463 <member name="T:HttpServer.FormDecoders.XmlDecoder"> 1463 </summary>
1464 <summary> 1464 <param name="source">object that wrote the log entry.</param>
1465 This decoder converts XML documents to form items. 1465 <param name="prio">Importance of the log message</param>
1466 Each element becomes a subitem in the form, and each attribute becomes an item. 1466 <param name="message">The message.</param>
1467 </summary> 1467 </member>
1468 <example> 1468 <member name="T:HttpServer.IComponentProvider">
1469 // xml: <hello id="1">something<world id="2">data</world></hello> 1469 <summary>
1470 // result: 1470 Inversion of control interface.
1471 // form["hello"].Value = "something" 1471 </summary>
1472 // form["hello"]["id"].Value = 1 1472 </member>
1473 // form["hello"]["world]["id"].Value = 1 1473 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
1474 // form["hello"]["world"].Value = "data" 1474 <summary>
1475 </example> 1475 Add a component instance
1476 <remarks> 1476 </summary>
1477 The original xml document is stored in form["__xml__"].Value. 1477 <typeparam name="T">Interface type</typeparam>
1478 </remarks> 1478 <param name="instance">Instance to add</param>
1479 </member> 1479 </member>
1480 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 1480 <member name="M:HttpServer.IComponentProvider.Get``1">
1481 <summary> 1481 <summary>
1482 1482 Get a component.
1483 </summary> 1483 </summary>
1484 <param name="stream">Stream containing the content</param> 1484 <typeparam name="T">Interface type</typeparam>
1485 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 1485 <returns>Component if registered, otherwise null.</returns>
1486 <param name="encoding">Stream encoding</param> 1486 <remarks>
1487 Note: contentType and encoding are not used? 1487 Component will get created if needed.
1488 <returns>A http form, or null if content could not be parsed.</returns> 1488 </remarks>
1489 <exception cref="T:System.IO.InvalidDataException"></exception> 1489 </member>
1490 </member> 1490 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
1491 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)"> 1491 <summary>
1492 <summary> 1492 Checks if the specified component interface have been added.
1493 Recursive function that will go through an xml element and store it's content 1493 </summary>
1494 to the form item. 1494 <param name="interfaceType"></param>
1495 </summary> 1495 <returns>true if found; otherwise false.</returns>
1496 <param name="item">(parent) Item in form that content should be added to.</param> 1496 </member>
1497 <param name="node">Node that should be parsed.</param> 1497 <member name="M:HttpServer.IComponentProvider.Add``2">
1498 </member> 1498 <summary>
1499 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)"> 1499 Add a component.
1500 <summary> 1500 </summary>
1501 Checks if the decoder can handle the mime type 1501 <typeparam name="InterfaceType">Type being requested.</typeparam>
1502 </summary> 1502 <typeparam name="InstanceType">Type being created.</typeparam>
1503 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 1503 </member>
1504 <returns>True if the decoder can parse the specified content type</returns> 1504 <member name="T:HttpServer.HttpParam">
1505 </member> 1505 <summary>
1506 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine"> 1506 Returns item either from a form or a query string (checks them in that order)
1507 <summary> 1507 </summary>
1508 1508 </member>
1509 </summary> 1509 <member name="F:HttpServer.HttpParam.Empty">
1510 <returns></returns> 1510 <summary> Representation of a non-initialized HttpParam </summary>
1511 <exception cref="T:System.ArgumentOutOfRangeException"></exception> 1511 </member>
1512 <exception cref="T:System.ObjectDisposedException"></exception> 1512 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)">
1513 </member> 1513 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary>
1514 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element"> 1514 </member>
1515 <summary>Represents a field in a multipart form</summary> 1515 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)">
1516 </member> 1516 <summary>
1517 <member name="T:HttpServer.Exceptions.InternalServerException"> 1517 The add method is not availible for HttpParam
1518 <summary> 1518 since HttpParam checks both Request.Form and Request.QueryString
1519 The server encountered an unexpected condition which prevented it from fulfilling the request. 1519 </summary>
1520 </summary> 1520 <param name="name">name identifying the value</param>
1521 </member> 1521 <param name="value">value to add</param>
1522 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor"> 1522 <exception cref="T:System.NotImplementedException"></exception>
1523 <summary> 1523 </member>
1524 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 1524 <member name="M:HttpServer.HttpParam.Contains(System.String)">
1525 </summary> 1525 <summary>
1526 </member> 1526 Checks whether the form or querystring has the specified value
1527 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)"> 1527 </summary>
1528 <summary> 1528 <param name="name">Name, case sensitive</param>
1529 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 1529 <returns>true if found; otherwise false.</returns>
1530 </summary> 1530 </member>
1531 <param name="message">error message.</param> 1531 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
1532 </member> 1532 <summary>
1533 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)"> 1533 Returns an enumerator that iterates through the collection.
1534 <summary> 1534 </summary>
1535 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 1535
1536 </summary> 1536 <returns>
1537 <param name="message">error message.</param> 1537 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
1538 <param name="inner">inner exception.</param> 1538 </returns>
1539 </member> 1539 <filterpriority>1</filterpriority>
1540 <member name="T:HttpServer.RequestParserState"> 1540 </member>
1541 <summary> 1541 <member name="M:HttpServer.HttpParam.GetEnumerator">
1542 Current state in the parsing. 1542 <summary>
1543 </summary> 1543 Returns an enumerator that iterates through a collection.
1544 </member> 1544 </summary>
1545 <member name="F:HttpServer.RequestParserState.FirstLine"> 1545
1546 <summary> 1546 <returns>
1547 Should parse the request line 1547 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
1548 </summary> 1548 </returns>
1549 </member> 1549 <filterpriority>2</filterpriority>
1550 <member name="F:HttpServer.RequestParserState.HeaderName"> 1550 </member>
1551 <summary> 1551 <member name="P:HttpServer.HttpParam.Item(System.String)">
1552 Searching for a complete header name 1552 <summary>
1553 </summary> 1553 Fetch an item from the form or querystring (in that order).
1554 </member> 1554 </summary>
1555 <member name="F:HttpServer.RequestParserState.AfterName"> 1555 <param name="name"></param>
1556 <summary> 1556 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
1557 Searching for colon after header name (ignoring white spaces) 1557 </member>
1558 </summary> 1558 <member name="T:HttpServer.HttpForm">
1559 </member> 1559 <summary>Container for posted form data</summary>
1560 <member name="F:HttpServer.RequestParserState.Between"> 1560 </member>
1561 <summary> 1561 <member name="F:HttpServer.HttpForm.EmptyForm">
1562 Searching for start of header value (ignoring white spaces) 1562 <summary>Instance to help mark a non-initialized form</summary>
1563 </summary> 1563 </member>
1564 </member> 1564 <member name="M:HttpServer.HttpForm.#ctor">
1565 <member name="F:HttpServer.RequestParserState.HeaderValue"> 1565 <summary>Initializes a form container with the specified name</summary>
1566 <summary> 1566 </member>
1567 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces) 1567 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)">
1568 </summary> 1568 <summary>
1569 </member> 1569 Makes a deep copy of the input
1570 <member name="F:HttpServer.RequestParserState.Body"> 1570 </summary>
1571 <summary> 1571 <param name="input">The input to copy</param>
1572 Adding bytes to body 1572 </member>
1573 </summary> 1573 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)">
1574 </member> 1574 <summary>
1575 <member name="T:HttpServer.HttpModules.ReverseProxyModule"> 1575 Adds a file to the collection of posted files
1576 <summary> 1576 </summary>
1577 A reverse proxy are used to act as a bridge between local (protected/hidden) websites 1577 <param name="file">The file to add</param>
1578 and public clients. 1578 <exception cref="T:System.ArgumentException">If the file is already added</exception>
1579 1579 <exception cref="T:System.ArgumentNullException">If file is null</exception>
1580 A typical usage is to allow web servers on non standard ports to still be available 1580 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
1581 to the public clients, or allow web servers on private ips to be available. 1581 </member>
1582 </summary> 1582 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)">
1583 </member> 1583 <summary>
1584 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)"> 1584 Checks if the form contains a specified file
1585 <summary> 1585 </summary>
1586 1586 <param name="name">Field name of the file parameter</param>
1587 </summary> 1587 <returns>True if the file exists</returns>
1588 <param name="source">Base url requested from browser</param> 1588 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
1589 <param name="destination">Base url on private web server</param> 1589 </member>
1590 <example> 1590 <member name="M:HttpServer.HttpForm.GetFile(System.String)">
1591 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas 1591 <summary>
1592 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/"); 1592 Retrieves a file held by by the form
1593 </example> 1593 </summary>
1594 </member> 1594 <param name="name">The identifier of the file</param>
1595 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)"> 1595 <returns>The requested file or null if the file was not found</returns>
1596 <summary> 1596 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception>
1597 Method that determines if an url should be handled or not by the module 1597 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
1598 </summary> 1598 </member>
1599 <param name="uri">Url requested by the client.</param> 1599 <member name="M:HttpServer.HttpForm.Clear">
1600 <returns>true if module should handle the url.</returns> 1600 <summary>Disposes all held HttpFile's and resets values</summary>
1601 </member> 1601 </member>
1602 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 1602 <member name="P:HttpServer.HttpForm.Files">
1603 <summary> 1603 <summary>
1604 Method that process the url 1604 Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/>
1605 </summary> 1605 </summary>
1606 <param name="request">Information sent by the browser about the request</param> 1606 <returns>0 if no files are added</returns>
1607 <param name="response">Information that is being sent back to the client.</param> 1607 </member>
1608 <param name="session">Session used to </param> 1608 <member name="T:HttpServer.Helpers.ObjectForm">
1609 </member> 1609 <summary>
1610 <member name="T:HttpServer.Method"> 1610 The object form class takes an object and creates form items for it.
1611 <summary> 1611 </summary>
1612 Contains all HTTP Methods (according to the HTTP 1.1 specification) 1612 </member>
1613 <para> 1613 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)">
1614 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html 1614 <summary>
1615 </para> 1615 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
1616 </summary> 1616 </summary>
1617 </member> 1617 <param name="method"></param>
1618 <member name="F:HttpServer.Method.Delete"> 1618 <param name="name">form name *and* id.</param>
1619 <summary> 1619 <param name="action">action to do when form is posted.</param>
1620 The DELETE method requests that the origin server delete the resource identified by the Request-URI. 1620 <param name="obj"></param>
1621 </summary> 1621 </member>
1622 <remarks> 1622 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)">
1623 <para> 1623 <summary>
1624 This method MAY be overridden by human intervention (or other means) on the origin server. 1624 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
1625 The client cannot be guaranteed that the operation has been carried out, even if the status code 1625 </summary>
1626 returned from the origin server indicates that the action has been completed successfully. 1626 <param name="name">form name *and* id.</param>
1627 </para> 1627 <param name="action">action to do when form is posted.</param>
1628 <para> 1628 <param name="obj">object to get values from</param>
1629 However, the server SHOULD NOT indicate success unless, at the time the response is given, 1629 </member>
1630 it intends to delete the resource or move it to an inaccessible location. 1630 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)">
1631 </para> 1631 <summary>
1632 <para> 1632 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
1633 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, 1633 </summary>
1634 202 (Accepted) if the action has not yet been enacted, 1634 <param name="action">form action.</param>
1635 or 204 (No Content) if the action has been enacted but the response does not include an entity. 1635 <param name="obj">object to get values from.</param>
1636 </para> 1636 </member>
1637 <para> 1637 <member name="M:HttpServer.Helpers.ObjectForm.Begin">
1638 If the request passes through a cache and the Request-URI identifies one or more currently cached entities, 1638 <summary>
1639 those entries SHOULD be treated as stale. Responses to this method are not cacheable. 1639 write out the FORM-tag.
1640 </para> 1640 </summary>
1641 </remarks> 1641 <returns>generated html code</returns>
1642 </member> 1642 </member>
1643 <member name="F:HttpServer.Method.Get"> 1643 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)">
1644 <summary> 1644 <summary>
1645 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 1645 Writeout the form tag
1646 </summary> 1646 </summary>
1647 <remarks> 1647 <param name="isAjax">form should be posted through ajax.</param>
1648 <para> 1648 <returns>generated html code</returns>
1649 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the 1649 </member>
1650 entity in the response and not the source text of the process, unless that text happens to be the output of the process. 1650 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])">
1651 </para> 1651 <summary>
1652 <para> 1652 Generates a text box.
1653 The semantics of the GET method change to a "conditional GET" if the request message includes an 1653 </summary>
1654 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. 1654 <param name="propertyName"></param>
1655 A conditional GET method requests that the entity be transferred only under the circumstances described 1655 <param name="options"></param>
1656 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network 1656 <returns>generated html code</returns>
1657 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring 1657 </member>
1658 data already held by the client. 1658 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])">
1659 </para> 1659 <summary>
1660 </remarks> 1660 password box
1661 </member> 1661 </summary>
1662 <member name="F:HttpServer.Method.Header"> 1662 <param name="propertyName"></param>
1663 <summary> 1663 <param name="options"></param>
1664 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 1664 <returns>generated html code</returns>
1665 </summary> 1665 </member>
1666 <remarks> 1666 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])">
1667 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 1667 <summary>
1668 information sent in response to a GET request. This method can be used for obtaining meta information about 1668 Hiddens the specified property name.
1669 the entity implied by the request without transferring the entity-body itself. 1669 </summary>
1670 1670 <param name="propertyName">Name of the property.</param>
1671 This method is often used for testing hypertext links for validity, accessibility, and recent modification. 1671 <param name="options">The options.</param>
1672 </remarks> 1672 <returns>generated html code</returns>
1673 </member> 1673 </member>
1674 <member name="F:HttpServer.Method.Options"> 1674 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)">
1675 <summary> 1675 <summary>
1676 <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> 1676 Labels the specified property name.
1677 </summary> 1677 </summary>
1678 <remarks> 1678 <param name="propertyName">property in object.</param>
1679 <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> 1679 <param name="label">caption</param>
1680 </remarks> 1680 <returns>generated html code</returns>
1681 </member> 1681 </member>
1682 <member name="F:HttpServer.Method.Post"> 1682 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])">
1683 <summary> 1683 <summary>
1684 The POST method is used to request that the origin server accept the entity enclosed 1684 Generate a checkbox
1685 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. 1685 </summary>
1686 </summary> 1686 <param name="propertyName">property in object</param>
1687 <remarks> 1687 <param name="value">checkbox value</param>
1688 POST is designed to allow a uniform method to cover the following functions: 1688 <param name="options">additional html attributes.</param>
1689 <list type="bullet"> 1689 <returns>generated html code</returns>
1690 <item> 1690 </member>
1691 Annotation of existing resources; 1691 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])">
1692 </item><item> 1692 <summary>
1693 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; 1693 Write a html select tag
1694 </item><item> 1694 </summary>
1695 Providing a block of data, such as the result of submitting a form, to a data-handling process; 1695 <param name="propertyName">object property.</param>
1696 </item><item> 1696 <param name="idColumn">id column</param>
1697 Extending a database through an append operation. 1697 <param name="titleColumn">The title column.</param>
1698 </item> 1698 <param name="options">The options.</param>
1699 </list> 1699 <returns></returns>
1700 <para> 1700 </member>
1701 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and 1701 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])">
1702 contain an entity which describes the status of the request and refers to the new resource, and a 1702 <summary>
1703 Location header (see section 14.30). 1703 Selects the specified property name.
1704 </para> 1704 </summary>
1705 <para> 1705 <param name="propertyName">Name of the property.</param>
1706 The action performed by the POST method might not result in a resource that can be identified by a URI. 1706 <param name="items">The items.</param>
1707 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on 1707 <param name="idColumn">The id column.</param>
1708 whether or not the response includes an entity that describes the result. 1708 <param name="titleColumn">The title column.</param>
1709 </para><para> 1709 <param name="options">The options.</param>
1710 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control 1710 <returns></returns>
1711 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent 1711 </member>
1712 to retrieve a cacheable resource. 1712 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)">
1713 </para> 1713 <summary>
1714 </remarks> 1714 Write a submit tag.
1715 </member> 1715 </summary>
1716 <member name="F:HttpServer.Method.Put"> 1716 <param name="value">button caption</param>
1717 <summary> 1717 <returns>html submit tag</returns>
1718 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 1718 </member>
1719 </summary> 1719 <member name="M:HttpServer.Helpers.ObjectForm.End">
1720 <remarks> 1720 <summary>
1721 <list type="bullet"> 1721 html end form tag
1722 <item> 1722 </summary>
1723 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a 1723 <returns>html</returns>
1724 modified version of the one residing on the origin server. 1724 </member>
1725 </item><item> 1725 <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
1726 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new 1726 <summary>
1727 resource by the requesting user agent, the origin server can create the resource with that URI. 1727 This provider is used to let us implement any type of form decoding we want without
1728 </item><item> 1728 having to rewrite anything else in the server.
1729 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. 1729 </summary>
1730 </item><item> 1730 </member>
1731 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to 1731 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
1732 indicate successful completion of the request. 1732 <summary>
1733 </item><item> 1733
1734 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be 1734 </summary>
1735 given that reflects the nature of the problem. 1735 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
1736 </item> 1736 <param name="stream">Stream containing form data.</param>
1737 </list> 1737 <param name="encoding">Encoding used when decoding the stream</param>
1738 <para> 1738 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
1739 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not 1739 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
1740 understand or implement and MUST return a 501 (Not Implemented) response in such cases. 1740 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
1741 </para> 1741 </member>
1742 </remarks> 1742 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
1743 </member> 1743 <summary>
1744 <member name="F:HttpServer.Method.Trace"> 1744 Add a decoder.
1745 <summary> 1745 </summary>
1746 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 1746 <param name="decoder"></param>
1747 </summary> 1747 <exception cref="T:System.ArgumentNullException"></exception>
1748 </member> 1748 </member>
1749 <member name="T:HttpServer.Methods"> 1749 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
1750 <summary> 1750 <summary>
1751 Contains all HTTP Methods (according to the HTTP 1.1 specification) 1751 Number of added decoders.
1752 <para> 1752 </summary>
1753 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html 1753 </member>
1754 </para> 1754 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
1755 </summary> 1755 <summary>
1756 </member> 1756 Use with care.
1757 <member name="F:HttpServer.Methods.Delete"> 1757 </summary>
1758 <summary> 1758 </member>
1759 The DELETE method requests that the origin server delete the resource identified by the Request-URI. 1759 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
1760 </summary> 1760 <summary>
1761 <remarks> 1761 Decoder used for unknown content types.
1762 <para> 1762 </summary>
1763 This method MAY be overridden by human intervention (or other means) on the origin server. 1763 </member>
1764 The client cannot be guaranteed that the operation has been carried out, even if the status code 1764 <member name="T:HttpServer.ExceptionHandler">
1765 returned from the origin server indicates that the action has been completed successfully. 1765 <summary>
1766 </para> 1766 We dont want to let the server to die due to exceptions thrown in worker threads.
1767 <para> 1767 therefore we use this delegate to give you a change to handle uncaught exceptions.
1768 However, the server SHOULD NOT indicate success unless, at the time the response is given, 1768 </summary>
1769 it intends to delete the resource or move it to an inaccessible location. 1769 <param name="source">Class that the exception was thrown in.</param>
1770 </para> 1770 <param name="exception">Exception</param>
1771 <para> 1771 <remarks>
1772 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, 1772 Server will throw a InternalServerException in release version if you dont
1773 202 (Accepted) if the action has not yet been enacted, 1773 handle this delegate.
1774 or 204 (No Content) if the action has been enacted but the response does not include an entity. 1774 </remarks>
1775 </para> 1775 </member>
1776 <para> 1776 <member name="T:HttpServer.HttpClientContext">
1777 If the request passes through a cache and the Request-URI identifies one or more currently cached entities, 1777 <summary>
1778 those entries SHOULD be treated as stale. Responses to this method are not cacheable. 1778 Contains a connection to a browser/client.
1779 </para> 1779 </summary>
1780 </remarks> 1780 <remarks>
1781 </member> 1781 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
1782 <member name="F:HttpServer.Methods.Get"> 1782 </remarks>
1783 <summary> 1783 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
1784 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 1784 </member>
1785 </summary> 1785 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
1786 <remarks> 1786 <summary>
1787 <para> 1787 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
1788 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the 1788 </summary>
1789 entity in the response and not the source text of the process, unless that text happens to be the output of the process. 1789 <param name="secured">true if the connection is secured (SSL/TLS)</param>
1790 </para> 1790 <param name="remoteEndPoint">client that connected.</param>
1791 <para> 1791 <param name="stream">Stream used for communication</param>
1792 The semantics of the GET method change to a "conditional GET" if the request message includes an 1792 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
1793 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. 1793 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param>
1794 A conditional GET method requests that the entity be transferred only under the circumstances described 1794 <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>
1795 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network 1795 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
1796 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring 1796 </member>
1797 data already held by the client. 1797 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
1798 </para> 1798 <summary>
1799 </remarks> 1799 Process incoming body bytes.
1800 </member> 1800 </summary>
1801 <member name="F:HttpServer.Methods.Header"> 1801 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
1802 <summary> 1802 <param name="e">Bytes</param>
1803 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 1803 </member>
1804 </summary> 1804 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
1805 <remarks> 1805 <summary>
1806 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 1806
1807 information sent in response to a GET request. This method can be used for obtaining meta information about 1807 </summary>
1808 the entity implied by the request without transferring the entity-body itself. 1808 <param name="sender"></param>
1809 1809 <param name="e"></param>
1810 This method is often used for testing hypertext links for validity, accessibility, and recent modification. 1810 </member>
1811 </remarks> 1811 <member name="M:HttpServer.HttpClientContext.Start">
1812 </member> 1812 <summary>
1813 <member name="F:HttpServer.Methods.Options"> 1813 Start reading content.
1814 <summary> 1814 </summary>
1815 <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> 1815 <remarks>
1816 </summary> 1816 Make sure to call base.Start() if you override this method.
1817 <remarks> 1817 </remarks>
1818 <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> 1818 </member>
1819 </remarks> 1819 <member name="M:HttpServer.HttpClientContext.Cleanup">
1820 </member> 1820 <summary>
1821 <member name="F:HttpServer.Methods.Post"> 1821 Clean up context.
1822 <summary> 1822 </summary>
1823 The POST method is used to request that the origin server accept the entity enclosed 1823 <remarks>
1824 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. 1824 Make sure to call base.Cleanup() if you override the method.
1825 </summary> 1825 </remarks>
1826 <remarks> 1826 </member>
1827 POST is designed to allow a uniform method to cover the following functions: 1827 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
1828 <list type="bullet"> 1828 <summary>
1829 <item> 1829 Disconnect from client
1830 Annotation of existing resources; 1830 </summary>
1831 </item><item> 1831 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
1832 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; 1832 </member>
1833 </item><item> 1833 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
1834 Providing a block of data, such as the result of submitting a form, to a data-handling process; 1834 <summary>
1835 </item><item> 1835 Send a response.
1836 Extending a database through an append operation. 1836 </summary>
1837 </item> 1837 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
1838 </list> 1838 <param name="statusCode">HTTP status code</param>
1839 <para> 1839 <param name="reason">reason for the status code.</param>
1840 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and 1840 <param name="body">HTML body contents, can be null or empty.</param>
1841 contain an entity which describes the status of the request and refers to the new resource, and a 1841 <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>
1842 Location header (see section 14.30). 1842 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
1843 </para> 1843 </member>
1844 <para> 1844 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
1845 The action performed by the POST method might not result in a resource that can be identified by a URI. 1845 <summary>
1846 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on 1846 Send a response.
1847 whether or not the response includes an entity that describes the result. 1847 </summary>
1848 </para><para> 1848 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
1849 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control 1849 <param name="statusCode">HTTP status code</param>
1850 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent 1850 <param name="reason">reason for the status code.</param>
1851 to retrieve a cacheable resource. 1851 </member>
1852 </para> 1852 <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
1853 </remarks> 1853 <summary>
1854 </member> 1854 Send a response.
1855 <member name="F:HttpServer.Methods.Put"> 1855 </summary>
1856 <summary> 1856 <exception cref="T:System.ArgumentNullException"></exception>
1857 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 1857 </member>
1858 </summary> 1858 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
1859 <remarks> 1859 <summary>
1860 <list type="bullet"> 1860 send a whole buffer
1861 <item> 1861 </summary>
1862 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a 1862 <param name="buffer">buffer to send</param>
1863 modified version of the one residing on the origin server. 1863 <exception cref="T:System.ArgumentNullException"></exception>
1864 </item><item> 1864 </member>
1865 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new 1865 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
1866 resource by the requesting user agent, the origin server can create the resource with that URI. 1866 <summary>
1867 </item><item> 1867 Send data using the stream
1868 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. 1868 </summary>
1869 </item><item> 1869 <param name="buffer">Contains data to send</param>
1870 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to 1870 <param name="offset">Start position in buffer</param>
1871 indicate successful completion of the request. 1871 <param name="size">number of bytes to send</param>
1872 </item><item> 1872 <exception cref="T:System.ArgumentNullException"></exception>
1873 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be 1873 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
1874 given that reflects the nature of the problem. 1874 </member>
1875 </item> 1875 <member name="E:HttpServer.HttpClientContext.Cleaned">
1876 </list> 1876 <summary>
1877 <para> 1877 This context have been cleaned, which means that it can be reused.
1878 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not 1878 </summary>
1879 understand or implement and MUST return a 501 (Not Implemented) response in such cases. 1879 </member>
1880 </para> 1880 <member name="E:HttpServer.HttpClientContext.Started">
1881 </remarks> 1881 <summary>
1882 </member> 1882 Context have been started (a new client have connected)
1883 <member name="F:HttpServer.Methods.Trace"> 1883 </summary>
1884 <summary> 1884 </member>
1885 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 1885 <member name="P:HttpServer.HttpClientContext.CurrentRequest">
1886 </summary> 1886 <summary>
1887 </member> 1887 Overload to specify own type.
1888 <member name="T:HttpServer.HttpListener"> 1888 </summary>
1889 <summary> 1889 <remarks>
1890 New implementation of the HTTP listener. 1890 Must be specified before the context is being used.
1891 </summary> 1891 </remarks>
1892 <remarks> 1892 </member>
1893 Use the <c>Create</c> methods to create a default listener. 1893 <member name="P:HttpServer.HttpClientContext.Secured">
1894 </remarks> 1894 <summary>
1895 </member> 1895 Using SSL or other encryption method.
1896 <member name="T:HttpServer.HttpListenerBase"> 1896 </summary>
1897 <summary> 1897 </member>
1898 Contains a listener that doesn't do anything with the connections. 1898 <member name="P:HttpServer.HttpClientContext.IsSecured">
1899 </summary> 1899 <summary>
1900 </member> 1900 Using SSL or other encryption method.
1901 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)"> 1901 </summary>
1902 <summary> 1902 </member>
1903 Listen for regular HTTP connections 1903 <member name="P:HttpServer.HttpClientContext.LogWriter">
1904 </summary> 1904 <summary>
1905 <param name="address">IP Address to accept connections on</param> 1905 Specify which logger to use.
1906 <param name="port">TCP Port to listen on, default HTTP port is 80.</param> 1906 </summary>
1907 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 1907 </member>
1908 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 1908 <member name="P:HttpServer.HttpClientContext.Stream">
1909 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception> 1909 <summary>
1910 </member> 1910 Gets or sets the network stream.
1911 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)"> 1911 </summary>
1912 <summary> 1912 </member>
1913 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class. 1913 <member name="P:HttpServer.HttpClientContext.RemoteAddress">
1914 </summary> 1914 <summary>
1915 <param name="address">IP Address to accept connections on</param> 1915 Gets or sets IP address that the client connected from.
1916 <param name="port">TCP Port to listen on, default HTTPS port is 443</param> 1916 </summary>
1917 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 1917 </member>
1918 <param name="certificate">Certificate to use</param> 1918 <member name="P:HttpServer.HttpClientContext.RemotePort">
1919 </member> 1919 <summary>
1920 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 1920 Gets or sets port that the client connected from.
1921 <summary> 1921 </summary>
1922 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class. 1922 </member>
1923 </summary> 1923 <member name="E:HttpServer.HttpClientContext.Disconnected">
1924 <param name="address">IP Address to accept connections on</param> 1924 <summary>
1925 <param name="port">TCP Port to listen on, default HTTPS port is 443</param> 1925 The context have been disconnected.
1926 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 1926 </summary>
1927 <param name="certificate">Certificate to use</param> 1927 <remarks>
1928 <param name="protocol">which HTTPS protocol to use, default is TLS.</param> 1928 Event can be used to clean up a context, or to reuse it.
1929 </member> 1929 </remarks>
1930 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)"> 1930 </member>
1931 <exception cref="T:System.Exception"><c>Exception</c>.</exception> 1931 <member name="E:HttpServer.HttpClientContext.RequestReceived">
1932 </member> 1932 <summary>
1933 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept"> 1933 A request have been received in the context.
1934 <summary> 1934 </summary>
1935 Will try to accept connections one more time. 1935 </member>
1936 </summary> 1936 <member name="T:HttpServer.Helpers.XmlHelper">
1937 <exception cref="T:System.Exception">If any exceptions is thrown.</exception> 1937 <summary>
1938 </member> 1938 Helpers to make XML handling easier
1939 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)"> 1939 </summary>
1940 <summary> 1940 </member>
1941 Can be used to create filtering of new connections. 1941 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
1942 </summary> 1942 <summary>
1943 <param name="socket">Accepted socket</param> 1943 Serializes object to XML.
1944 <returns>true if connection can be accepted; otherwise false.</returns> 1944 </summary>
1945 </member> 1945 <param name="value">object to serialize.</param>
1946 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)"> 1946 <returns>XML</returns>
1947 <summary> 1947 <remarks>
1948 Start listen for new connections 1948 Removes name spaces and adds indentation
1949 </summary> 1949 </remarks>
1950 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param> 1950 </member>
1951 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception> 1951 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
1952 </member> 1952 <summary>
1953 <member name="M:HttpServer.HttpListenerBase.Stop"> 1953 Create an object from a XML string
1954 <summary> 1954 </summary>
1955 Stop the listener 1955 <typeparam name="T">Type of object</typeparam>
1956 </summary> 1956 <param name="xml">XML string</param>
1957 <exception cref="T:System.Net.Sockets.SocketException"></exception> 1957 <returns>object</returns>
1958 </member> 1958 </member>
1959 <member name="P:HttpServer.HttpListenerBase.LogWriter"> 1959 <member name="T:HttpServer.FormDecoders.UrlDecoder">
1960 <summary> 1960 <summary>
1961 Gives you a change to receive log entries for all internals of the HTTP library. 1961 Can handle application/x-www-form-urlencoded
1962 </summary> 1962 </summary>
1963 <remarks> 1963 </member>
1964 You may not switch log writer after starting the listener. 1964 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
1965 </remarks> 1965 <summary>
1966 </member> 1966 </summary>
1967 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs"> 1967 <param name="stream">Stream containing the content</param>
1968 <summary> 1968 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
1969 True if we should turn on trace logs. 1969 <param name="encoding">Stream encoding</param>
1970 </summary> 1970 <returns>
1971 </member> 1971 A HTTP form, or null if content could not be parsed.
1972 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown"> 1972 </returns>
1973 <summary> 1973 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
1974 Catch exceptions not handled by the listener. 1974 </member>
1975 </summary> 1975 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
1976 <remarks> 1976 <summary>
1977 Exceptions will be thrown during debug mode if this event is not used, 1977 Checks if the decoder can handle the mime type
1978 exceptions will be printed to console and suppressed during release mode. 1978 </summary>
1979 </remarks> 1979 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
1980 </member> 1980 <returns>True if the decoder can parse the specified content type</returns>
1981 <member name="E:HttpServer.HttpListenerBase.RequestReceived"> 1981 </member>
1982 <summary> 1982 <member name="T:HttpServer.ClientAcceptedEventArgs">
1983 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>. 1983 <summary>
1984 </summary> 1984 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
1985 </member> 1985 </summary>
1986 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)"> 1986 <remarks>
1987 <summary> 1987 Can be used to revoke incoming connections
1988 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 1988 </remarks>
1989 </summary> 1989 </member>
1990 <param name="address">IP Address to accept connections on</param> 1990 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
1991 <param name="port">TCP Port to listen on, default HTTP port is 80.</param> 1991 <summary>
1992 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 1992 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
1993 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 1993 </summary>
1994 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception> 1994 <param name="socket">The socket.</param>
1995 </member> 1995 </member>
1996 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)"> 1996 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
1997 <summary> 1997 <summary>
1998 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 1998 Client may not be handled.
1999 </summary> 1999 </summary>
2000 <param name="address">The address.</param> 2000 </member>
2001 <param name="port">The port.</param> 2001 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
2002 <param name="factory">The factory.</param> 2002 <summary>
2003 <param name="certificate">The certificate.</param> 2003 Accepted socket.
2004 </member> 2004 </summary>
2005 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 2005 </member>
2006 <summary> 2006 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
2007 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 2007 <summary>
2008 </summary> 2008 Client should be revoked.
2009 <param name="address">The address.</param> 2009 </summary>
2010 <param name="port">The port.</param> 2010 </member>
2011 <param name="factory">The factory.</param> 2011 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
2012 <param name="certificate">The certificate.</param> 2012 <summary>
2013 <param name="protocol">The protocol.</param> 2013 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
2014 </member> 2014 </summary>
2015 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)"> 2015 </member>
2016 <summary> 2016 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
2017 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 2017 <summary>
2018 </summary> 2018 Instantiates the arguments for the event
2019 <param name="address">Address that the listener should accept connections on.</param> 2019 </summary>
2020 <param name="port">Port that listener should accept connections on.</param> 2020 <param name="expired">True if the session is cleared due to expiration</param>
2021 <returns>Created HTTP listener.</returns> 2021 </member>
2022 </member> 2022 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
2023 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 2023 <summary>
2024 <summary> 2024 Returns true if the session is cleared due to expiration
2025 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 2025 </summary>
2026 </summary> 2026 </member>
2027 <param name="address">Address that the listener should accept connections on.</param> 2027 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
2028 <param name="port">Port that listener should accept connections on.</param> 2028 <summary>
2029 <param name="certificate">Certificate to use</param> 2029 Delegate for when a IHttpSession is cleared
2030 <returns>Created HTTP listener.</returns> 2030 </summary>
2031 </member> 2031 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
2032 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 2032 <param name="args">Arguments for the clearing</param>
2033 <summary> 2033 </member>
2034 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 2034 <member name="T:HttpServer.Parser.HeaderEventArgs">
2035 </summary> 2035 <summary>
2036 <param name="address">Address that the listener should accept connections on.</param> 2036 Event arguments used when a new header have been parsed.
2037 <param name="port">Port that listener should accept connections on.</param> 2037 </summary>
2038 <param name="certificate">Certificate to use</param> 2038 </member>
2039 <param name="protocol">which HTTPS protocol to use, default is TLS.</param> 2039 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
2040 <returns>Created HTTP listener.</returns> 2040 <summary>
2041 </member> 2041 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
2042 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)"> 2042 </summary>
2043 <summary> 2043 <param name="name">Name of header.</param>
2044 Can be used to create filtering of new connections. 2044 <param name="value">Header value.</param>
2045 </summary> 2045 </member>
2046 <param name="socket">Accepted socket</param> 2046 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
2047 <returns> 2047 <summary>
2048 true if connection can be accepted; otherwise false. 2048 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
2049 </returns> 2049 </summary>
2050 </member> 2050 </member>
2051 <member name="E:HttpServer.HttpListener.Accepted"> 2051 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
2052 <summary> 2052 <summary>
2053 A client have been accepted, but not handled, by the listener. 2053 Gets or sets header name.
2054 </summary> 2054 </summary>
2055 </member> 2055 </member>
2056 <member name="T:HttpServer.Parser.HeaderEventArgs"> 2056 <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
2057 <summary> 2057 <summary>
2058 Event arguments used when a new header have been parsed. 2058 Gets or sets header value.
2059 </summary> 2059 </summary>
2060 </member> 2060 </member>
2061 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)"> 2061 <member name="T:HttpServer.Helpers.ResourceManager">
2062 <summary> 2062 <summary>Class to handle loading of resource files</summary>
2063 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class. 2063 </member>
2064 </summary> 2064 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
2065 <param name="name">Name of header.</param> 2065 <summary>
2066 <param name="value">Header value.</param> 2066 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
2067 </member> 2067 </summary>
2068 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor"> 2068 </member>
2069 <summary> 2069 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
2070 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class. 2070 <summary>
2071 </summary> 2071 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
2072 </member> 2072 </summary>
2073 <member name="P:HttpServer.Parser.HeaderEventArgs.Name"> 2073 <param name="writer">logger.</param>
2074 <summary> 2074 </member>
2075 Gets or sets header name. 2075 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
2076 </summary> 2076 <summary>
2077 </member> 2077 Loads resources from a namespace in the given assembly to an URI
2078 <member name="P:HttpServer.Parser.HeaderEventArgs.Value"> 2078 </summary>
2079 <summary> 2079 <param name="toUri">The URI to map the resources to</param>
2080 Gets or sets header value. 2080 <param name="fromAssembly">The assembly in which the resources reside</param>
2081 </summary> 2081 <param name="fromNamespace">The namespace from which to load the resources</param>
2082 </member> 2082 <usage>
2083 <member name="T:HttpServer.LogPrio"> 2083 <code>
2084 <summary> 2084 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
2085 Priority for log entries 2085 </code>
2086 </summary> 2086 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
2087 <seealso cref="T:HttpServer.ILogWriter"/> 2087 </usage>
2088 </member> 2088 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
2089 <member name="F:HttpServer.LogPrio.Trace"> 2089 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
2090 <summary> 2090 </member>
2091 Very detailed logs to be able to follow the flow of the program. 2091 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
2092 </summary> 2092 <summary>
2093 </member> 2093 Retrieves a stream for the specified resource path if loaded otherwise null
2094 <member name="F:HttpServer.LogPrio.Debug"> 2094 </summary>
2095 <summary> 2095 <param name="path">Path to the resource to retrieve a stream for</param>
2096 Logs to help debug errors in the application 2096 <returns>A stream or null if the resource couldn't be found</returns>
2097 </summary> 2097 </member>
2098 </member> 2098 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
2099 <member name="F:HttpServer.LogPrio.Info"> 2099 <summary>
2100 <summary> 2100 Fetch all files from the resource that matches the specified arguments.
2101 Information to be able to keep track of state changes etc. 2101 </summary>
2102 </summary> 2102 <param name="path">The path to the resource to extract</param>
2103 </member> 2103 <returns>
2104 <member name="F:HttpServer.LogPrio.Warning"> 2104 a list of files if found; or an empty array if no files are found.
2105 <summary> 2105 </returns>
2106 Something did not go as we expected, but it's no problem. 2106 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
2107 </summary> 2107 </member>
2108 </member> 2108 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
2109 <member name="F:HttpServer.LogPrio.Error"> 2109 <summary>
2110 <summary> 2110 Fetch all files from the resource that matches the specified arguments.
2111 Something that should not fail failed, but we can still keep 2111 </summary>
2112 on going. 2112 <param name="path">Where the file should reside.</param>
2113 </summary> 2113 <param name="filename">Files to check</param>
2114 </member> 2114 <returns>
2115 <member name="F:HttpServer.LogPrio.Fatal"> 2115 a list of files if found; or an empty array if no files are found.
2116 <summary> 2116 </returns>
2117 Something failed, and we cannot handle it properly. 2117 </member>
2118 </summary> 2118 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
2119 </member> 2119 <summary>
2120 <member name="T:HttpServer.ILogWriter"> 2120 Returns whether or not the loader has an instance of the file requested
2121 <summary> 2121 </summary>
2122 Interface used to write to log files. 2122 <param name="filename">The name of the template/file</param>
2123 </summary> 2123 <returns>True if the loader can provide the file</returns>
2124 </member> 2124 </member>
2125 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 2125 <member name="T:HttpServer.Rules.RedirectRule">
2126 <summary> 2126 <summary>
2127 Write an entry to the log file. 2127 redirects from one URL to another.
2128 </summary> 2128 </summary>
2129 <param name="source">object that is writing to the log</param> 2129 </member>
2130 <param name="priority">importance of the log message</param> 2130 <member name="T:HttpServer.Rules.IRule">
2131 <param name="message">the message</param> 2131 <summary>
2132 </member> 2132 Rules are used to perform operations before a request is being handled.
2133 <member name="T:HttpServer.ConsoleLogWriter"> 2133 Rules can be used to create routing etc.
2134 <summary> 2134 </summary>
2135 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode) 2135 </member>
2136 </summary> 2136 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
2137 <seealso cref="T:HttpServer.ILogWriter"/> 2137 <summary>
2138 </member> 2138 Process the incoming request.
2139 <member name="F:HttpServer.ConsoleLogWriter.Instance"> 2139 </summary>
2140 <summary> 2140 <param name="request">incoming HTTP request</param>
2141 The actual instance of this class. 2141 <param name="response">outgoing HTTP response</param>
2142 </summary> 2142 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
2143 </member> 2143 <remarks>
2144 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 2144 returning true means that no modules will get the request. Returning true is typically being done
2145 <summary> 2145 for redirects.
2146 Logwriters the specified source. 2146 </remarks>
2147 </summary> 2147 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
2148 <param name="source">object that wrote the logentry.</param> 2148 </member>
2149 <param name="prio">Importance of the log message</param> 2149 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)">
2150 <param name="message">The message.</param> 2150 <summary>
2151 </member> 2151 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
2152 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)"> 2152 </summary>
2153 <summary> 2153 <param name="fromUrl">Absolute path (no server name)</param>
2154 Get color for the specified logprio 2154 <param name="toUrl">Absolute path (no server name)</param>
2155 </summary> 2155 <example>
2156 <param name="prio">prio for the log entry</param> 2156 server.Add(new RedirectRule("/", "/user/index"));
2157 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns> 2157 </example>
2158 </member> 2158 </member>
2159 <member name="T:HttpServer.NullLogWriter"> 2159 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)">
2160 <summary> 2160 <summary>
2161 Default log writer, writes everything to null (nowhere). 2161 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
2162 </summary> 2162 </summary>
2163 <seealso cref="T:HttpServer.ILogWriter"/> 2163 <param name="fromUrl">Absolute path (no server name)</param>
2164 </member> 2164 <param name="toUrl">Absolute path (no server name)</param>
2165 <member name="F:HttpServer.NullLogWriter.Instance"> 2165 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
2166 <summary> 2166 <example>
2167 The logging instance. 2167 server.Add(new RedirectRule("/", "/user/index"));
2168 </summary> 2168 </example>
2169 </member> 2169 </member>
2170 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 2170 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
2171 <summary> 2171 <summary>
2172 Writes everything to null 2172 Process the incoming request.
2173 </summary> 2173 </summary>
2174 <param name="source">object that wrote the log entry.</param> 2174 <param name="request">incoming HTTP request</param>
2175 <param name="prio">Importance of the log message</param> 2175 <param name="response">outgoing HTTP response</param>
2176 <param name="message">The message.</param> 2176 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
2177 </member> 2177 <remarks>
2178 <member name="T:HttpServer.Helpers.JSHelper"> 2178 returning true means that no modules will get the request. Returning true is typically being done
2179 <summary> 2179 for redirects.
2180 Will contain helper functions for javascript. 2180 </remarks>
2181 </summary> 2181 </member>
2182 </member> 2182 <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
2183 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])"> 2183 <summary>
2184 <summary> 2184 Gets string to match request URI with.
2185 Requests a url through ajax 2185 </summary>
2186 </summary> 2186 <remarks>Is compared to request.Uri.AbsolutePath</remarks>
2187 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 2187 </member>
2188 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param> 2188 <member name="P:HttpServer.Rules.RedirectRule.ToUrl">
2189 <returns>a link tag</returns> 2189 <summary>
2190 <remarks>onclick attribute is used by this method.</remarks> 2190 Gets where to redirect.
2191 <example> 2191 </summary>
2192 <code> 2192 </member>
2193 // plain text 2193 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect">
2194 JSHelper.AjaxRequest("'/user/show/1'"); 2194 <summary>
2195 2195 Gets whether server should redirect client.
2196 // ajax request using this.href 2196 </summary>
2197 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;"; 2197 <remarks>
2198 </code> 2198 <c>false</c> means that the rule will replace
2199 </example> 2199 the current request URI with the new one from this class.
2200 </member> 2200 <c>true</c> means that a redirect response is sent to the client.
2201 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])"> 2201 </remarks>
2202 <summary> 2202 </member>
2203 Ajax requests that updates an element with 2203 <member name="T:HttpServer.RequestQueue">
2204 the fetched content 2204 <summary>
2205 </summary> 2205 Used to queue incoming requests.
2206 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 2206 </summary>
2207 <param name="targetId">element to update</param> 2207 </member>
2208 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param> 2208 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
2209 <returns>A link tag.</returns> 2209 <summary>
2210 <example> 2210 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
2211 <code> 2211 </summary>
2212 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true"); 2212 <param name="handler">Called when a request should be processed.</param>
2213 </code> 2213 </member>
2214 </example> 2214 <member name="M:HttpServer.RequestQueue.QueueThread">
2215 </member> 2215 <summary>
2216 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"> 2216 Used to process queued requests.
2217 <summary> 2217 </summary>
2218 Opens contents in a dialog window. 2218 </member>
2219 </summary> 2219 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
2220 <param name="url">url to contents of dialog</param> 2220 <summary>
2221 <param name="title">link title</param> 2221 Gets or sets maximum number of allowed simultaneous requests.
2222 <param name="options">name, value, name, value, all parameter names should end with colon.</param> 2222 </summary>
2223 </member> 2223 </member>
2224 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog"> 2224 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
2225 <summary> 2225 <summary>
2226 Close a javascript dialog window/div. 2226 Gets or sets maximum number of requests queuing to be handled.
2227 </summary> 2227 </summary>
2228 <returns>javascript for closing a dialog.</returns> 2228 </member>
2229 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/> 2229 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
2230 </member> 2230 <summary>
2231 <member name="T:HttpServer.Helpers.GetIdTitle"> 2231 Specifies how many requests the HTTP server is currently processing.
2232 <summary> 2232 </summary>
2233 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. 2233 </member>
2234 </summary> 2234 <member name="T:HttpServer.RequestQueue.QueueItem">
2235 <param name="obj">current object (for instance a User).</param> 2235 <summary>
2236 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param> 2236 Used two queue incoming requests to avoid
2237 <param name="title">Text shown in the select list.</param> 2237 thread starvation.
2238 <example> 2238 </summary>
2239 // Class that is going to be used in a SELECT-tag. 2239 </member>
2240 public class User 2240 <member name="T:HttpServer.ProcessRequestHandler">
2241 { 2241 <summary>
2242 private readonly string _realName; 2242 Method used to process a queued request
2243 private readonly int _id; 2243 </summary>
2244 public User(int id, string realName) 2244 <param name="context">Context that the request was received from.</param>
2245 { 2245 <param name="request">Request to process.</param>
2246 _id = id; 2246 </member>
2247 _realName = realName; 2247 <member name="T:HttpServer.Parser.HttpRequestParser">
2248 } 2248 <summary>
2249 public string RealName 2249 Parses a HTTP request directly from a stream
2250 { 2250 </summary>
2251 get { return _realName; } 2251 </member>
2252 } 2252 <member name="T:HttpServer.IHttpRequestParser">
2253 2253 <summary>
2254 public int Id 2254 Event driven parser used to parse incoming HTTP requests.
2255 { 2255 </summary>
2256 get { return _id; } 2256 <remarks>
2257 } 2257 The parser supports partial messages and keeps the states between
2258 } 2258 each parsed buffer. It's therefore important that the parser gets
2259 2259 <see cref="M:HttpServer.IHttpRequestParser.Clear"/>ed if a client disconnects.
2260 // Using an inline delegate to generate the select list 2260 </remarks>
2261 public void UserInlineDelegate() 2261 </member>
2262 { 2262 <member name="M:HttpServer.IHttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
2263 List&lt;User&gt; items = new List&lt;User&gt;(); 2263 <summary>
2264 items.Add(new User(1, "adam")); 2264 Parse partial or complete message.
2265 items.Add(new User(2, "bertial")); 2265 </summary>
2266 items.Add(new User(3, "david")); 2266 <param name="buffer">buffer containing incoming bytes</param>
2267 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) 2267 <param name="offset">where in buffer that parsing should start</param>
2268 { 2268 <param name="count">number of bytes to parse</param>
2269 User user = (User)o; 2269 <returns>Unparsed bytes left in buffer.</returns>
2270 id = user.Id; 2270 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
2271 value = user.RealName; 2271 </member>
2272 }, 2, true); 2272 <member name="M:HttpServer.IHttpRequestParser.Clear">
2273 } 2273 <summary>
2274 2274 Clear parser state.
2275 // Using an method as delegate to generate the select list. 2275 </summary>
2276 public void UseExternalDelegate() 2276 </member>
2277 { 2277 <member name="P:HttpServer.IHttpRequestParser.CurrentState">
2278 List&lt;User&gt; items = new List&lt;User&gt;(); 2278 <summary>
2279 items.Add(new User(1, "adam")); 2279 Current state in parser.
2280 items.Add(new User(2, "bertial")); 2280 </summary>
2281 items.Add(new User(3, "david")); 2281 </member>
2282 string htmlSelect = Select("users", "users", items, UserOptions, 1, true); 2282 <member name="E:HttpServer.IHttpRequestParser.RequestCompleted">
2283 } 2283 <summary>
2284 2284 A request have been successfully parsed.
2285 // delegate returning id and title 2285 </summary>
2286 public static void UserOptions(object o, out object id, out object title) 2286 </member>
2287 { 2287 <member name="E:HttpServer.IHttpRequestParser.BodyBytesReceived">
2288 User user = (User)o; 2288 <summary>
2289 id = user.Id; 2289 More body bytes have been received.
2290 value = user.RealName; 2290 </summary>
2291 } /// </example> 2291 </member>
2292 </member> 2292 <member name="E:HttpServer.IHttpRequestParser.RequestLineReceived">
2293 <member name="T:HttpServer.Parser.BodyEventArgs"> 2293 <summary>
2294 <summary> 2294 Request line have been received.
2295 Arguments used when more body bytes have come. 2295 </summary>
2296 </summary> 2296 </member>
2297 </member> 2297 <member name="E:HttpServer.IHttpRequestParser.HeaderReceived">
2298 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)"> 2298 <summary>
2299 <summary> 2299 A header have been received.
2300 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class. 2300 </summary>
2301 </summary> 2301 </member>
2302 <param name="buffer">buffer that contains the received bytes.</param> 2302 <member name="P:HttpServer.IHttpRequestParser.LogWriter">
2303 <param name="offset">offset in buffer where to start processing.</param> 2303 <summary>
2304 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param> 2304 Gets or sets the log writer.
2305 </member> 2305 </summary>
2306 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor"> 2306 </member>
2307 <summary> 2307 <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)">
2308 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class. 2308 <summary>
2309 </summary> 2309 Create a new request parser
2310 </member> 2310 </summary>
2311 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer"> 2311 <param name="logWriter">delegate receiving log entries.</param>
2312 <summary> 2312 </member>
2313 Gets or sets buffer that contains the received bytes. 2313 <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)">
2314 </summary> 2314 <summary>
2315 </member> 2315 Add a number of bytes to the body
2316 <member name="P:HttpServer.Parser.BodyEventArgs.Count"> 2316 </summary>
2317 <summary> 2317 <param name="buffer">buffer containing more body bytes.</param>
2318 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed. 2318 <param name="offset">starting offset in buffer</param>
2319 </summary> 2319 <param name="count">number of bytes, from offset, to read.</param>
2320 </member> 2320 <returns>offset to continue from.</returns>
2321 <member name="P:HttpServer.Parser.BodyEventArgs.Offset"> 2321 </member>
2322 <summary> 2322 <member name="M:HttpServer.Parser.HttpRequestParser.Clear">
2323 Gets or sets offset in buffer where to start processing. 2323 <summary>
2324 </summary> 2324 Remove all state information for the request.
2325 </member> 2325 </summary>
2326 <member name="T:HttpServer.IHttpResponse"> 2326 </member>
2327 <summary> 2327 <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)">
2328 Response that is sent back to the web browser / client. 2328 <summary>
2329 2329 Parse request line
2330 A response can be sent if different ways. The easiest one is 2330 </summary>
2331 to just fill the Body stream with content, everything else 2331 <param name="value"></param>
2332 will then be taken care of by the framework. The default content-type 2332 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
2333 is text/html, you should change it if you send anything else. 2333 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
2334 2334 </member>
2335 The second and slighty more complex way is to send the response 2335 <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)">
2336 as parts. Start with sending the header using the SendHeaders method and 2336 <summary>
2337 then you can send the body using SendBody method, but do not forget 2337 We've parsed a new header.
2338 to set ContentType and ContentLength before doing so. 2338 </summary>
2339 </summary> 2339 <param name="name">Name in lower case</param>
2340 <example> 2340 <param name="value">Value, unmodified.</param>
2341 public void MyHandler(IHttpRequest request, IHttpResponse response) 2341 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
2342 { 2342 </member>
2343 2343 <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
2344 } 2344 <summary>
2345 </example> 2345 Parse a message
2346 </member> 2346 </summary>
2347 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"> 2347 <param name="buffer">bytes to parse.</param>
2348 <summary> 2348 <param name="offset">where in buffer that parsing should start</param>
2349 Add another header to the document. 2349 <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param>
2350 </summary> 2350 <returns>offset (where to start parsing next).</returns>
2351 <param name="name">Name of the header, case sensitive, use lower cases.</param> 2351 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
2352 <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> 2352 </member>
2353 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 2353 <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter">
2354 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception> 2354 <summary>
2355 <remarks>Adding any header will override the default ones and those specified by properties.</remarks> 2355 Gets or sets the log writer.
2356 </member> 2356 </summary>
2357 <member name="M:HttpServer.IHttpResponse.Send"> 2357 </member>
2358 <summary> 2358 <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState">
2359 Send headers and body to the browser. 2359 <summary>
2360 </summary> 2360 Current state in parser.
2361 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception> 2361 </summary>
2362 </member> 2362 </member>
2363 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)"> 2363 <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted">
2364 <summary> 2364 <summary>
2365 Make sure that you have specified ContentLength and sent the headers first. 2365 A request have been successfully parsed.
2366 </summary> 2366 </summary>
2367 <param name="buffer"></param> 2367 </member>
2368 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 2368 <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived">
2369 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/> 2369 <summary>
2370 <param name="offset">offest of first byte to send</param> 2370 More body bytes have been received.
2371 <param name="count">number of bytes to send.</param> 2371 </summary>
2372 <seealso cref="M:HttpServer.IHttpResponse.Send"/> 2372 </member>
2373 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/> 2373 <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived">
2374 <remarks>This method can be used if you want to send body contents without caching them first. This 2374 <summary>
2375 is recommended for larger files to keep the memory usage low.</remarks> 2375 Request line have been received.
2376 </member> 2376 </summary>
2377 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"> 2377 </member>
2378 <summary> 2378 <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived">
2379 Make sure that you have specified ContentLength and sent the headers first. 2379 <summary>
2380 </summary> 2380 A header have been received.
2381 <param name="buffer"></param> 2381 </summary>
2382 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 2382 </member>
2383 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/> 2383 <member name="T:HttpServer.IHttpResponse">
2384 <seealso cref="M:HttpServer.IHttpResponse.Send"/> 2384 <summary>
2385 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/> 2385 Response that is sent back to the web browser / client.
2386 <remarks>This method can be used if you want to send body contents without caching them first. This 2386
2387 is recommended for larger files to keep the memory usage low.</remarks> 2387 A response can be sent if different ways. The easiest one is
2388 </member> 2388 to just fill the Body stream with content, everything else
2389 <member name="M:HttpServer.IHttpResponse.SendHeaders"> 2389 will then be taken care of by the framework. The default content-type
2390 <summary> 2390 is text/html, you should change it if you send anything else.
2391 Send headers to the client. 2391
2392 </summary> 2392 The second and slighty more complex way is to send the response
2393 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 2393 as parts. Start with sending the header using the SendHeaders method and
2394 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/> 2394 then you can send the body using SendBody method, but do not forget
2395 <seealso cref="M:HttpServer.IHttpResponse.Send"/> 2395 to set ContentType and ContentLength before doing so.
2396 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/> 2396 </summary>
2397 </member> 2397 <example>
2398 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)"> 2398 public void MyHandler(IHttpRequest request, IHttpResponse response)
2399 <summary> 2399 {
2400 Redirect client to somewhere else using the 302 status code. 2400
2401 </summary> 2401 }
2402 <param name="uri">Destination of the redirect</param> 2402 </example>
2403 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 2403 </member>
2404 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last 2404 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)">
2405 action.</remarks> 2405 <summary>
2406 </member> 2406 Add another header to the document.
2407 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)"> 2407 </summary>
2408 <summary> 2408 <param name="name">Name of the header, case sensitive, use lower cases.</param>
2409 redirect to somewhere 2409 <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>
2410 </summary> 2410 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2411 <param name="url">where the redirect should go</param> 2411 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
2412 <remarks> 2412 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
2413 No body are allowed when doing redirects. 2413 </member>
2414 </remarks> 2414 <member name="M:HttpServer.IHttpResponse.Send">
2415 </member> 2415 <summary>
2416 <member name="P:HttpServer.IHttpResponse.Body"> 2416 Send headers and body to the browser.
2417 <summary> 2417 </summary>
2418 The body stream is used to cache the body contents 2418 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
2419 before sending everything to the client. It's the simplest 2419 </member>
2420 way to serve documents. 2420 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
2421 </summary> 2421 <summary>
2422 </member> 2422 Make sure that you have specified ContentLength and sent the headers first.
2423 <member name="P:HttpServer.IHttpResponse.ProtocolVersion"> 2423 </summary>
2424 <summary> 2424 <param name="buffer"></param>
2425 Defines the version of the HTTP Response for applications where it's required 2425 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2426 for this to be forced. 2426 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2427 </summary> 2427 <param name="offset">offest of first byte to send</param>
2428 </member> 2428 <param name="count">number of bytes to send.</param>
2429 <member name="P:HttpServer.IHttpResponse.Chunked"> 2429 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
2430 <summary> 2430 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2431 The chunked encoding modifies the body of a message in order to 2431 <remarks>This method can be used if you want to send body contents without caching them first. This
2432 transfer it as a series of chunks, each with its own size indicator, 2432 is recommended for larger files to keep the memory usage low.</remarks>
2433 followed by an OPTIONAL trailer containing entity-header fields. This 2433 </member>
2434 allows dynamically produced content to be transferred along with the 2434 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])">
2435 information necessary for the recipient to verify that it has 2435 <summary>
2436 received the full message. 2436 Make sure that you have specified ContentLength and sent the headers first.
2437 </summary> 2437 </summary>
2438 </member> 2438 <param name="buffer"></param>
2439 <member name="P:HttpServer.IHttpResponse.Connection"> 2439 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2440 <summary> 2440 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2441 Kind of connection 2441 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
2442 </summary> 2442 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2443 </member> 2443 <remarks>This method can be used if you want to send body contents without caching them first. This
2444 <member name="P:HttpServer.IHttpResponse.Encoding"> 2444 is recommended for larger files to keep the memory usage low.</remarks>
2445 <summary> 2445 </member>
2446 Encoding to use when sending stuff to the client. 2446 <member name="M:HttpServer.IHttpResponse.SendHeaders">
2447 </summary> 2447 <summary>
2448 <remarks>Default is UTF8</remarks> 2448 Send headers to the client.
2449 </member> 2449 </summary>
2450 <member name="P:HttpServer.IHttpResponse.KeepAlive"> 2450 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2451 <summary> 2451 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/>
2452 Number of seconds to keep connection alive 2452 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
2453 </summary> 2453 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/>
2454 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks> 2454 </member>
2455 </member> 2455 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)">
2456 <member name="P:HttpServer.IHttpResponse.Status"> 2456 <summary>
2457 <summary> 2457 Redirect client to somewhere else using the 302 status code.
2458 Status code that is sent to the client. 2458 </summary>
2459 </summary> 2459 <param name="uri">Destination of the redirect</param>
2460 <remarks>Default is HttpStatusCode.Ok</remarks> 2460 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2461 </member> 2461 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
2462 <member name="P:HttpServer.IHttpResponse.Reason"> 2462 action.</remarks>
2463 <summary> 2463 </member>
2464 Information about why a specific status code was used. 2464 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)">
2465 </summary> 2465 <summary>
2466 </member> 2466 redirect to somewhere
2467 <member name="P:HttpServer.IHttpResponse.ContentLength"> 2467 </summary>
2468 <summary> 2468 <param name="url">where the redirect should go</param>
2469 Size of the body. MUST be specified before sending the header, 2469 <remarks>
2470 unless property Chunked is set to true. 2470 No body are allowed when doing redirects.
2471 </summary> 2471 </remarks>
2472 </member> 2472 </member>
2473 <member name="P:HttpServer.IHttpResponse.ContentType"> 2473 <member name="P:HttpServer.IHttpResponse.Body">
2474 <summary> 2474 <summary>
2475 Kind of content in the body 2475 The body stream is used to cache the body contents
2476 </summary> 2476 before sending everything to the client. It's the simplest
2477 <remarks>Default is text/html</remarks> 2477 way to serve documents.
2478 </member> 2478 </summary>
2479 <member name="P:HttpServer.IHttpResponse.HeadersSent"> 2479 </member>
2480 <summary> 2480 <member name="P:HttpServer.IHttpResponse.ProtocolVersion">
2481 Headers have been sent to the client- 2481 <summary>
2482 </summary> 2482 Defines the version of the HTTP Response for applications where it's required
2483 <remarks>You can not send any additional headers if they have already been sent.</remarks> 2483 for this to be forced.
2484 </member> 2484 </summary>
2485 <member name="P:HttpServer.IHttpResponse.Sent"> 2485 </member>
2486 <summary> 2486 <member name="P:HttpServer.IHttpResponse.Chunked">
2487 The whole response have been sent. 2487 <summary>
2488 </summary> 2488 The chunked encoding modifies the body of a message in order to
2489 </member> 2489 transfer it as a series of chunks, each with its own size indicator,
2490 <member name="P:HttpServer.IHttpResponse.Cookies"> 2490 followed by an OPTIONAL trailer containing entity-header fields. This
2491 <summary> 2491 allows dynamically produced content to be transferred along with the
2492 Cookies that should be created/changed. 2492 information necessary for the recipient to verify that it has
2493 </summary> 2493 received the full message.
2494 </member> 2494 </summary>
2495 <member name="T:HttpServer.ConnectionType"> 2495 </member>
2496 <summary> 2496 <member name="P:HttpServer.IHttpResponse.Connection">
2497 Type of HTTP connection 2497 <summary>
2498 </summary> 2498 Kind of connection
2499 </member> 2499 </summary>
2500 <member name="F:HttpServer.ConnectionType.Close"> 2500 </member>
2501 <summary> 2501 <member name="P:HttpServer.IHttpResponse.Encoding">
2502 Connection is closed after each request-response 2502 <summary>
2503 </summary> 2503 Encoding to use when sending stuff to the client.
2504 </member> 2504 </summary>
2505 <member name="F:HttpServer.ConnectionType.KeepAlive"> 2505 <remarks>Default is UTF8</remarks>
2506 <summary> 2506 </member>
2507 Connection is kept alive for X seconds (unless another request have been made) 2507 <member name="P:HttpServer.IHttpResponse.KeepAlive">
2508 </summary> 2508 <summary>
2509 </member> 2509 Number of seconds to keep connection alive
2510 <member name="T:HttpServer.IHttpRequest"> 2510 </summary>
2511 <summary> 2511 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
2512 Contains server side HTTP request information. 2512 </member>
2513 </summary> 2513 <member name="P:HttpServer.IHttpResponse.Status">
2514 </member> 2514 <summary>
2515 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)"> 2515 Status code that is sent to the client.
2516 <summary> 2516 </summary>
2517 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>. 2517 <remarks>Default is HttpStatusCode.Ok</remarks>
2518 </summary> 2518 </member>
2519 <param name="name">Name of the header, should not be URL encoded</param> 2519 <member name="P:HttpServer.IHttpResponse.Reason">
2520 <param name="value">Value of the header, should not be URL encoded</param> 2520 <summary>
2521 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception> 2521 Information about why a specific status code was used.
2522 </member> 2522 </summary>
2523 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)"> 2523 </member>
2524 <summary> 2524 <member name="P:HttpServer.IHttpResponse.ContentLength">
2525 Add bytes to the body 2525 <summary>
2526 </summary> 2526 Size of the body. MUST be specified before sending the header,
2527 <param name="bytes">buffer to read bytes from</param> 2527 unless property Chunked is set to true.
2528 <param name="offset">where to start read</param> 2528 </summary>
2529 <param name="length">number of bytes to read</param> 2529 </member>
2530 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns> 2530 <member name="P:HttpServer.IHttpResponse.ContentType">
2531 <exception cref="T:System.InvalidOperationException">If body is not writable</exception> 2531 <summary>
2532 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception> 2532 Kind of content in the body
2533 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception> 2533 </summary>
2534 </member> 2534 <remarks>Default is text/html</remarks>
2535 <member name="M:HttpServer.IHttpRequest.Clear"> 2535 </member>
2536 <summary> 2536 <member name="P:HttpServer.IHttpResponse.HeadersSent">
2537 Clear everything in the request 2537 <summary>
2538 </summary> 2538 Headers have been sent to the client-
2539 </member> 2539 </summary>
2540 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 2540 <remarks>You can not send any additional headers if they have already been sent.</remarks>
2541 <summary> 2541 </member>
2542 Decode body into a form. 2542 <member name="P:HttpServer.IHttpResponse.Sent">
2543 </summary> 2543 <summary>
2544 <param name="providers">A list with form decoders.</param> 2544 The whole response have been sent.
2545 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception> 2545 </summary>
2546 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception> 2546 </member>
2547 </member> 2547 <member name="P:HttpServer.IHttpResponse.Cookies">
2548 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)"> 2548 <summary>
2549 <summary> 2549 Cookies that should be created/changed.
2550 Sets the cookies. 2550 </summary>
2551 </summary> 2551 </member>
2552 <param name="cookies">The cookies.</param> 2552 <member name="T:HttpServer.ConnectionType">
2553 </member> 2553 <summary>
2554 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)"> 2554 Type of HTTP connection
2555 <summary> 2555 </summary>
2556 Create a response object. 2556 </member>
2557 </summary> 2557 <member name="F:HttpServer.ConnectionType.Close">
2558 <param name="context">Context for the connected client.</param> 2558 <summary>
2559 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns> 2559 Connection is closed after each request-response
2560 </member> 2560 </summary>
2561 <member name="P:HttpServer.IHttpRequest.AcceptTypes"> 2561 </member>
2562 <summary> 2562 <member name="F:HttpServer.ConnectionType.KeepAlive">
2563 Gets kind of types accepted by the client. 2563 <summary>
2564 </summary> 2564 Connection is kept alive for X seconds (unless another request have been made)
2565 </member> 2565 </summary>
2566 <member name="P:HttpServer.IHttpRequest.Body"> 2566 </member>
2567 <summary> 2567 <member name="T:HttpServer.HttpResponse">
2568 Gets or sets body stream. 2568 <summary>
2569 </summary> 2569 Response that is sent back to the web browser / client.
2570 </member> 2570 </summary>
2571 <member name="P:HttpServer.IHttpRequest.BodyIsComplete"> 2571 <remarks>
2572 <summary> 2572 <para>
2573 Gets whether the body is complete. 2573 A response can be sent if different ways. The easiest one is
2574 </summary> 2574 to just fill the Body stream with content, everything else
2575 </member> 2575 will then be taken care of by the framework. The default content-type
2576 <member name="P:HttpServer.IHttpRequest.Connection"> 2576 is text/html, you should change it if you send anything else.
2577 <summary> 2577 </para><para>
2578 Gets or sets kind of connection used for the session. 2578 The second and slightly more complex way is to send the response
2579 </summary> 2579 as parts. Start with sending the header using the SendHeaders method and
2580 </member> 2580 then you can send the body using SendBody method, but do not forget
2581 <member name="P:HttpServer.IHttpRequest.ContentLength"> 2581 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
2582 <summary> 2582 </para>
2583 Gets or sets number of bytes in the body. 2583 </remarks>
2584 </summary> 2584 <example>
2585 </member> 2585 <code>
2586 <member name="P:HttpServer.IHttpRequest.Cookies"> 2586 // Example using response body.
2587 <summary> 2587 class MyModule : HttpModule
2588 Gets cookies that was sent with the request. 2588 {
2589 </summary> 2589 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
2590 </member> 2590 {
2591 <member name="P:HttpServer.IHttpRequest.Form"> 2591 StreamWriter writer = new StreamWriter(response.Body);
2592 <summary> 2592 writer.WriteLine("Hello dear World!");
2593 Gets form parameters. 2593 writer.Flush();
2594 </summary> 2594
2595 </member> 2595 // return true to tell webserver that we've handled the url
2596 <member name="P:HttpServer.IHttpRequest.Headers"> 2596 return true;
2597 <summary> 2597 }
2598 Gets headers sent by the client. 2598 }
2599 </summary> 2599 </code>
2600 </member> 2600 </example>
2601 <member name="P:HttpServer.IHttpRequest.HttpVersion"> 2601 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
2602 <summary> 2602 </member>
2603 Gets or sets version of HTTP protocol that's used. 2603 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
2604 </summary> 2604 <summary>
2605 <remarks> 2605 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
2606 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>. 2606 </summary>
2607 </remarks> 2607 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
2608 <seealso cref="T:HttpServer.HttpHelper"/> 2608 <param name="request">Contains information of what the client want to receive.</param>
2609 </member> 2609 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
2610 <member name="P:HttpServer.IHttpRequest.IsAjax"> 2610 </member>
2611 <summary> 2611 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)">
2612 Gets whether the request was made by Ajax (Asynchronous JavaScript) 2612 <summary>
2613 </summary> 2613 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
2614 </member> 2614 </summary>
2615 <member name="P:HttpServer.IHttpRequest.Method"> 2615 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
2616 <summary> 2616 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
2617 Gets or sets requested method. 2617 <param name="connectionType">Type of HTTP connection used.</param>
2618 </summary> 2618 </member>
2619 <remarks> 2619 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)">
2620 Will always be in upper case. 2620 <summary>
2621 </remarks> 2621 Add another header to the document.
2622 <see cref="P:HttpServer.IHttpRequest.Method"/> 2622 </summary>
2623 </member> 2623 <param name="name">Name of the header, case sensitive, use lower cases.</param>
2624 <member name="P:HttpServer.IHttpRequest.Param"> 2624 <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>
2625 <summary> 2625 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2626 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>. 2626 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
2627 </summary> 2627 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
2628 </member> 2628 </member>
2629 <member name="P:HttpServer.IHttpRequest.QueryString"> 2629 <member name="M:HttpServer.HttpResponse.Send">
2630 <summary> 2630 <summary>
2631 Gets variables sent in the query string 2631 Send headers and body to the browser.
2632 </summary> 2632 </summary>
2633 </member> 2633 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
2634 <member name="P:HttpServer.IHttpRequest.Uri"> 2634 </member>
2635 <summary> 2635 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
2636 Gets or sets requested URI. 2636 <summary>
2637 </summary> 2637 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
2638 </member> 2638 </summary>
2639 <member name="P:HttpServer.IHttpRequest.UriParts"> 2639 <param name="buffer"></param>
2640 <summary> 2640 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2641 Gets URI absolute path divided into parts. 2641 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
2642 </summary> 2642 <param name="offset">offset of first byte to send</param>
2643 <example> 2643 <param name="count">number of bytes to send.</param>
2644 // URI is: http://gauffin.com/code/tiny/ 2644 <seealso cref="M:HttpServer.HttpResponse.Send"/>
2645 Console.WriteLine(request.UriParts[0]); // result: code 2645 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
2646 Console.WriteLine(request.UriParts[1]); // result: tiny 2646 <remarks>This method can be used if you want to send body contents without caching them first. This
2647 </example> 2647 is recommended for larger files to keep the memory usage low.</remarks>
2648 <remarks> 2648 </member>
2649 If you're using controllers than the first part is controller name, 2649 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])">
2650 the second part is method name and the third part is Id property. 2650 <summary>
2651 </remarks> 2651 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
2652 <seealso cref="P:HttpServer.IHttpRequest.Uri"/> 2652 </summary>
2653 </member> 2653 <param name="buffer"></param>
2654 <member name="P:HttpServer.IHttpRequest.UriPath"> 2654 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2655 <summary> 2655 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
2656 Gets or sets path and query. 2656 <seealso cref="M:HttpServer.HttpResponse.Send"/>
2657 </summary> 2657 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
2658 <see cref="P:HttpServer.IHttpRequest.Uri"/> 2658 <remarks>This method can be used if you want to send body contents without caching them first. This
2659 <remarks> 2659 is recommended for larger files to keep the memory usage low.</remarks>
2660 Are only used during request parsing. Cannot be set after "Host" header have been 2660 </member>
2661 added. 2661 <member name="M:HttpServer.HttpResponse.SendHeaders">
2662 </remarks> 2662 <summary>
2663 </member> 2663 Send headers to the client.
2664 <member name="T:HttpServer.IHttpClientContext"> 2664 </summary>
2665 <summary> 2665 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2666 Contains a connection to a browser/client. 2666 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
2667 </summary> 2667 <seealso cref="M:HttpServer.HttpResponse.Send"/>
2668 </member> 2668 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
2669 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 2669 </member>
2670 <summary> 2670 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)">
2671 Disconnect from client 2671 <summary>
2672 </summary> 2672 Redirect client to somewhere else using the 302 status code.
2673 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param> 2673 </summary>
2674 </member> 2674 <param name="uri">Destination of the redirect</param>
2675 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 2675 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2676 <summary> 2676 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
2677 Send a response. 2677 action.</remarks>
2678 </summary> 2678 </member>
2679 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 2679 <member name="M:HttpServer.HttpResponse.Redirect(System.String)">
2680 <param name="statusCode">HTTP status code</param> 2680 <summary>
2681 <param name="reason">reason for the status code.</param> 2681 redirect to somewhere
2682 <param name="body">HTML body contents, can be null or empty.</param> 2682 </summary>
2683 <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> 2683 <param name="url">where the redirect should go</param>
2684 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception> 2684 <remarks>
2685 </member> 2685 No body are allowed when doing redirects.
2686 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 2686 </remarks>
2687 <summary> 2687 </member>
2688 Send a response. 2688 <member name="P:HttpServer.HttpResponse.Body">
2689 </summary> 2689 <summary>
2690 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 2690 The body stream is used to cache the body contents
2691 <param name="statusCode">HTTP status code</param> 2691 before sending everything to the client. It's the simplest
2692 <param name="reason">reason for the status code.</param> 2692 way to serve documents.
2693 </member> 2693 </summary>
2694 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)"> 2694 </member>
2695 <summary> 2695 <member name="P:HttpServer.HttpResponse.Chunked">
2696 Send a response. 2696 <summary>
2697 </summary> 2697 The chunked encoding modifies the body of a message in order to
2698 <exception cref="T:System.ArgumentNullException"></exception> 2698 transfer it as a series of chunks, each with its own size indicator,
2699 </member> 2699 followed by an OPTIONAL trailer containing entity-header fields. This
2700 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])"> 2700 allows dynamically produced content to be transferred along with the
2701 <summary> 2701 information necessary for the recipient to verify that it has
2702 send a whole buffer 2702 received the full message.
2703 </summary> 2703 </summary>
2704 <param name="buffer">buffer to send</param> 2704 </member>
2705 <exception cref="T:System.ArgumentNullException"></exception> 2705 <member name="P:HttpServer.HttpResponse.ProtocolVersion">
2706 </member> 2706 <summary>
2707 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 2707 Defines the version of the HTTP Response for applications where it's required
2708 <summary> 2708 for this to be forced.
2709 Send data using the stream 2709 </summary>
2710 </summary> 2710 </member>
2711 <param name="buffer">Contains data to send</param> 2711 <member name="P:HttpServer.HttpResponse.Connection">
2712 <param name="offset">Start position in buffer</param> 2712 <summary>
2713 <param name="size">number of bytes to send</param> 2713 Kind of connection
2714 <exception cref="T:System.ArgumentNullException"></exception> 2714 </summary>
2715 <exception cref="T:System.ArgumentOutOfRangeException"></exception> 2715 </member>
2716 </member> 2716 <member name="P:HttpServer.HttpResponse.Encoding">
2717 <member name="M:HttpServer.IHttpClientContext.Close"> 2717 <summary>
2718 <summary> 2718 Encoding to use when sending stuff to the client.
2719 Closes the streams and disposes of the unmanaged resources 2719 </summary>
2720 </summary> 2720 <remarks>Default is UTF8</remarks>
2721 </member> 2721 </member>
2722 <member name="P:HttpServer.IHttpClientContext.Secured"> 2722 <member name="P:HttpServer.HttpResponse.KeepAlive">
2723 <summary> 2723 <summary>
2724 Using SSL or other encryption method. 2724 Number of seconds to keep connection alive
2725 </summary> 2725 </summary>
2726 </member> 2726 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks>
2727 <member name="P:HttpServer.IHttpClientContext.IsSecured"> 2727 </member>
2728 <summary> 2728 <member name="P:HttpServer.HttpResponse.Status">
2729 Using SSL or other encryption method. 2729 <summary>
2730 </summary> 2730 Status code that is sent to the client.
2731 </member> 2731 </summary>
2732 <member name="E:HttpServer.IHttpClientContext.Disconnected"> 2732 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks>
2733 <summary> 2733 </member>
2734 The context have been disconnected. 2734 <member name="P:HttpServer.HttpResponse.Reason">
2735 </summary> 2735 <summary>
2736 <remarks> 2736 Information about why a specific status code was used.
2737 Event can be used to clean up a context, or to reuse it. 2737 </summary>
2738 </remarks> 2738 </member>
2739 </member> 2739 <member name="P:HttpServer.HttpResponse.ContentLength">
2740 <member name="E:HttpServer.IHttpClientContext.RequestReceived"> 2740 <summary>
2741 <summary> 2741 Size of the body. MUST be specified before sending the header,
2742 A request have been received in the context. 2742 unless property Chunked is set to true.
2743 </summary> 2743 </summary>
2744 </member> 2744 </member>
2745 <member name="T:HttpServer.DisconnectedEventArgs"> 2745 <member name="P:HttpServer.HttpResponse.ContentType">
2746 <summary> 2746 <summary>
2747 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected. 2747 Kind of content in the body
2748 </summary> 2748 </summary>
2749 </member> 2749 <remarks>Default type is "text/html"</remarks>
2750 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)"> 2750 </member>
2751 <summary> 2751 <member name="P:HttpServer.HttpResponse.HeadersSent">
2752 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class. 2752 <summary>
2753 </summary> 2753 Headers have been sent to the client-
2754 <param name="error">Reason to disconnection.</param> 2754 </summary>
2755 </member> 2755 <remarks>You can not send any additional headers if they have already been sent.</remarks>
2756 <member name="P:HttpServer.DisconnectedEventArgs.Error"> 2756 </member>
2757 <summary> 2757 <member name="P:HttpServer.HttpResponse.Sent">
2758 Gets reason to why client disconnected. 2758 <summary>
2759 </summary> 2759 The whole response have been sent.
2760 </member> 2760 </summary>
2761 <member name="T:HttpServer.RequestEventArgs"> 2761 </member>
2762 <summary> 2762 <member name="P:HttpServer.HttpResponse.Cookies">
2763 2763 <summary>
2764 </summary> 2764 Cookies that should be created/changed.
2765 </member> 2765 </summary>
2766 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)"> 2766 </member>
2767 <summary> 2767 <member name="T:HttpServer.HttpInputItem">
2768 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class. 2768 <summary>
2769 </summary> 2769 represents a HTTP input item. Each item can have multiple sub items, a sub item
2770 <param name="request">The request.</param> 2770 is made in a HTML form by using square brackets
2771 </member> 2771 </summary>
2772 <member name="P:HttpServer.RequestEventArgs.Request"> 2772 <example>
2773 <summary> 2773 // <input type="text" name="user[FirstName]" value="jonas" /> becomes:
2774 Gets received request. 2774 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
2775 </summary> 2775 </example>
2776 </member> 2776 <remarks>
2777 <member name="T:HttpServer.HttpModules.WebSiteModule"> 2777 All names in a form SHOULD be in lowercase.
2778 <summary> 2778 </remarks>
2779 The website module let's you handle multiple websites in the same server. 2779 </member>
2780 It uses the "Host" header to check which site you want. 2780 <member name="F:HttpServer.HttpInputItem.Empty">
2781 </summary> 2781 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
2782 <remarks>It's recommended that you do not 2782 </member>
2783 add any other modules to HttpServer if you are using the website module. Instead, 2783 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)">
2784 add all wanted modules to each website.</remarks> 2784 <summary>
2785 </member> 2785 Initializes an input item setting its name/identifier and value
2786 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)"> 2786 </summary>
2787 <summary> 2787 <param name="name">Parameter name/id</param>
2788 2788 <param name="value">Parameter value</param>
2789 </summary> 2789 </member>
2790 <param name="host">domain name that should be handled.</param> 2790 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)">
2791 <param name="name"></param> 2791 <summary>Creates a deep copy of the item specified</summary>
2792 </member> 2792 <param name="item">The item to copy</param>
2793 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 2793 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
2794 <summary> 2794 </member>
2795 Method that process the url 2795 <member name="M:HttpServer.HttpInputItem.Add(System.String)">
2796 </summary> 2796 <summary>
2797 <param name="request">Information sent by the browser about the request</param> 2797 Add another value to this item
2798 <param name="response">Information that is being sent back to the client.</param> 2798 </summary>
2799 <param name="session">Session used to </param> 2799 <param name="value">Value to add.</param>
2800 </member> 2800 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
2801 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName"> 2801 </member>
2802 <summary> 2802 <member name="M:HttpServer.HttpInputItem.Contains(System.String)">
2803 Name of site. 2803 <summary>
2804 </summary> 2804 checks if a sub-item exists (and has a value).
2805 </member> 2805 </summary>
2806 <member name="T:HttpServer.HttpInputItem"> 2806 <param name="name">name in lower case</param>
2807 <summary> 2807 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
2808 represents a HTTP input item. Each item can have multiple sub items, a sub item 2808 </member>
2809 is made in a HTML form by using square brackets 2809 <member name="M:HttpServer.HttpInputItem.ToString">
2810 </summary> 2810 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
2811 <example> 2811 </member>
2812 // <input type="text" name="user[FirstName]" value="jonas" /> becomes: 2812 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)">
2813 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value); 2813 <summary>
2814 </example> 2814 Outputs the string in a formatted manner
2815 <remarks> 2815 </summary>
2816 All names in a form SHOULD be in lowercase. 2816 <param name="prefix">A prefix to append, used internally</param>
2817 </remarks> 2817 <param name="asQuerySting">produce a query string</param>
2818 </member> 2818 </member>
2819 <member name="F:HttpServer.HttpInputItem.Empty"> 2819 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)">
2820 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary> 2820 <summary>
2821 </member> 2821 Add a sub item.
2822 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)"> 2822 </summary>
2823 <summary> 2823 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param>
2824 Initializes an input item setting its name/identifier and value 2824 <param name="value">Value to add.</param>
2825 </summary> 2825 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
2826 <param name="name">Parameter name/id</param> 2826 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
2827 <param name="value">Parameter value</param> 2827 </member>
2828 </member> 2828 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
2829 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)"> 2829 <summary>
2830 <summary>Creates a deep copy of the item specified</summary> 2830 Returns an enumerator that iterates through the collection.
2831 <param name="item">The item to copy</param> 2831 </summary>
2832 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks> 2832
2833 </member> 2833 <returns>
2834 <member name="M:HttpServer.HttpInputItem.Add(System.String)"> 2834 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
2835 <summary> 2835 </returns>
2836 Add another value to this item 2836 <filterpriority>1</filterpriority>
2837 </summary> 2837 </member>
2838 <param name="value">Value to add.</param> 2838 <member name="M:HttpServer.HttpInputItem.GetEnumerator">
2839 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception> 2839 <summary>
2840 </member> 2840 Returns an enumerator that iterates through a collection.
2841 <member name="M:HttpServer.HttpInputItem.Contains(System.String)"> 2841 </summary>
2842 <summary> 2842
2843 checks if a sub-item exists (and has a value). 2843 <returns>
2844 </summary> 2844 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
2845 <param name="name">name in lower case</param> 2845 </returns>
2846 <returns>true if the sub-item exists and has a value; otherwise false.</returns> 2846 <filterpriority>2</filterpriority>
2847 </member> 2847 </member>
2848 <member name="M:HttpServer.HttpInputItem.ToString"> 2848 <member name="M:HttpServer.HttpInputItem.ToString(System.String)">
2849 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary> 2849 <summary>
2850 </member> 2850 Outputs the string in a formatted manner
2851 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)"> 2851 </summary>
2852 <summary> 2852 <param name="prefix">A prefix to append, used internally</param>
2853 Outputs the string in a formatted manner 2853 <returns></returns>
2854 </summary> 2854 </member>
2855 <param name="prefix">A prefix to append, used internally</param> 2855 <member name="P:HttpServer.HttpInputItem.Count">
2856 <param name="asQuerySting">produce a query string</param> 2856 <summary>
2857 </member> 2857 Number of values
2858 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)"> 2858 </summary>
2859 <summary> 2859 </member>
2860 Add a sub item. 2860 <member name="P:HttpServer.HttpInputItem.Item(System.String)">
2861 </summary> 2861 <summary>
2862 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param> 2862 Get a sub item
2863 <param name="value">Value to add.</param> 2863 </summary>
2864 <exception cref="T:System.ArgumentNullException">Argument is null.</exception> 2864 <param name="name">name in lower case.</param>
2865 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception> 2865 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
2866 </member> 2866 </member>
2867 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 2867 <member name="P:HttpServer.HttpInputItem.Name">
2868 <summary> 2868 <summary>
2869 Returns an enumerator that iterates through the collection. 2869 Name of item (in lower case).
2870 </summary> 2870 </summary>
2871 2871 </member>
2872 <returns> 2872 <member name="P:HttpServer.HttpInputItem.Value">
2873 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 2873 <summary>
2874 </returns> 2874 Returns the first value, or null if no value exist.
2875 <filterpriority>1</filterpriority> 2875 </summary>
2876 </member> 2876 </member>
2877 <member name="M:HttpServer.HttpInputItem.GetEnumerator"> 2877 <member name="P:HttpServer.HttpInputItem.LastValue">
2878 <summary> 2878 <summary>
2879 Returns an enumerator that iterates through a collection. 2879 Returns the last value, or null if no value exist.
2880 </summary> 2880 </summary>
2881 2881 </member>
2882 <returns> 2882 <member name="P:HttpServer.HttpInputItem.Values">
2883 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 2883 <summary>
2884 </returns> 2884 Returns the list with values.
2885 <filterpriority>2</filterpriority> 2885 </summary>
2886 </member> 2886 </member>
2887 <member name="M:HttpServer.HttpInputItem.ToString(System.String)"> 2887 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)">
2888 <summary> 2888 <summary>
2889 Outputs the string in a formatted manner 2889
2890 </summary> 2890 </summary>
2891 <param name="prefix">A prefix to append, used internally</param> 2891 <param name="name">name in lower case</param>
2892 <returns></returns> 2892 <returns></returns>
2893 </member> 2893 </member>
2894 <member name="P:HttpServer.HttpInputItem.Count"> 2894 <member name="T:HttpServer.Helpers.FormHelper">
2895 <summary> 2895 <summary>
2896 Number of values 2896 Helpers making it easier to work with forms.
2897 </summary> 2897 </summary>
2898 </member> 2898 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
2899 <member name="P:HttpServer.HttpInputItem.Item(System.String)"> 2899 </member>
2900 <summary> 2900 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation">
2901 Get a sub item 2901 <summary>
2902 </summary> 2902 Used to let the website use different JavaScript libraries.
2903 <param name="name">name in lower case.</param> 2903 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
2904 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns> 2904 </summary>
2905 </member> 2905 </member>
2906 <member name="P:HttpServer.HttpInputItem.Name"> 2906 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])">
2907 <summary> 2907 <summary>
2908 Name of item (in lower case). 2908 Create a &lt;form&gt; tag.
2909 </summary> 2909 </summary>
2910 </member> 2910 <param name="id">name of form</param>
2911 <member name="P:HttpServer.HttpInputItem.Value"> 2911 <param name="action">action to invoke on submit</param>
2912 <summary> 2912 <param name="isAjax">form should be posted as Ajax</param>
2913 Returns the first value, or null if no value exist. 2913 <returns>HTML code</returns>
2914 </summary> 2914 <example>
2915 </member> 2915 <code>
2916 <member name="P:HttpServer.HttpInputItem.LastValue"> 2916 // without options
2917 <summary> 2917 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
2918 Returns the last value, or null if no value exist. 2918
2919 </summary> 2919 // with options
2920 </member> 2920 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
2921 <member name="P:HttpServer.HttpInputItem.Values"> 2921 </code>
2922 <summary> 2922 </example>
2923 Returns the list with values. 2923 <param name="options">HTML attributes or JavaScript options.</param>
2924 </summary> 2924 <remarks>Method will ALWAYS be POST.</remarks>
2925 </member> 2925 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception>
2926 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)"> 2926 </member>
2927 <summary> 2927 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2928 2928 <summary>
2929 </summary> 2929 Creates a select list with the values in a collection.
2930 <param name="name">name in lower case</param> 2930 </summary>
2931 <returns></returns> 2931 <param name="name">Name of the SELECT-tag</param>
2932 </member> 2932 <param name="collection">collection used to generate options.</param>
2933 <member name="T:HttpServer.HttpFile"> 2933 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2934 <summary> 2934 <param name="selectedValue">value that should be marked as selected.</param>
2935 Container class for posted files 2935 <param name="firstEmpty">First row should contain an empty value.</param>
2936 </summary> 2936 <returns>string containing a SELECT-tag.</returns>
2937 </member> 2937 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
2938 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"> 2938 </member>
2939 <summary> 2939 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2940 Creates a container for a posted file 2940 <summary>
2941 </summary> 2941 Creates a select list with the values in a collection.
2942 <param name="name">The identifier of the post field</param> 2942 </summary>
2943 <param name="filename">The file path</param> 2943 <param name="name">Name of the SELECT-tag</param>
2944 <param name="contentType">The content type of the file</param> 2944 <param name="id">Id of the SELECT-tag</param>
2945 <param name="uploadFilename">The name of the file uploaded</param> 2945 <param name="collection">collection used to generate options.</param>
2946 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception> 2946 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2947 </member> 2947 <param name="selectedValue">value that should be marked as selected.</param>
2948 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)"> 2948 <param name="firstEmpty">First row should contain an empty value.</param>
2949 <summary> 2949 <returns>string containing a SELECT-tag.</returns>
2950 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/> 2950 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
2951 </summary> 2951 <example>
2952 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception> 2952 <code>
2953 </member> 2953 // Class that is going to be used in a SELECT-tag.
2954 <member name="M:HttpServer.HttpFile.Finalize"> 2954 public class User
2955 <summary>Destructor disposing the file</summary> 2955 {
2956 </member> 2956 private readonly string _realName;
2957 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)"> 2957 private readonly int _id;
2958 <summary> 2958 public User(int id, string realName)
2959 Deletes the temporary file 2959 {
2960 </summary> 2960 _id = id;
2961 <param name="disposing">True if manual dispose</param> 2961 _realName = realName;
2962 </member> 2962 }
2963 <member name="M:HttpServer.HttpFile.Dispose"> 2963 public string RealName
2964 <summary> 2964 {
2965 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization 2965 get { return _realName; }
2966 </summary> 2966 }
2967 </member> 2967
2968 <member name="P:HttpServer.HttpFile.Name"> 2968 public int Id
2969 <summary> 2969 {
2970 The name/id of the file 2970 get { return _id; }
2971 </summary> 2971 }
2972 </member> 2972 }
2973 <member name="P:HttpServer.HttpFile.Filename"> 2973
2974 <summary> 2974 // Using an inline delegate to generate the select list
2975 The full file path 2975 public void UserInlineDelegate()
2976 </summary> 2976 {
2977 </member> 2977 List&lt;User&gt; items = new List&lt;User&gt;();
2978 <member name="P:HttpServer.HttpFile.UploadFilename"> 2978 items.Add(new User(1, "adam"));
2979 <summary> 2979 items.Add(new User(2, "bertial"));
2980 The name of the uploaded file 2980 items.Add(new User(3, "david"));
2981 </summary> 2981 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
2982 </member> 2982 {
2983 <member name="P:HttpServer.HttpFile.ContentType"> 2983 User user = (User)o;
2984 <summary> 2984 id = user.Id;
2985 The type of file 2985 value = user.RealName;
2986 </summary> 2986 }, 2, true);
2987 </member> 2987 }
2988 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp"> 2988
2989 <summary> 2989 // Using an method as delegate to generate the select list.
2990 PrototypeJS implementation of the javascript functions. 2990 public void UseExternalDelegate()
2991 </summary> 2991 {
2992 </member> 2992 List&lt;User&gt; items = new List&lt;User&gt;();
2993 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])"> 2993 items.Add(new User(1, "adam"));
2994 <summary> 2994 items.Add(new User(2, "bertial"));
2995 Requests a url through ajax 2995 items.Add(new User(3, "david"));
2996 </summary> 2996 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
2997 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 2997 }
2998 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param> 2998
2999 <returns>a link tag</returns> 2999 // delegate returning id and title
3000 <remarks>onclick attribute is used by this method.</remarks> 3000 public static void UserOptions(object o, out object id, out object title)
3001 <example> 3001 {
3002 <code> 3002 User user = (User)o;
3003 // plain text 3003 id = user.Id;
3004 JSHelper.AjaxRequest("'/user/show/1'"); 3004 value = user.RealName;
3005 3005 }
3006 // ajax request using this.href 3006 </code>
3007 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;"; 3007 </example>
3008 </code> 3008 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
3009 </example> 3009 </member>
3010 </member> 3010 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])">
3011 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)"> 3011 <summary>
3012 <summary> 3012 Creates a select list with the values in a collection.
3013 Determins if a list of strings contains a specific value 3013 </summary>
3014 </summary> 3014 <param name="name">Name of the SELECT-tag</param>
3015 <param name="options">options to check in</param> 3015 <param name="id">Id of the SELECT-tag</param>
3016 <param name="value">value to find</param> 3016 <param name="collection">collection used to generate options.</param>
3017 <returns>true if value was found</returns> 3017 <param name="getIdTitle">delegate used to return id and title from objects.</param>
3018 <remarks>case insensitive</remarks> 3018 <param name="selectedValue">value that should be marked as selected.</param>
3019 </member> 3019 <param name="firstEmpty">First row should contain an empty value.</param>
3020 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])"> 3020 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param>
3021 <summary> 3021 <returns>string containing a SELECT-tag.</returns>
3022 Ajax requests that updates an element with 3022 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
3023 the fetched content 3023 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
3024 </summary> 3024 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception>
3025 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 3025 </member>
3026 <param name="targetId">element to update</param> 3026 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
3027 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param> 3027 <summary>
3028 <returns>A link tag.</returns> 3028 Generate a list of HTML options
3029 <example> 3029 </summary>
3030 <code> 3030 <param name="collection">collection used to generate options.</param>
3031 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true"); 3031 <param name="getIdTitle">delegate used to return id and title from objects.</param>
3032 </code> 3032 <param name="selectedValue">value that should be marked as selected.</param>
3033 </example> 3033 <param name="firstEmpty">First row should contain an empty value.</param>
3034 </member> 3034 <returns></returns>
3035 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"> 3035 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
3036 <summary> 3036 </member>
3037 A link that pop ups a Dialog (overlay div) 3037 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
3038 </summary> 3038 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception>
3039 <param name="url">URL to contents of dialog</param> 3039 </member>
3040 <param name="title">link title</param> 3040 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
3041 <param name="htmlAttributes">name, value, name, value</param> 3041 <summary>
3042 <returns> 3042 Creates a check box.
3043 A "a"-tag that popups a dialog when clicked 3043 </summary>
3044 </returns> 3044 <param name="name">element name</param>
3045 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para> 3045 <param name="value">element value</param>
3046 And the following JavaScript (load it in application.js): 3046 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
3047 <code> 3047 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
3048 Event.observe(window, 'load', 3048 the box is checked or not. </param>
3049 function() { 3049 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
3050 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); }); 3050 <returns>a generated radio button</returns>
3051 } 3051 </member>
3052 ); 3052 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
3053 </code> 3053 <summary>
3054 </remarks> 3054 Creates a check box.
3055 <example> 3055 </summary>
3056 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); 3056 <param name="name">element name</param>
3057 </example> 3057 <param name="id">element id</param>
3058 </member> 3058 <param name="value">element value</param>
3059 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])"> 3059 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
3060 <summary> 3060 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
3061 create a modal dialog (usually using DIVs) 3061 the box is checked or not. </param>
3062 </summary> 3062 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
3063 <param name="url">url to fetch</param> 3063 <returns>a generated radio button</returns>
3064 <param name="title">dialog title</param> 3064 <remarks>
3065 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param> 3065 value in your business object. (check box will be selected if it matches the element value)
3066 <returns></returns> 3066 </remarks>
3067 </member> 3067 </member>
3068 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog"> 3068 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
3069 <summary> 3069 <summary>
3070 Close a javascript dialog window/div. 3070 Creates a check box.
3071 </summary> 3071 </summary>
3072 <returns>javascript for closing a dialog.</returns> 3072 <param name="name">element name</param>
3073 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/> 3073 <param name="id">element id</param>
3074 </member> 3074 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
3075 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])"> 3075 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
3076 <summary> 3076 the box is checked or not. </param>
3077 javascript action that should be added to the "onsubmit" event in the form tag. 3077 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
3078 </summary> 3078 <returns>a generated radio button</returns>
3079 <param name="options">remember to encapsulate strings in ''</param> 3079 <remarks>will set value to "1".</remarks>
3080 <returns></returns> 3080 </member>
3081 <remarks>All javascript option names should end with colon.</remarks> 3081 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])">
3082 <example> 3082 <summary>
3083 <code> 3083 Creates a RadioButton.
3084 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); 3084 </summary>
3085 </code> 3085 <param name="name">element name</param>
3086 </example> 3086 <param name="value">element value</param>
3087 </member> 3087 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
3088 <member name="T:HttpServer.Exceptions.UnauthorizedException"> 3088 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
3089 <summary> 3089 the box is checked or not. </param>
3090 The request requires user authentication. The response MUST include a 3090 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
3091 WWW-Authenticate header field (section 14.47) containing a challenge 3091 <returns>a generated radio button</returns>
3092 applicable to the requested resource. 3092 </member>
3093 3093 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])">
3094 The client MAY repeat the request with a suitable Authorization header 3094 <summary>
3095 field (section 14.8). If the request already included Authorization 3095 Creates a RadioButton.
3096 credentials, then the 401 response indicates that authorization has been 3096 </summary>
3097 refused for those credentials. If the 401 response contains the same challenge 3097 <param name="name">element name</param>
3098 as the prior response, and the user agent has already attempted authentication 3098 <param name="id">element id</param>
3099 at least once, then the user SHOULD be presented the entity that was given in the response, 3099 <param name="value">element value</param>
3100 since that entity might include relevant diagnostic information. 3100 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
3101 3101 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
3102 HTTP access authentication is explained in rfc2617: 3102 the box is checked or not. </param>
3103 http://www.ietf.org/rfc/rfc2617.txt 3103 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
3104 3104 <returns>a generated radio button</returns>
3105 (description is taken from 3105 </member>
3106 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2) 3106 <member name="M:HttpServer.Helpers.FormHelper.End">
3107 </summary> 3107 <summary>
3108 </member> 3108 form close tag
3109 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor"> 3109 </summary>
3110 <summary> 3110 <returns></returns>
3111 Create a new unauhtorized exception. 3111 </member>
3112 </summary> 3112 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)">
3113 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/> 3113 <summary>
3114 </member> 3114 Add a component instance
3115 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)"> 3115 </summary>
3116 <summary> 3116 <typeparam name="T">Interface type</typeparam>
3117 Create a new unauhtorized exception. 3117 <param name="instance">Instance to add</param>
3118 </summary> 3118 </member>
3119 <param name="message">reason to why the request was unauthorized.</param> 3119 <member name="M:HttpServer.ComponentProvider.Get``1">
3120 <param name="inner">inner exception</param> 3120 <summary>
3121 </member> 3121 Get a component.
3122 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)"> 3122 </summary>
3123 <summary> 3123 <typeparam name="T">Interface type</typeparam>
3124 Create a new unauhtorized exception. 3124 <returns>Component if registered, otherwise null.</returns>
3125 </summary> 3125 <remarks>
3126 <param name="message">reason to why the request was unauthorized.</param> 3126 Component will get created if needed.
3127 </member> 3127 </remarks>
3128 <member name="T:HttpServer.Exceptions.ForbiddenException"> 3128 </member>
3129 <summary> 3129 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)">
3130 The server understood the request, but is refusing to fulfill it. 3130 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
3131 Authorization will not help and the request SHOULD NOT be repeated. 3131 </member>
3132 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, 3132 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
3133 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information 3133 <summary>
3134 available to the client, the status code 404 (Not Found) can be used instead. 3134 Checks if the specified component interface have been added.
3135 3135 </summary>
3136 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php 3136 <param name="interfaceType"></param>
3137 </summary> 3137 <returns>true if found; otherwise false.</returns>
3138 </member> 3138 </member>
3139 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)"> 3139 <member name="M:HttpServer.ComponentProvider.Add``2">
3140 <summary> 3140 <summary>
3141 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class. 3141 Add a component.
3142 </summary> 3142 </summary>
3143 <param name="errorMsg">error message</param> 3143 <typeparam name="InterfaceType">Type being requested.</typeparam>
3144 </member> 3144 <typeparam name="InstanceType">Type being created.</typeparam>
3145 <member name="T:HttpServer.Authentication.BasicAuthentication"> 3145 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception>
3146 <summary> 3146 </member>
3147 The "basic" authentication scheme is based on the model that the 3147 <member name="T:HttpServer.Parser.BodyEventArgs">
3148 client must authenticate itself with a user-ID and a password for 3148 <summary>
3149 each realm. The realm value should be considered an opaque string 3149 Arguments used when more body bytes have come.
3150 which can only be compared for equality with other realms on that 3150 </summary>
3151 server. The server will service the request only if it can validate 3151 </member>
3152 the user-ID and password for the protection space of the Request-URI. 3152 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)">
3153 There are no optional authentication parameters. 3153 <summary>
3154 </summary> 3154 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
3155 </member> 3155 </summary>
3156 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 3156 <param name="buffer">buffer that contains the received bytes.</param>
3157 <summary> 3157 <param name="offset">offset in buffer where to start processing.</param>
3158 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class. 3158 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param>
3159 </summary> 3159 </member>
3160 <param name="authenticator">Delegate used to provide information used during authentication.</param> 3160 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor">
3161 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param> 3161 <summary>
3162 </member> 3162 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
3163 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 3163 </summary>
3164 <summary> 3164 </member>
3165 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class. 3165 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer">
3166 </summary> 3166 <summary>
3167 <param name="authenticator">Delegate used to provide information used during authentication.</param> 3167 Gets or sets buffer that contains the received bytes.
3168 </member> 3168 </summary>
3169 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])"> 3169 </member>
3170 <summary> 3170 <member name="P:HttpServer.Parser.BodyEventArgs.Count">
3171 Create a response that can be sent in the WWW-Authenticate header. 3171 <summary>
3172 </summary> 3172 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed.
3173 <param name="realm">Realm that the user should authenticate in</param> 3173 </summary>
3174 <param name="options">Not used in basic auth</param> 3174 </member>
3175 <returns>A correct auth request.</returns> 3175 <member name="P:HttpServer.Parser.BodyEventArgs.Offset">
3176 </member> 3176 <summary>
3177 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])"> 3177 Gets or sets offset in buffer where to start processing.
3178 <summary> 3178 </summary>
3179 An authentication response have been received from the web browser. 3179 </member>
3180 Check if it's correct 3180 <member name="T:HttpServer.HttpContextFactory">
3181 </summary> 3181 <summary>
3182 <param name="authenticationHeader">Contents from the Authorization header</param> 3182 Used to create and reuse contexts.
3183 <param name="realm">Realm that should be authenticated</param> 3183 </summary>
3184 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 3184 </member>
3185 <param name="options">Not used in basic auth</param> 3185 <member name="T:HttpServer.IHttpContextFactory">
3186 <returns>Authentication object that is stored for the request. A user class or something like that.</returns> 3186 <summary>
3187 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception> 3187 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es.
3188 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception> 3188 </summary>
3189 </member> 3189 </member>
3190 <member name="P:HttpServer.Authentication.BasicAuthentication.Name"> 3190 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
3191 <summary> 3191 <summary>
3192 name used in http request. 3192 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
3193 </summary> 3193 </summary>
3194 </member> 3194 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
3195 <member name="T:HttpServer.Sessions.IHttpSessionStore"> 3195 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
3196 <summary> 3196 </member>
3197 A session store is used to store and load sessions on a media. 3197 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
3198 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory. 3198 <summary>
3199 </summary> 3199 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
3200 </member> 3200 </summary>
3201 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create"> 3201 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
3202 <summary> 3202 <param name="certificate">HTTPS certificate to use.</param>
3203 Creates a new http session with a generated id. 3203 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
3204 </summary> 3204 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
3205 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns> 3205 </member>
3206 </member> 3206 <member name="E:HttpServer.IHttpContextFactory.RequestReceived">
3207 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)"> 3207 <summary>
3208 <summary> 3208 A request have been received from one of the contexts.
3209 Creates a new http session with a specific id 3209 </summary>
3210 </summary> 3210 </member>
3211 <param name="id">Id used to identify the new cookie..</param> 3211 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)">
3212 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns> 3212 <summary>
3213 <remarks> 3213 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class.
3214 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>. 3214 </summary>
3215 </remarks> 3215 <param name="writer">The writer.</param>
3216 </member> 3216 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param>
3217 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)"> 3217 <param name="factory">Used to create a request parser.</param>
3218 <summary> 3218 </member>
3219 Load an existing session. 3219 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
3220 </summary> 3220 <summary>
3221 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param> 3221 Create a new context.
3222 <returns>A session if found; otherwise null.</returns> 3222 </summary>
3223 </member> 3223 <param name="isSecured">true if socket is running HTTPS.</param>
3224 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)"> 3224 <param name="endPoint">Client that connected</param>
3225 <summary> 3225 <param name="stream">Network/SSL stream.</param>
3226 Save an updated session to the store. 3226 <returns>A context.</returns>
3227 </summary> 3227 </member>
3228 <param name="session">Session id (usually retrieved from a client side cookie).</param> 3228 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
3229 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception> 3229 <summary>
3230 </member> 3230 Create a new context.
3231 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 3231 </summary>
3232 <summary> 3232 <param name="isSecured">true if HTTPS is used.</param>
3233 We use the flyweight pattern which reuses small objects 3233 <param name="endPoint">Remote client</param>
3234 instead of creating new each time. 3234 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param>
3235 </summary> 3235 <returns>A new context (always).</returns>
3236 <param name="session">Unused session that should be reused next time Create is called.</param> 3236 </member>
3237 </member> 3237 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
3238 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup"> 3238 <summary>
3239 <summary> 3239 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
3240 Remove expired sessions 3240 </summary>
3241 </summary> 3241 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
3242 </member> 3242 <param name="certificate">HTTPS certificate to use.</param>
3243 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)"> 3243 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
3244 <summary> 3244 <returns>
3245 Remove a session 3245 A created <see cref="T:HttpServer.IHttpClientContext"/>.
3246 </summary> 3246 </returns>
3247 <param name="sessionId">id of the session.</param> 3247 </member>
3248 </member> 3248 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
3249 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)"> 3249 <summary>
3250 <summary> 3250 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
3251 Load a session from the store 3251 </summary>
3252 </summary> 3252 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
3253 <param name="sessionId"></param> 3253 <returns>
3254 <returns>null if session is not found.</returns> 3254 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
3255 </member> 3255 </returns>
3256 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime"> 3256 </member>
3257 <summary> 3257 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs">
3258 Number of minutes before a session expires. 3258 <summary>
3259 </summary> 3259 True if detailed trace logs should be written.
3260 <value>Default time is 20 minutes.</value> 3260 </summary>
3261 </member> 3261 </member>
3262 <member name="T:HttpServer.RequestCookies"> 3262 <member name="E:HttpServer.HttpContextFactory.RequestReceived">
3263 <summary> 3263 <summary>
3264 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie). 3264 A request have been received from one of the contexts.
3265 The framework might switch class in the future and we dont want to have to replace all instances 3265 </summary>
3266 </summary> 3266 </member>
3267 </member> 3267 <member name="T:HttpServer.ReusableSocketNetworkStream">
3268 <member name="M:HttpServer.RequestCookies.#ctor(System.String)"> 3268 <summary>
3269 <summary> 3269 Custom network stream to mark sockets as reusable when disposing the stream.
3270 Let's copy all the cookies. 3270 </summary>
3271 </summary> 3271 </member>
3272 <param name="cookies">value from cookie header.</param> 3272 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)">
3273 </member> 3273 <summary>
3274 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)"> 3274 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />.
3275 <summary> 3275 </summary>
3276 Adds a cookie in the collection. 3276 <param name="socket">
3277 </summary> 3277 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
3278 <param name="cookie">cookie to add</param> 3278 </param>
3279 <exception cref="T:System.ArgumentNullException">cookie is null</exception> 3279 <exception cref="T:System.ArgumentNullException">
3280 </member> 3280 The <paramref name="socket" /> parameter is null.
3281 <member name="M:HttpServer.RequestCookies.GetEnumerator"> 3281 </exception>
3282 <summary> 3282 <exception cref="T:System.IO.IOException">
3283 Gets a collection enumerator on the cookie list. 3283 The <paramref name="socket" /> parameter is not connected.
3284 </summary> 3284 -or-
3285 <returns>collection enumerator</returns> 3285 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" />.
3286 </member> 3286 -or-
3287 <member name="M:HttpServer.RequestCookies.Clear"> 3287 The <paramref name="socket" /> parameter is in a nonblocking state.
3288 <summary> 3288 </exception>
3289 Remove all cookies. 3289 </member>
3290 </summary> 3290 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)">
3291 </member> 3291 <summary>
3292 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator"> 3292 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.
3293 <summary> 3293 </summary>
3294 Returns an enumerator that iterates through the collection. 3294 <param name="socket">
3295 </summary> 3295 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
3296 3296 </param>
3297 <returns> 3297 <param name="ownsSocket">
3298 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 3298 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.
3299 </returns> 3299 </param>
3300 <filterpriority>1</filterpriority> 3300 <exception cref="T:System.ArgumentNullException">
3301 </member> 3301 The <paramref name="socket" /> parameter is null.
3302 <member name="M:HttpServer.RequestCookies.Remove(System.String)"> 3302 </exception>
3303 <summary> 3303 <exception cref="T:System.IO.IOException">
3304 Remove a cookie from the collection. 3304 The <paramref name="socket" /> parameter is not connected.
3305 </summary> 3305 -or-
3306 <param name="cookieName">Name of cookie.</param> 3306 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" />.
3307 </member> 3307 -or-
3308 <member name="P:HttpServer.RequestCookies.Count"> 3308 the <paramref name="socket" /> parameter is in a nonblocking state.
3309 <summary> 3309 </exception>
3310 Gets the count of cookies in the collection. 3310 </member>
3311 </summary> 3311 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)">
3312 </member> 3312 <summary>
3313 <member name="P:HttpServer.RequestCookies.Item(System.String)"> 3313 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.
3314 <summary> 3314 </summary>
3315 Gets the cookie of a given identifier (null if not existing). 3315 <param name="socket">
3316 </summary> 3316 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
3317 </member> 3317 </param>
3318 <member name="T:HttpServer.IComponentProvider"> 3318 <param name="access">
3319 <summary> 3319 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" />.
3320 Inversion of control interface. 3320 </param>
3321 </summary> 3321 <exception cref="T:System.ArgumentNullException">
3322 </member> 3322 The <paramref name="socket" /> parameter is null.
3323 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)"> 3323 </exception>
3324 <summary> 3324 <exception cref="T:System.IO.IOException">
3325 Add a component instance 3325 The <paramref name="socket" /> parameter is not connected.
3326 </summary> 3326 -or-
3327 <typeparam name="T">Interface type</typeparam> 3327 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" />.
3328 <param name="instance">Instance to add</param> 3328 -or-
3329 </member> 3329 the <paramref name="socket" /> parameter is in a nonblocking state.
3330 <member name="M:HttpServer.IComponentProvider.Get``1"> 3330 </exception>
3331 <summary> 3331 </member>
3332 Get a component. 3332 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)">
3333 </summary> 3333 <summary>
3334 <typeparam name="T">Interface type</typeparam> 3334 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.
3335 <returns>Component if registered, otherwise null.</returns> 3335 </summary>
3336 <remarks> 3336 <param name="socket">
3337 Component will get created if needed. 3337 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
3338 </remarks> 3338 </param>
3339 </member> 3339 <param name="access">
3340 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)"> 3340 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" />.
3341 <summary> 3341 </param>
3342 Checks if the specified component interface have been added. 3342 <param name="ownsSocket">
3343 </summary> 3343 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.
3344 <param name="interfaceType"></param> 3344 </param>
3345 <returns>true if found; otherwise false.</returns> 3345 <exception cref="T:System.ArgumentNullException">
3346 </member> 3346 The <paramref name="socket" /> parameter is null.
3347 <member name="M:HttpServer.IComponentProvider.Add``2"> 3347 </exception>
3348 <summary> 3348 <exception cref="T:System.IO.IOException">
3349 Add a component. 3349 The <paramref name="socket" /> parameter is not connected.
3350 </summary> 3350 -or-
3351 <typeparam name="InterfaceType">Type being requested.</typeparam> 3351 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" />.
3352 <typeparam name="InstanceType">Type being created.</typeparam> 3352 -or-
3353 </member> 3353 The <paramref name="socket" /> parameter is in a nonblocking state.
3354 <member name="T:HttpServer.HttpRequest"> 3354 </exception>
3355 <summary> 3355 </member>
3356 Contains server side HTTP request information. 3356 <member name="M:HttpServer.ReusableSocketNetworkStream.Close">
3357 </summary> 3357 <summary>
3358 </member> 3358 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
3359 <member name="F:HttpServer.HttpRequest.UriSplitters"> 3359 </summary>
3360 <summary> 3360 </member>
3361 Chars used to split an URL path into multiple parts. 3361 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)">
3362 </summary> 3362 <summary>
3363 </member> 3363 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources.
3364 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)"> 3364 </summary>
3365 <summary> 3365 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
3366 Assign a form. 3366 </member>
3367 </summary> 3367 <member name="T:HttpServer.HttpModules.ResourceFileModule">
3368 <param name="form"></param> 3368 <summary>
3369 </member> 3369 Serves files that are stored in embedded resources.
3370 <member name="M:HttpServer.HttpRequest.Clone"> 3370 </summary>
3371 <summary> 3371 </member>
3372 Creates a new object that is a copy of the current instance. 3372 <member name="T:HttpServer.HttpModules.HttpModule">
3373 </summary> 3373 <summary>
3374 3374 A HttpModule can be used to serve Uri's. The module itself
3375 <returns> 3375 decides if it should serve a Uri or not. In this way, you can
3376 A new object that is a copy of this instance. 3376 get a very flexible http application since you can let multiple modules
3377 </returns> 3377 serve almost similar urls.
3378 <filterpriority>2</filterpriority> 3378 </summary>
3379 </member> 3379 <remarks>
3380 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 3380 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.
3381 <summary> 3381 </remarks>
3382 Decode body into a form. 3382 </member>
3383 </summary> 3383 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3384 <param name="providers">A list with form decoders.</param> 3384 <summary>
3385 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception> 3385 Method that process the url
3386 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception> 3386 </summary>
3387 </member> 3387 <param name="request">Information sent by the browser about the request</param>
3388 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)"> 3388 <param name="response">Information that is being sent back to the client.</param>
3389 <summary> 3389 <param name="session">Session used to </param>
3390 Cookies 3390 <returns>true if this module handled the request.</returns>
3391 </summary> 3391 </member>
3392 <param name="cookies">the cookies</param> 3392 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
3393 </member> 3393 <summary>
3394 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)"> 3394 Set the log writer to use.
3395 <summary> 3395 </summary>
3396 Create a response object. 3396 <param name="writer">logwriter to use.</param>
3397 </summary> 3397 </member>
3398 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns> 3398 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
3399 </member> 3399 <summary>
3400 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)"> 3400 Log something.
3401 <summary> 3401 </summary>
3402 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>. 3402 <param name="prio">importance of log message</param>
3403 </summary> 3403 <param name="message">message</param>
3404 <param name="name">Name of the header, should not be URL encoded</param> 3404 </member>
3405 <param name="value">Value of the header, should not be URL encoded</param> 3405 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
3406 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception> 3406 <summary>
3407 </member> 3407 If true specifies that the module doesn't consume the processing of a request so that subsequent modules
3408 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)"> 3408 can continue processing afterwards. Default is false.
3409 <summary> 3409 </summary>
3410 Add bytes to the body 3410 </member>
3411 </summary> 3411 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor">
3412 <param name="bytes">buffer to read bytes from</param> 3412 <summary>
3413 <param name="offset">where to start read</param> 3413 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
3414 <param name="length">number of bytes to read</param> 3414 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
3415 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns> 3415 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
3416 <exception cref="T:System.InvalidOperationException">If body is not writable</exception> 3416 </summary>
3417 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception> 3417 </member>
3418 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception> 3418 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)">
3419 </member> 3419 <summary>
3420 <member name="M:HttpServer.HttpRequest.Clear"> 3420 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
3421 <summary> 3421 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
3422 Clear everything in the request 3422 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
3423 </summary> 3423 </summary>
3424 </member> 3424 <param name="logWriter">The log writer to use when logging events</param>
3425 <member name="P:HttpServer.HttpRequest.Secure"> 3425 </member>
3426 <summary> 3426 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes">
3427 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure. 3427 <summary>
3428 </summary> 3428 Mimtypes that this class can handle per default
3429 </member> 3429 </summary>
3430 <member name="P:HttpServer.HttpRequest.UriPath"> 3430 </member>
3431 <summary> 3431 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)">
3432 Path and query (will be merged with the host header) and put in Uri 3432 <summary>
3433 </summary> 3433 Loads resources from a namespace in the given assembly to an uri
3434 <see cref="P:HttpServer.HttpRequest.Uri"/> 3434 </summary>
3435 </member> 3435 <param name="toUri">The uri to map the resources to</param>
3436 <member name="P:HttpServer.HttpRequest.BodyIsComplete"> 3436 <param name="fromAssembly">The assembly in which the resources reside</param>
3437 <summary> 3437 <param name="fromNamespace">The namespace from which to load the resources</param>
3438 Gets whether the body is complete. 3438 <usage>
3439 </summary> 3439 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
3440 </member> 3440
3441 <member name="P:HttpServer.HttpRequest.AcceptTypes"> 3441 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
3442 <summary> 3442 </usage>
3443 Gets kind of types accepted by the client. 3443 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3444 </summary> 3444 </member>
3445 </member> 3445 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
3446 <member name="P:HttpServer.HttpRequest.Body"> 3446 <summary>
3447 <summary> 3447 Returns true if the module can handle the request
3448 Gets or sets body stream. 3448 </summary>
3449 </summary> 3449 </member>
3450 </member> 3450 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3451 <member name="P:HttpServer.HttpRequest.Connection"> 3451 <summary>
3452 <summary> 3452 Method that process the url
3453 Gets or sets kind of connection used for the session. 3453 </summary>
3454 </summary> 3454 <param name="request">Information sent by the browser about the request</param>
3455 </member> 3455 <param name="response">Information that is being sent back to the client.</param>
3456 <member name="P:HttpServer.HttpRequest.ContentLength"> 3456 <param name="session">Session used to </param>
3457 <summary> 3457 <returns>true if this module handled the request.</returns>
3458 Gets or sets number of bytes in the body. 3458 </member>
3459 </summary> 3459 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
3460 </member> 3460 <summary>
3461 <member name="P:HttpServer.HttpRequest.Headers"> 3461 List with all mime-type that are allowed.
3462 <summary> 3462 </summary>
3463 Gets headers sent by the client. 3463 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
3464 </summary> 3464 </member>
3465 </member> 3465 <member name="T:HttpServer.HttpModules.FileModule">
3466 <member name="P:HttpServer.HttpRequest.HttpVersion"> 3466 <summary>
3467 <summary> 3467 The purpose of this module is to serve files.
3468 Gets or sets version of HTTP protocol that's used. 3468 </summary>
3469 </summary> 3469 </member>
3470 <remarks> 3470 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)">
3471 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>. 3471 <summary>
3472 </remarks> 3472 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
3473 <seealso cref="T:HttpServer.HttpHelper"/> 3473 </summary>
3474 </member> 3474 <param name="baseUri">Uri to serve, for instance "/files/"</param>
3475 <member name="P:HttpServer.HttpRequest.Method"> 3475 <param name="basePath">Path on hard drive where we should start looking for files</param>
3476 <summary> 3476 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
3477 Gets or sets requested method. 3477 </member>
3478 </summary> 3478 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)">
3479 <value></value> 3479 <summary>
3480 <remarks> 3480 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
3481 Will always be in upper case. 3481 </summary>
3482 </remarks> 3482 <param name="baseUri">Uri to serve, for instance "/files/"</param>
3483 <see cref="!:HttpServer.Method"/> 3483 <param name="basePath">Path on hard drive where we should start looking for files</param>
3484 </member> 3484 </member>
3485 <member name="P:HttpServer.HttpRequest.QueryString"> 3485 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes">
3486 <summary> 3486 <summary>
3487 Gets variables sent in the query string 3487 Mimtypes that this class can handle per default
3488 </summary> 3488 </summary>
3489 </member> 3489 </member>
3490 <member name="P:HttpServer.HttpRequest.Uri"> 3490 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)">
3491 <summary> 3491 <summary>
3492 Gets or sets requested URI. 3492 Determines if the request should be handled by this module.
3493 </summary> 3493 Invoked by the <see cref="T:HttpServer.HttpServer"/>
3494 </member> 3494 </summary>
3495 <member name="P:HttpServer.HttpRequest.UriParts"> 3495 <param name="uri"></param>
3496 <summary> 3496 <returns>true if this module should handle it.</returns>
3497 Uri absolute path splitted into parts. 3497 </member>
3498 </summary> 3498 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)">
3499 <example> 3499 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception>
3500 // uri is: http://gauffin.com/code/tiny/ 3500 </member>
3501 Console.WriteLine(request.UriParts[0]); // result: code 3501 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})">
3502 Console.WriteLine(request.UriParts[1]); // result: tiny 3502 <summary>
3503 </example> 3503 check if source contains any of the chars.
3504 <remarks> 3504 </summary>
3505 If you're using controllers than the first part is controller name, 3505 <param name="source"></param>
3506 the second part is method name and the third part is Id property. 3506 <param name="chars"></param>
3507 </remarks> 3507 <returns></returns>
3508 <seealso cref="P:HttpServer.HttpRequest.Uri"/> 3508 </member>
3509 </member> 3509 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3510 <member name="P:HttpServer.HttpRequest.Param"> 3510 <summary>
3511 <summary> 3511 Method that process the Uri.
3512 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>. 3512 </summary>
3513 </summary> 3513 <param name="request">Information sent by the browser about the request</param>
3514 </member> 3514 <param name="response">Information that is being sent back to the client.</param>
3515 <member name="P:HttpServer.HttpRequest.Form"> 3515 <param name="session">Session used to </param>
3516 <summary> 3516 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
3517 Gets form parameters. 3517 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
3518 </summary> 3518 </member>
3519 </member> 3519 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)">
3520 <member name="P:HttpServer.HttpRequest.IsAjax"> 3520 <summary>
3521 <summary> 3521 return a file extension from an absolute Uri path (or plain filename)
3522 Gets whether the request was made by Ajax (Asynchronous JavaScript) 3522 </summary>
3523 </summary> 3523 <param name="uri"></param>
3524 </member> 3524 <returns></returns>
3525 <member name="P:HttpServer.HttpRequest.Cookies"> 3525 </member>
3526 <summary> 3526 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes">
3527 Gets cookies that was sent with the request. 3527 <summary>
3528 </summary> 3528 List with all mime-type that are allowed.
3529 </member> 3529 </summary>
3530 <member name="T:HttpServer.Helpers.ObjectForm"> 3530 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
3531 <summary> 3531 </member>
3532 The object form class takes an object and creates form items for it. 3532 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars">
3533 </summary> 3533 <summary>
3534 </member> 3534 characters that may not exist in a path.
3535 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)"> 3535 </summary>
3536 <summary> 3536 <example>
3537 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 3537 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
3538 </summary> 3538 </example>
3539 <param name="method"></param> 3539 </member>
3540 <param name="name">form name *and* id.</param> 3540 <member name="T:HttpServer.Exceptions.InternalServerException">
3541 <param name="action">action to do when form is posted.</param> 3541 <summary>
3542 <param name="obj"></param> 3542 The server encountered an unexpected condition which prevented it from fulfilling the request.
3543 </member> 3543 </summary>
3544 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)"> 3544 </member>
3545 <summary> 3545 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor">
3546 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 3546 <summary>
3547 </summary> 3547 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
3548 <param name="name">form name *and* id.</param> 3548 </summary>
3549 <param name="action">action to do when form is posted.</param> 3549 </member>
3550 <param name="obj">object to get values from</param> 3550 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)">
3551 </member> 3551 <summary>
3552 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)"> 3552 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
3553 <summary> 3553 </summary>
3554 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 3554 <param name="message">error message.</param>
3555 </summary> 3555 </member>
3556 <param name="action">form action.</param> 3556 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)">
3557 <param name="obj">object to get values from.</param> 3557 <summary>
3558 </member> 3558 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
3559 <member name="M:HttpServer.Helpers.ObjectForm.Begin"> 3559 </summary>
3560 <summary> 3560 <param name="message">error message.</param>
3561 write out the FORM-tag. 3561 <param name="inner">inner exception.</param>
3562 </summary> 3562 </member>
3563 <returns>generated html code</returns> 3563 <member name="T:HttpServer.Rules.RegexRedirectRule">
3564 </member> 3564 <summary>
3565 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)"> 3565 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
3566 <summary> 3566 a regular expression can be used to identify redirect URLs and their targets.
3567 Writeout the form tag 3567 </summary>
3568 </summary> 3568 <example>
3569 <param name="isAjax">form should be posted through ajax.</param> 3569 <![CDATA[
3570 <returns>generated html code</returns> 3570 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
3571 </member> 3571 ]]>
3572 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])"> 3572 </example>
3573 <summary> 3573 </member>
3574 Generates a text box. 3574 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)">
3575 </summary> 3575 <summary>
3576 <param name="propertyName"></param> 3576 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
3577 <param name="options"></param> 3577 </summary>
3578 <returns>generated html code</returns> 3578 <param name="fromUrlExpression">Expression to match URL</param>
3579 </member> 3579 <param name="toUrlExpression">Expression to generate URL</param>
3580 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])"> 3580 <example>
3581 <summary> 3581 <![CDATA[
3582 password box 3582 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
3583 </summary> 3583 Result of ie. /employee1 will then be /user/employee1
3584 <param name="propertyName"></param> 3584 ]]>
3585 <param name="options"></param> 3585 </example>
3586 <returns>generated html code</returns> 3586 </member>
3587 </member> 3587 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
3588 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])"> 3588 <summary>
3589 <summary> 3589 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
3590 Hiddens the specified property name. 3590 </summary>
3591 </summary> 3591 <param name="fromUrlExpression">Expression to match URL</param>
3592 <param name="propertyName">Name of the property.</param> 3592 <param name="toUrlExpression">Expression to generate URL</param>
3593 <param name="options">The options.</param> 3593 <param name="options">Regular expression options to use, can be null</param>
3594 <returns>generated html code</returns> 3594 <example>
3595 </member> 3595 <![CDATA[
3596 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)"> 3596 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
3597 <summary> 3597 Result of ie. /employee1 will then be /user/employee1
3598 Labels the specified property name. 3598 ]]>
3599 </summary> 3599 </example>
3600 <param name="propertyName">property in object.</param> 3600 </member>
3601 <param name="label">caption</param> 3601 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)">
3602 <returns>generated html code</returns> 3602 <summary>
3603 </member> 3603 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
3604 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])"> 3604 </summary>
3605 <summary> 3605 <param name="fromUrlExpression">Expression to match URL</param>
3606 Generate a checkbox 3606 <param name="toUrlExpression">Expression to generate URL</param>
3607 </summary> 3607 <param name="options">Regular expression options to apply</param>
3608 <param name="propertyName">property in object</param> 3608 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
3609 <param name="value">checkbox value</param> 3609 <example>
3610 <param name="options">additional html attributes.</param> 3610 <![CDATA[
3611 <returns>generated html code</returns> 3611 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
3612 </member> 3612 Result of ie. /employee1 will then be /user/employee1
3613 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])"> 3613 ]]>
3614 <summary> 3614 </example>
3615 Write a html select tag 3615 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
3616 </summary> 3616 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/>
3617 <param name="propertyName">object property.</param> 3617 </member>
3618 <param name="idColumn">id column</param> 3618 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
3619 <param name="titleColumn">The title column.</param> 3619 <summary>
3620 <param name="options">The options.</param> 3620 Process the incoming request.
3621 <returns></returns> 3621 </summary>
3622 </member> 3622 <param name="request">incoming HTTP request</param>
3623 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])"> 3623 <param name="response">outgoing HTTP response</param>
3624 <summary> 3624 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
3625 Selects the specified property name. 3625 <remarks>
3626 </summary> 3626 returning true means that no modules will get the request. Returning true is typically being done
3627 <param name="propertyName">Name of the property.</param> 3627 for redirects.
3628 <param name="items">The items.</param> 3628 </remarks>
3629 <param name="idColumn">The id column.</param> 3629 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
3630 <param name="titleColumn">The title column.</param> 3630 </member>
3631 <param name="options">The options.</param> 3631 <member name="T:HttpServer.Parser.RequestLineEventArgs">
3632 <returns></returns> 3632 <summary>
3633 </member> 3633 Used when the request line have been successfully parsed.
3634 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)"> 3634 </summary>
3635 <summary> 3635 </member>
3636 Write a submit tag. 3636 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)">
3637 </summary> 3637 <summary>
3638 <param name="value">button caption</param> 3638 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3639 <returns>html submit tag</returns> 3639 </summary>
3640 </member> 3640 <param name="httpMethod">The HTTP method.</param>
3641 <member name="M:HttpServer.Helpers.ObjectForm.End"> 3641 <param name="uriPath">The URI path.</param>
3642 <summary> 3642 <param name="httpVersion">The HTTP version.</param>
3643 html end form tag 3643 </member>
3644 </summary> 3644 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor">
3645 <returns>html</returns> 3645 <summary>
3646 </member> 3646 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3647 <member name="T:HttpServer.FormDecoders.UrlDecoder"> 3647 </summary>
3648 <summary> 3648 </member>
3649 Can handle application/x-www-form-urlencoded 3649 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod">
3650 </summary> 3650 <summary>
3651 </member> 3651 Gets or sets http method.
3652 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 3652 </summary>
3653 <summary> 3653 <remarks>
3654 </summary> 3654 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
3655 <param name="stream">Stream containing the content</param> 3655 </remarks>
3656 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 3656 </member>
3657 <param name="encoding">Stream encoding</param> 3657 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion">
3658 <returns> 3658 <summary>
3659 A HTTP form, or null if content could not be parsed. 3659 Gets or sets the version of the HTTP protocol that the client want to use.
3660 </returns> 3660 </summary>
3661 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception> 3661 </member>
3662 </member> 3662 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath">
3663 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)"> 3663 <summary>
3664 <summary> 3664 Gets or sets requested URI path.
3665 Checks if the decoder can handle the mime type 3665 </summary>
3666 </summary> 3666 </member>
3667 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 3667 <member name="T:HttpServer.RealmHandler">
3668 <returns>True if the decoder can parse the specified content type</returns> 3668 <summary>
3669 </member> 3669 Delegate used to find a realm/domain.
3670 <member name="T:HttpServer.FormDecoders.MultipartDecoder"> 3670 </summary>
3671 <summary> 3671 <param name="domain"></param>
3672 3672 <returns></returns>
3673 </summary> 3673 <remarks>
3674 <remarks> 3674 Realms are used during HTTP Authentication
3675 http://www.faqs.org/rfcs/rfc1867.html 3675 </remarks>
3676 </remarks> 3676 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
3677 </member> 3677 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
3678 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType"> 3678 </member>
3679 <summary> 3679 <member name="T:HttpServer.HttpServer">
3680 multipart/form-data 3680 <summary>
3681 </summary> 3681 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
3682 </member> 3682 </summary>
3683 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData"> 3683 <example>
3684 <summary> 3684 <code>
3685 form-data 3685 // this small example will add two web site modules, thus handling
3686 </summary> 3686 // two different sites. In reality you should add Controller modules or something
3687 </member> 3687 // two the website modules to be able to handle different requests.
3688 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 3688 HttpServer server = new HttpServer();
3689 <summary> 3689 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
3690 3690 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
3691 </summary> 3691
3692 <param name="stream">Stream containing the content</param> 3692 // start regular http
3693 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 3693 server.Start(IPAddress.Any, 80);
3694 <param name="encoding">Stream enconding</param> 3694
3695 <returns>A http form, or null if content could not be parsed.</returns> 3695 // start https
3696 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception> 3696 server.Start(IPAddress.Any, 443, myCertificate);
3697 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception> 3697 </code>
3698 </member> 3698 </example>
3699 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)"> 3699 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
3700 <summary> 3700 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
3701 Checks if the decoder can handle the mime type 3701 <seealso cref="T:HttpServer.HttpListener"/>
3702 </summary> 3702 </member>
3703 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 3703 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
3704 <returns>True if the decoder can parse the specified content type</returns> 3704 <summary>
3705 </member> 3705 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3706 <member name="T:HttpServer.ClientAcceptedEventArgs"> 3706 </summary>
3707 <summary> 3707 <param name="provider">Used to get all components used in the server..</param>
3708 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/> 3708 </member>
3709 </summary> 3709 <member name="M:HttpServer.HttpServer.#ctor">
3710 <remarks> 3710 <summary>
3711 Can be used to revoke incoming connections 3711 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3712 </remarks> 3712 </summary>
3713 </member> 3713 </member>
3714 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)"> 3714 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
3715 <summary> 3715 <summary>
3716 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class. 3716 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3717 </summary> 3717 </summary>
3718 <param name="socket">The socket.</param> 3718 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
3719 </member> 3719 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3720 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke"> 3720 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3721 <summary> 3721 </member>
3722 Client may not be handled. 3722 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
3723 </summary> 3723 <summary>
3724 </member> 3724 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3725 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket"> 3725 </summary>
3726 <summary> 3726 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
3727 Accepted socket. 3727 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
3728 </summary> 3728 </member>
3729 </member> 3729 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
3730 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked"> 3730 <summary>
3731 <summary> 3731 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3732 Client should be revoked. 3732 </summary>
3733 </summary> 3733 <param name="logWriter">The log writer.</param>
3734 </member> 3734 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3735 <member name="T:HttpServer.HttpModules.FileModule"> 3735 </member>
3736 <summary> 3736 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
3737 The purpose of this module is to serve files. 3737 <summary>
3738 </summary> 3738 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3739 </member> 3739 </summary>
3740 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)"> 3740 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
3741 <summary> 3741 <param name="logWriter">The log writer.</param>
3742 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class. 3742 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3743 </summary> 3743 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3744 <param name="baseUri">Uri to serve, for instance "/files/"</param> 3744 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3745 <param name="basePath">Path on hard drive where we should start looking for files</param> 3745 </member>
3746 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param> 3746 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
3747 </member> 3747 <summary>
3748 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)"> 3748 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3749 <summary> 3749 </summary>
3750 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class. 3750 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
3751 </summary> 3751 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
3752 <param name="baseUri">Uri to serve, for instance "/files/"</param> 3752 <param name="logWriter">The log writer.</param>
3753 <param name="basePath">Path on hard drive where we should start looking for files</param> 3753 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3754 </member> 3754 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3755 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes"> 3755 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3756 <summary> 3756 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
3757 Mimtypes that this class can handle per default 3757 </member>
3758 </summary> 3758 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)">
3759 </member> 3759 <summary>
3760 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)"> 3760 Adds the specified rule.
3761 <summary> 3761 </summary>
3762 Determines if the request should be handled by this module. 3762 <param name="rule">The rule.</param>
3763 Invoked by the <see cref="T:HttpServer.HttpServer"/> 3763 </member>
3764 </summary> 3764 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
3765 <param name="uri"></param> 3765 <summary>
3766 <returns>true if this module should handle it.</returns> 3766 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
3767 </member> 3767 </summary>
3768 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)"> 3768 <param name="module">mode to add</param>
3769 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception> 3769 </member>
3770 </member> 3770 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
3771 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})"> 3771 <summary>
3772 <summary> 3772 Decodes the request body.
3773 check if source contains any of the chars. 3773 </summary>
3774 </summary> 3774 <param name="request">The request.</param>
3775 <param name="source"></param> 3775 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
3776 <param name="chars"></param> 3776 </member>
3777 <returns></returns> 3777 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
3778 </member> 3778 <summary>
3779 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3779 Generate a HTTP error page (that will be added to the response body).
3780 <summary> 3780 response status code is also set.
3781 Method that process the Uri. 3781 </summary>
3782 </summary> 3782 <param name="response">Response that the page will be generated in.</param>
3783 <param name="request">Information sent by the browser about the request</param> 3783 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
3784 <param name="response">Information that is being sent back to the client.</param> 3784 <param name="body">response body contents.</param>
3785 <param name="session">Session used to </param> 3785 </member>
3786 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception> 3786 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
3787 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception> 3787 <summary>
3788 </member> 3788 Generate a HTTP error page (that will be added to the response body).
3789 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)"> 3789 response status code is also set.
3790 <summary> 3790 </summary>
3791 return a file extension from an absolute Uri path (or plain filename) 3791 <param name="response">Response that the page will be generated in.</param>
3792 </summary> 3792 <param name="err">exception.</param>
3793 <param name="uri"></param> 3793 </member>
3794 <returns></returns> 3794 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
3795 </member> 3795 <summary>
3796 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes"> 3796 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s.
3797 <summary> 3797 </summary>
3798 List with all mime-type that are allowed. 3798 <param name="request">HTTP request</param>
3799 </summary> 3799 <returns>domain/realm.</returns>
3800 <remarks>All other mime types will result in a Forbidden http status code.</remarks> 3800 </member>
3801 </member> 3801 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3802 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars"> 3802 <summary>
3803 <summary> 3803 Process an incoming request.
3804 characters that may not exist in a path. 3804 </summary>
3805 </summary> 3805 <param name="context">connection to client</param>
3806 <example> 3806 <param name="request">request information</param>
3807 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" }; 3807 <param name="response">response that should be filled</param>
3808 </example> 3808 <param name="session">session information</param>
3809 </member> 3809 </member>
3810 <member name="T:HttpServer.Helpers.XmlHelper"> 3810 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
3811 <summary> 3811 <summary>
3812 Helpers to make XML handling easier 3812 Can be overloaded to implement stuff when a client have been connected.
3813 </summary> 3813 </summary>
3814 </member> 3814 <remarks>
3815 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)"> 3815 Default implementation does nothing.
3816 <summary> 3816 </remarks>
3817 Serializes object to XML. 3817 <param name="client">client that disconnected</param>
3818 </summary> 3818 <param name="error">disconnect reason</param>
3819 <param name="value">object to serialize.</param> 3819 </member>
3820 <returns>XML</returns> 3820 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3821 <remarks> 3821 <summary>
3822 Removes name spaces and adds indentation 3822 Handle authentication
3823 </remarks> 3823 </summary>
3824 </member> 3824 <param name="request"></param>
3825 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)"> 3825 <param name="response"></param>
3826 <summary> 3826 <param name="session"></param>
3827 Create an object from a XML string 3827 <returns>true if request can be handled; false if not.</returns>
3828 </summary> 3828 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
3829 <typeparam name="T">Type of object</typeparam> 3829 </member>
3830 <param name="xml">XML string</param> 3830 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
3831 <returns>object</returns> 3831 <summary>
3832 </member> 3832 Will request authentication.
3833 <member name="T:HttpServer.Exceptions.NotFoundException"> 3833 </summary>
3834 <summary> 3834 <remarks>
3835 The requested resource was not found in the web server. 3835 Sends respond to client, nothing else can be done with the response after this.
3836 </summary> 3836 </remarks>
3837 </member> 3837 <param name="mod"></param>
3838 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)"> 3838 <param name="request"></param>
3839 <summary> 3839 <param name="response"></param>
3840 Create a new exception 3840 </member>
3841 </summary> 3841 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
3842 <param name="message">message describing the error</param> 3842 <summary>
3843 <param name="inner">inner exception</param> 3843 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
3844 </member> 3844 </summary>
3845 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)"> 3845 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
3846 <summary> 3846 <param name="args">The request.</param>
3847 Create a new exception 3847 </member>
3848 </summary> 3848 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
3849 <param name="message">message describing the error</param> 3849 <summary>
3850 </member> 3850 To be able to track request count.
3851 <member name="T:HttpServer.RequestCookie"> 3851 </summary>
3852 <summary> 3852 <param name="context"></param>
3853 cookie sent by the client/browser 3853 <param name="request"></param>
3854 </summary> 3854 </member>
3855 <seealso cref="T:HttpServer.ResponseCookie"/> 3855 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
3856 </member> 3856 <summary>
3857 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)"> 3857 Start the web server using regular HTTP.
3858 <summary> 3858 </summary>
3859 Constructor. 3859 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param>
3860 </summary> 3860 <param name="port">Port to listen on. 80 can be a good idea =)</param>
3861 <param name="id">cookie identifier</param> 3861 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
3862 <param name="content">cookie content</param> 3862 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
3863 <exception cref="T:System.ArgumentNullException">id or content is null</exception> 3863 </member>
3864 <exception cref="T:System.ArgumentException">id is empty</exception> 3864 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
3865 </member> 3865 <summary>
3866 <member name="M:HttpServer.RequestCookie.ToString"> 3866 Accept secure connections.
3867 <summary> 3867 </summary>
3868 Gets the cookie HTML representation. 3868 <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>
3869 </summary> 3869 <param name="port">Port to listen on. 80 can be a good idea =)</param>
3870 <returns>cookie string</returns> 3870 <param name="certificate">Certificate to use</param>
3871 </member> 3871 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
3872 <member name="P:HttpServer.RequestCookie.Name"> 3872 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
3873 <summary> 3873 </member>
3874 Gets the cookie identifier. 3874 <member name="M:HttpServer.HttpServer.Stop">
3875 </summary> 3875 <summary>
3876 </member> 3876 shut down the server and listeners
3877 <member name="P:HttpServer.RequestCookie.Value"> 3877 </summary>
3878 <summary> 3878 </member>
3879 Cookie value. Set to null to remove cookie. 3879 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
3880 </summary> 3880 <summary>
3881 </member> 3881 write an entry to the log file
3882 <member name="T:HttpServer.HttpParam"> 3882 </summary>
3883 <summary> 3883 <param name="prio">importance of the message</param>
3884 Returns item either from a form or a query string (checks them in that order) 3884 <param name="message">log message</param>
3885 </summary> 3885 </member>
3886 </member> 3886 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
3887 <member name="F:HttpServer.HttpParam.Empty"> 3887 <summary>
3888 <summary> Representation of a non-initialized HttpParam </summary> 3888 write an entry to the log file
3889 </member> 3889 </summary>
3890 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)"> 3890 <param name="source">object that wrote the message</param>
3891 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary> 3891 <param name="prio">importance of the message</param>
3892 </member> 3892 <param name="message">log message</param>
3893 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)"> 3893 </member>
3894 <summary> 3894 <member name="P:HttpServer.HttpServer.Current">
3895 The add method is not availible for HttpParam 3895 <summary>
3896 since HttpParam checks both Request.Form and Request.QueryString 3896 Server that is handling the current request.
3897 </summary> 3897 </summary>
3898 <param name="name">name identifying the value</param> 3898 <remarks>
3899 <param name="value">value to add</param> 3899 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object.
3900 <exception cref="T:System.NotImplementedException"></exception> 3900 </remarks>
3901 </member> 3901 </member>
3902 <member name="M:HttpServer.HttpParam.Contains(System.String)"> 3902 <member name="P:HttpServer.HttpServer.AuthenticationModules">
3903 <summary> 3903 <summary>
3904 Checks whether the form or querystring has the specified value 3904 Modules used for authentication. The module that is is added first is used as
3905 </summary> 3905 the default authentication module.
3906 <param name="name">Name, case sensitive</param> 3906 </summary>
3907 <returns>true if found; otherwise false.</returns> 3907 <remarks>Use the corresponding property
3908 </member> 3908 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks>
3909 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 3909 </member>
3910 <summary> 3910 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
3911 Returns an enumerator that iterates through the collection. 3911 <summary>
3912 </summary> 3912 Form decoder providers are used to decode request body (which normally contains form data).
3913 3913 </summary>
3914 <returns> 3914 </member>
3915 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 3915 <member name="P:HttpServer.HttpServer.ServerName">
3916 </returns> 3916 <summary>
3917 <filterpriority>1</filterpriority> 3917 Server name sent in HTTP responses.
3918 </member> 3918 </summary>
3919 <member name="M:HttpServer.HttpParam.GetEnumerator"> 3919 <remarks>
3920 <summary> 3920 Do NOT include version in name, since it makes it
3921 Returns an enumerator that iterates through a collection. 3921 easier for hackers.
3922 </summary> 3922 </remarks>
3923 3923 </member>
3924 <returns> 3924 <member name="P:HttpServer.HttpServer.SessionCookieName">
3925 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 3925 <summary>
3926 </returns> 3926 Name of cookie where session id is stored.
3927 <filterpriority>2</filterpriority> 3927 </summary>
3928 </member> 3928 </member>
3929 <member name="P:HttpServer.HttpParam.Item(System.String)"> 3929 <member name="P:HttpServer.HttpServer.LogWriter">
3930 <summary> 3930 <summary>
3931 Fetch an item from the form or querystring (in that order). 3931 Specified where logging should go.
3932 </summary> 3932 </summary>
3933 <param name="name"></param> 3933 <seealso cref="T:HttpServer.NullLogWriter"/>
3934 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns> 3934 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
3935 </member> 3935 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3936 <member name="T:HttpServer.HttpClientContext"> 3936 </member>
3937 <summary> 3937 <member name="P:HttpServer.HttpServer.BackLog">
3938 Contains a connection to a browser/client. 3938 <summary>
3939 </summary> 3939 Number of connections that can wait to be accepted by the server.
3940 <remarks> 3940 </summary>
3941 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event. 3941 <remarks>Default is 10.</remarks>
3942 </remarks> 3942 </member>
3943 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext? 3943 <member name="P:HttpServer.HttpServer.MaxRequestCount">
3944 </member> 3944 <summary>
3945 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)"> 3945 Gets or sets maximum number of allowed simultaneous requests.
3946 <summary> 3946 </summary>
3947 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class. 3947 <remarks>
3948 </summary> 3948 <para>
3949 <param name="secured">true if the connection is secured (SSL/TLS)</param> 3949 This property is useful in busy systems. The HTTP server
3950 <param name="remoteEndPoint">client that connected.</param> 3950 will start queuing new requests if this limit is hit, instead
3951 <param name="stream">Stream used for communication</param> 3951 of trying to process all incoming requests directly.
3952 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param> 3952 </para>
3953 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param> 3953 <para>
3954 <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> 3954 The default number if allowed simultaneous requests are 10.
3955 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception> 3955 </para>
3956 </member> 3956 </remarks>
3957 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)"> 3957 </member>
3958 <summary> 3958 <member name="P:HttpServer.HttpServer.MaxQueueSize">
3959 Process incoming body bytes. 3959 <summary>
3960 </summary> 3960 Gets or sets maximum number of requests queuing to be handled.
3961 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param> 3961 </summary>
3962 <param name="e">Bytes</param> 3962 <remarks>
3963 </member> 3963 <para>
3964 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)"> 3964 The WebServer will start turning requests away if response code
3965 <summary> 3965 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
3966 3966 is too busy to be able to handle the request.
3967 </summary> 3967 </para>
3968 <param name="sender"></param> 3968 </remarks>
3969 <param name="e"></param> 3969 </member>
3970 </member> 3970 <member name="E:HttpServer.HttpServer.RealmWanted">
3971 <member name="M:HttpServer.HttpClientContext.Start"> 3971 <summary>
3972 <summary> 3972 Realms are used during HTTP authentication.
3973 Start reading content. 3973 Default realm is same as server name.
3974 </summary> 3974 </summary>
3975 <remarks> 3975 </member>
3976 Make sure to call base.Start() if you override this method. 3976 <member name="E:HttpServer.HttpServer.ExceptionThrown">
3977 </remarks> 3977 <summary>
3978 </member> 3978 Let's to receive unhandled exceptions from the threads.
3979 <member name="M:HttpServer.HttpClientContext.Cleanup"> 3979 </summary>
3980 <summary> 3980 <remarks>
3981 Clean up context. 3981 Exceptions will be thrown during debug mode if this event is not used,
3982 </summary> 3982 exceptions will be printed to console and suppressed during release mode.
3983 <remarks> 3983 </remarks>
3984 Make sure to call base.Cleanup() if you override the method. 3984 </member>
3985 </remarks> 3985 <member name="T:HttpServer.Exceptions.UnauthorizedException">
3986 </member> 3986 <summary>
3987 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 3987 The request requires user authentication. The response MUST include a
3988 <summary> 3988 WWW-Authenticate header field (section 14.47) containing a challenge
3989 Disconnect from client 3989 applicable to the requested resource.
3990 </summary> 3990
3991 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param> 3991 The client MAY repeat the request with a suitable Authorization header
3992 </member> 3992 field (section 14.8). If the request already included Authorization
3993 <member name="M:HttpServer.HttpClientContext.OnReceive(System.IAsyncResult)"> 3993 credentials, then the 401 response indicates that authorization has been
3994 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception> 3994 refused for those credentials. If the 401 response contains the same challenge
3995 </member> 3995 as the prior response, and the user agent has already attempted authentication
3996 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 3996 at least once, then the user SHOULD be presented the entity that was given in the response,
3997 <summary> 3997 since that entity might include relevant diagnostic information.
3998 Send a response. 3998
3999 </summary> 3999 HTTP access authentication is explained in rfc2617:
4000 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 4000 http://www.ietf.org/rfc/rfc2617.txt
4001 <param name="statusCode">HTTP status code</param> 4001
4002 <param name="reason">reason for the status code.</param> 4002 (description is taken from
4003 <param name="body">HTML body contents, can be null or empty.</param> 4003 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
4004 <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> 4004 </summary>
4005 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception> 4005 </member>
4006 </member> 4006 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
4007 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 4007 <summary>
4008 <summary> 4008 Create a new unauhtorized exception.
4009 Send a response. 4009 </summary>
4010 </summary> 4010 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
4011 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 4011 </member>
4012 <param name="statusCode">HTTP status code</param> 4012 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
4013 <param name="reason">reason for the status code.</param> 4013 <summary>
4014 </member> 4014 Create a new unauhtorized exception.
4015 <member name="M:HttpServer.HttpClientContext.Respond(System.String)"> 4015 </summary>
4016 <summary> 4016 <param name="message">reason to why the request was unauthorized.</param>
4017 Send a response. 4017 <param name="inner">inner exception</param>
4018 </summary> 4018 </member>
4019 <exception cref="T:System.ArgumentNullException"></exception> 4019 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
4020 </member> 4020 <summary>
4021 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])"> 4021 Create a new unauhtorized exception.
4022 <summary> 4022 </summary>
4023 send a whole buffer 4023 <param name="message">reason to why the request was unauthorized.</param>
4024 </summary> 4024 </member>
4025 <param name="buffer">buffer to send</param> 4025 <member name="T:HttpServer.ContentType">
4026 <exception cref="T:System.ArgumentNullException"></exception> 4026 <summary>
4027 </member> 4027 Lists content type mime types.
4028 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 4028 </summary>
4029 <summary> 4029 </member>
4030 Send data using the stream 4030 <member name="F:HttpServer.ContentType.Text">
4031 </summary> 4031 <summary>
4032 <param name="buffer">Contains data to send</param> 4032 text/plain
4033 <param name="offset">Start position in buffer</param> 4033 </summary>
4034 <param name="size">number of bytes to send</param> 4034 </member>
4035 <exception cref="T:System.ArgumentNullException"></exception> 4035 <member name="F:HttpServer.ContentType.Html">
4036 <exception cref="T:System.ArgumentOutOfRangeException"></exception> 4036 <summary>
4037 </member> 4037 text/haml
4038 <member name="E:HttpServer.HttpClientContext.Cleaned"> 4038 </summary>
4039 <summary> 4039 </member>
4040 This context have been cleaned, which means that it can be reused. 4040 <member name="F:HttpServer.ContentType.Javascript">
4041 </summary> 4041 <summary>
4042 </member> 4042 content type for javascript documents = application/javascript
4043 <member name="E:HttpServer.HttpClientContext.Started"> 4043 </summary>
4044 <summary> 4044 <remarks>
4045 Context have been started (a new client have connected) 4045 <para>
4046 </summary> 4046 RFC 4329 states that text/javascript have been superseeded by
4047 </member> 4047 application/javascript. You might still want to check browser versions
4048 <member name="P:HttpServer.HttpClientContext.CurrentRequest"> 4048 since older ones do not support application/javascript.
4049 <summary> 4049 </para>
4050 Overload to specify own type. 4050 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
4051 </summary> 4051 </remarks>
4052 <remarks> 4052 </member>
4053 Must be specified before the context is being used. 4053 <member name="F:HttpServer.ContentType.Xml">
4054 </remarks> 4054 <summary>
4055 </member> 4055 text/xml
4056 <member name="P:HttpServer.HttpClientContext.Secured"> 4056 </summary>
4057 <summary> 4057 </member>
4058 Using SSL or other encryption method. 4058 <member name="T:HttpServer.ContentTypes">
4059 </summary> 4059 <summary>
4060 </member> 4060 A list of content types
4061 <member name="P:HttpServer.HttpClientContext.IsSecured"> 4061 </summary>
4062 <summary> 4062 </member>
4063 Using SSL or other encryption method. 4063 <member name="M:HttpServer.ContentTypes.#ctor(System.String)">
4064 </summary> 4064 <summary>
4065 </member> 4065
4066 <member name="P:HttpServer.HttpClientContext.LogWriter"> 4066 </summary>
4067 <summary> 4067 <param name="types">Semicolon separated content types.</param>
4068 Specify which logger to use. 4068 </member>
4069 </summary> 4069 <member name="M:HttpServer.ContentTypes.GetEnumerator">
4070 </member> 4070 <summary>
4071 <member name="P:HttpServer.HttpClientContext.Stream"> 4071 Returns an enumerator that iterates through a collection.
4072 <summary> 4072 </summary>
4073 Gets or sets the network stream. 4073 <returns>
4074 </summary> 4074 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
4075 </member> 4075 </returns>
4076 <member name="P:HttpServer.HttpClientContext.RemoteAddress"> 4076 </member>
4077 <summary> 4077 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
4078 Gets or sets IP address that the client connected from. 4078 <summary>
4079 </summary> 4079 Searches for the specified type
4080 </member> 4080 </summary>
4081 <member name="P:HttpServer.HttpClientContext.RemotePort"> 4081 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
4082 <summary> 4082 <returns>true if type was found.</returns>
4083 Gets or sets port that the client connected from. 4083 </member>
4084 </summary> 4084 <member name="P:HttpServer.ContentTypes.First">
4085 </member> 4085 <summary>
4086 <member name="E:HttpServer.HttpClientContext.Disconnected"> 4086 Get this first content type.
4087 <summary> 4087 </summary>
4088 The context have been disconnected. 4088 </member>
4089 </summary> 4089 <member name="P:HttpServer.ContentTypes.Item(System.String)">
4090 <remarks> 4090 <summary>
4091 Event can be used to clean up a context, or to reuse it. 4091 Fetch a content type
4092 </remarks> 4092 </summary>
4093 </member> 4093 <param name="type">Part of type ("xml" would return "application/xml")</param>
4094 <member name="E:HttpServer.HttpClientContext.RequestReceived"> 4094 <returns></returns>
4095 <summary> 4095 <remarks>All content types are in lower case.</remarks>
4096 A request have been received in the context. 4096 </member>
4097 </summary> 4097 <member name="T:HttpServer.Sessions.MemorySessionStore">
4098 </member> 4098 <summary>
4099 <member name="T:HttpServer.Helpers.ResourceManager"> 4099 Session store using memory for each session.
4100 <summary>Class to handle loading of resource files</summary> 4100 </summary>
4101 </member> 4101 </member>
4102 <member name="M:HttpServer.Helpers.ResourceManager.#ctor"> 4102 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor">
4103 <summary> 4103 <summary>
4104 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 4104 Initializes the class setting the expirationtimer to clean the session every minute
4105 </summary> 4105 </summary>
4106 </member> 4106 </member>
4107 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)"> 4107 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)">
4108 <summary> 4108 <summary>
4109 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 4109 Delegate for the cleanup timer
4110 </summary> 4110 </summary>
4111 <param name="writer">logger.</param> 4111 </member>
4112 </member> 4112 <member name="M:HttpServer.Sessions.MemorySessionStore.Create">
4113 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)"> 4113 <summary>
4114 <summary> 4114 Creates a new http session
4115 Loads resources from a namespace in the given assembly to an URI 4115 </summary>
4116 </summary> 4116 <returns></returns>
4117 <param name="toUri">The URI to map the resources to</param> 4117 </member>
4118 <param name="fromAssembly">The assembly in which the resources reside</param> 4118 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)">
4119 <param name="fromNamespace">The namespace from which to load the resources</param> 4119 <summary>
4120 <usage> 4120 Creates a new http session with a specific id
4121 <code> 4121 </summary>
4122 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 4122 <param name="id">Id used to identify the new cookie..</param>
4123 </code> 4123 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4124 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/ 4124 <remarks>
4125 </usage> 4125 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4126 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns> 4126 </remarks>
4127 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception> 4127 </member>
4128 </member> 4128 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)">
4129 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)"> 4129 <summary>
4130 <summary> 4130 Load an existing session.
4131 Retrieves a stream for the specified resource path if loaded otherwise null 4131 </summary>
4132 </summary> 4132 <param name="sessionId"></param>
4133 <param name="path">Path to the resource to retrieve a stream for</param> 4133 <returns></returns>
4134 <returns>A stream or null if the resource couldn't be found</returns> 4134 </member>
4135 </member> 4135 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)">
4136 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)"> 4136 <summary>
4137 <summary> 4137 Save an updated session to the store.
4138 Fetch all files from the resource that matches the specified arguments. 4138 </summary>
4139 </summary> 4139 <param name="session"></param>
4140 <param name="path">The path to the resource to extract</param> 4140 </member>
4141 <returns> 4141 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
4142 a list of files if found; or an empty array if no files are found. 4142 <summary>
4143 </returns> 4143 We use the flyweight pattern which reuses small objects
4144 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception> 4144 instead of creating new each time.
4145 </member> 4145 </summary>
4146 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)"> 4146 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
4147 <summary> 4147 </member>
4148 Fetch all files from the resource that matches the specified arguments. 4148 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup">
4149 </summary> 4149 <summary>
4150 <param name="path">Where the file should reside.</param> 4150 Remove expired sessions
4151 <param name="filename">Files to check</param> 4151 </summary>
4152 <returns> 4152 </member>
4153 a list of files if found; or an empty array if no files are found. 4153 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)">
4154 </returns> 4154 <summary>
4155 </member> 4155 Remove a session
4156 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)"> 4156 </summary>
4157 <summary> 4157 <param name="sessionId">id of the session.</param>
4158 Returns whether or not the loader has an instance of the file requested 4158 </member>
4159 </summary> 4159 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)">
4160 <param name="filename">The name of the template/file</param> 4160 <summary>
4161 <returns>True if the loader can provide the file</returns> 4161 Load a session from the store
4162 </member> 4162 </summary>
4163 <member name="T:HttpServer.Check"> 4163 <param name="sessionId"></param>
4164 <summary> 4164 <returns>null if session is not found.</returns>
4165 Small design by contract implementation. 4165 </member>
4166 </summary> 4166 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime">
4167 </member> 4167 <summary>
4168 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)"> 4168 Number of minutes before a session expires.
4169 <summary> 4169 Default is 20 minutes.
4170 Check whether a parameter is empty. 4170 </summary>
4171 </summary> 4171 </member>
4172 <param name="value">Parameter value</param> 4172 <member name="T:HttpServer.Helpers.WebHelper">
4173 <param name="parameterOrErrorMessage">Parameter name, or error description.</param> 4173 <summary>
4174 <exception cref="T:System.ArgumentException">value is empty.</exception> 4174 Webhelper provides helpers for common tasks in HTML.
4175 </member> 4175 </summary>
4176 <member name="M:HttpServer.Check.Require(System.Object,System.String)"> 4176 </member>
4177 <summary> 4177 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
4178 Checks whether a parameter is null. 4178 <summary>
4179 </summary> 4179 Used to let the website use different javascript libraries.
4180 <param name="value">Parameter value</param> 4180 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
4181 <param name="parameterOrErrorMessage">Parameter name, or error description.</param> 4181 </summary>
4182 <exception cref="T:System.ArgumentNullException">value is null.</exception> 4182 </member>
4183 </member> 4183 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
4184 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)"> 4184 <summary>
4185 <summary> 4185 Creates a link that invokes through ajax.
4186 Checks whether a parameter is null. 4186 </summary>
4187 </summary> 4187 <param name="url">url to fetch</param>
4188 <param name="minValue"></param> 4188 <param name="title">link title</param>
4189 <param name="value">Parameter value</param> 4189 <param name="options">
4190 <param name="parameterOrErrorMessage">Parameter name, or error description.</param> 4190 optional options in format "key, value, key, value".
4191 <exception cref="T:System.ArgumentException">value is null.</exception> 4191 Javascript options starts with ':'.
4192 </member> 4192 </param>
4193 <member name="T:HttpServer.ResponseCookie"> 4193 <returns>a link tag</returns>
4194 <summary> 4194 <example>
4195 cookie being sent back to the browser. 4195 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
4196 </summary> 4196 </example>
4197 <seealso cref="T:HttpServer.ResponseCookie"/> 4197 </member>
4198 </member> 4198 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
4199 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)"> 4199 <summary>
4200 <summary> 4200 Builds a link that updates an element with the fetched ajax content.
4201 Constructor. 4201 </summary>
4202 </summary> 4202 <param name="url">Url to fetch content from</param>
4203 <param name="id">cookie identifier</param> 4203 <param name="title">link title</param>
4204 <param name="content">cookie content</param> 4204 <param name="targetId">html element to update with the results of the ajax request.</param>
4205 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param> 4205 <param name="options">optional options in format "key, value, key, value"</param>
4206 <exception cref="T:System.ArgumentNullException">id or content is null</exception> 4206 <returns>A link tag.</returns>
4207 <exception cref="T:System.ArgumentException">id is empty</exception> 4207 </member>
4208 </member> 4208 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
4209 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)"> 4209 <summary>
4210 <summary> 4210 A link that pop ups a Dialog (overlay div)
4211 Create a new cookie 4211 </summary>
4212 </summary> 4212 <param name="url">url to contents of dialog</param>
4213 <param name="name">name identifying the cookie</param> 4213 <param name="title">link title</param>
4214 <param name="value">cookie value</param> 4214 <param name="htmlAttributes">name/value of html attributes.</param>
4215 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param> 4215 <returns>A "a"-tag that popups a dialog when clicked</returns>
4216 <param name="path">Path to where the cookie is valid</param> 4216 <example>
4217 <param name="domain">Domain that the cookie is valid for.</param> 4217 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
4218 </member> 4218 </example>
4219 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)"> 4219 </member>
4220 <summary> 4220 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
4221 Create a new cookie 4221 <summary>
4222 </summary> 4222 Create/Open a dialog box using ajax
4223 <param name="cookie">Name and value will be used</param> 4223 </summary>
4224 <param name="expires">when the cookie expires.</param> 4224 <param name="url"></param>
4225 </member> 4225 <param name="title"></param>
4226 <member name="M:HttpServer.ResponseCookie.ToString"> 4226 <param name="parameters"></param>
4227 <summary> 4227 <returns></returns>
4228 Gets the cookie HTML representation. 4228 </member>
4229 </summary> 4229 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
4230 <returns>cookie string</returns> 4230 <summary>
4231 </member> 4231 Close a javascript dialog window/div.
4232 <member name="P:HttpServer.ResponseCookie.Expires"> 4232 </summary>
4233 <summary> 4233 <returns>javascript for closing a dialog.</returns>
4234 When the cookie expires. 4234 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
4235 DateTime.MinValue means that the cookie expires when the session do so. 4235 </member>
4236 </summary> 4236 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
4237 </member> 4237 <summary>
4238 <member name="P:HttpServer.ResponseCookie.Path"> 4238 Create a &lt;form&gt; tag.
4239 <summary> 4239 </summary>
4240 Cookie is only valid under this path. 4240 <param name="name">name of form</param>
4241 </summary> 4241 <param name="action">action to invoke on submit</param>
4242 </member> 4242 <param name="isAjax">form should be posted as ajax</param>
4243 <member name="T:HttpServer.Parser.RequestLineEventArgs"> 4243 <returns>html code</returns>
4244 <summary> 4244 <example>
4245 Used when the request line have been successfully parsed. 4245 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4246 </summary> 4246 </example>
4247 </member> 4247 </member>
4248 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)"> 4248 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
4249 <summary> 4249 <summary>
4250 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class. 4250 Create a link tag.
4251 </summary> 4251 </summary>
4252 <param name="httpMethod">The HTTP method.</param> 4252 <param name="url">url to go to</param>
4253 <param name="uriPath">The URI path.</param> 4253 <param name="title">link title (text that is displayed)</param>
4254 <param name="httpVersion">The HTTP version.</param> 4254 <param name="htmlAttributes">html attributes, name, value, name, value</param>
4255 </member> 4255 <returns>html code</returns>
4256 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor"> 4256 <example>
4257 <summary> 4257 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
4258 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class. 4258 </example>
4259 </summary> 4259 </member>
4260 </member> 4260 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
4261 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod"> 4261 <summary>
4262 <summary> 4262 Build a link
4263 Gets or sets http method. 4263 </summary>
4264 </summary> 4264 <param name="url">url to go to.</param>
4265 <remarks> 4265 <param name="title">title of link (displayed text)</param>
4266 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>. 4266 <param name="htmlAttributes">extra html attributes.</param>
4267 </remarks> 4267 <returns>a complete link</returns>
4268 </member> 4268 </member>
4269 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion"> 4269 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
4270 <summary> 4270 <summary>
4271 Gets or sets the version of the HTTP protocol that the client want to use. 4271 Build a link
4272 </summary> 4272 </summary>
4273 </member> 4273 <param name="url">url to go to.</param>
4274 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath"> 4274 <param name="title">title of link (displayed text)</param>
4275 <summary> 4275 <param name="htmlAttributes">extra html attributes.</param>
4276 Gets or sets requested URI path. 4276 <returns>a complete link</returns>
4277 </summary> 4277 <param name="options">more options</param>
4278 </member> 4278 </member>
4279 <member name="T:HttpServer.RealmHandler"> 4279 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4280 <summary> 4280 <summary>
4281 Delegate used to find a realm/domain. 4281 Obsolete
4282 </summary> 4282 </summary>
4283 <param name="domain"></param> 4283 <param name="name">Obsolete</param>
4284 <returns></returns> 4284 <param name="collection">Obsolete</param>
4285 <remarks> 4285 <param name="getIdTitle">Obsolete</param>
4286 Realms are used during HTTP Authentication 4286 <param name="selectedValue">Obsolete</param>
4287 </remarks> 4287 <param name="firstEmpty">Obsolete</param>
4288 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/> 4288 <returns>Obsolete</returns>
4289 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/> 4289 </member>
4290 </member> 4290 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4291 <member name="T:HttpServer.HttpServer"> 4291 <summary>
4292 <summary> 4292 Obsolete
4293 A complete HTTP server, you need to add a module to it to be able to handle incoming requests. 4293 </summary>
4294 </summary> 4294 <param name="name">Obsolete</param>
4295 <example> 4295 <param name="id">Obsolete</param>
4296 <code> 4296 <param name="collection">Obsolete</param>
4297 // this small example will add two web site modules, thus handling 4297 <param name="getIdTitle">Obsolete</param>
4298 // two different sites. In reality you should add Controller modules or something 4298 <param name="selectedValue">Obsolete</param>
4299 // two the website modules to be able to handle different requests. 4299 <param name="firstEmpty">Obsolete</param>
4300 HttpServer server = new HttpServer(); 4300 <returns>Obsolete</returns>
4301 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB")); 4301 </member>
4302 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX")); 4302 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
4303 4303 <summary>
4304 // start regular http 4304 Render errors into a UL with class "errors"
4305 server.Start(IPAddress.Any, 80); 4305 </summary>
4306 4306 <param name="className">class used by UL-tag.</param>
4307 // start https 4307 <param name="theList">items to list</param>
4308 server.Start(IPAddress.Any, 443, myCertificate); 4308 <returns>an unordered html list.</returns>
4309 </code> 4309 </member>
4310 </example> 4310 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
4311 <seealso cref="T:HttpServer.HttpModules.HttpModule"/> 4311 <summary>
4312 <seealso cref="T:HttpServer.HttpModules.FileModule"/> 4312 Render errors into a UL with class "errors"
4313 <seealso cref="T:HttpServer.HttpListener"/> 4313 </summary>
4314 </member> 4314 <param name="className">class used by UL-tag.</param>
4315 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)"> 4315 <param name="theList">items to list</param>
4316 <summary> 4316 <returns>an unordered html list.</returns>
4317 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4317 </member>
4318 </summary> 4318 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
4319 <param name="provider">Used to get all components used in the server..</param> 4319 <summary>
4320 </member> 4320 Render errors into a UL with class "errors"
4321 <member name="M:HttpServer.HttpServer.#ctor"> 4321 </summary>
4322 <summary> 4322 <param name="errors"></param>
4323 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4323 <returns></returns>
4324 </summary> 4324 </member>
4325 </member> 4325 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])">
4326 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)"> 4326 <summary>
4327 <summary> 4327 Generates a list with html attributes.
4328 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4328 </summary>
4329 </summary> 4329 <param name="sb">StringBuilder that the options should be added to.</param>
4330 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param> 4330 <param name="firstOptions">attributes set by user.</param>
4331 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/> 4331 <param name="secondOptions">attributes set by any of the helper classes.</param>
4332 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/> 4332 </member>
4333 </member> 4333 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])">
4334 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)"> 4334 <summary>
4335 <summary> 4335 Generates a list with html attributes.
4336 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4336 </summary>
4337 </summary> 4337 <param name="sb">StringBuilder that the options should be added to.</param>
4338 <param name="sessionStore">A session store is used to save and retrieve sessions</param> 4338 <param name="options"></param>
4339 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/> 4339 </member>
4340 </member> 4340 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation">
4341 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)"> 4341 <summary>
4342 <summary> 4342 Purpose of this class is to create a javascript toolkit independent javascript helper.
4343 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4343 </summary>
4344 </summary> 4344 </member>
4345 <param name="logWriter">The log writer.</param> 4345 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)">
4346 <seealso cref="P:HttpServer.HttpServer.LogWriter"/> 4346 <summary>
4347 </member> 4347 Generates a list with JS options.
4348 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)"> 4348 </summary>
4349 <summary> 4349 <param name="sb">StringBuilder that the options should be added to.</param>
4350 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4350 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
4351 </summary> 4351 <param name="startWithComma">true if we should start with a comma.</param>
4352 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param> 4352 </member>
4353 <param name="logWriter">The log writer.</param> 4353 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])">
4354 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/> 4354 <summary>
4355 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/> 4355 Removes any javascript parameters from an array of parameters
4356 <seealso cref="P:HttpServer.HttpServer.LogWriter"/> 4356 </summary>
4357 </member> 4357 <param name="options">The array of parameters to remove javascript params from</param>
4358 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)"> 4358 <returns>An array of html parameters</returns>
4359 <summary> 4359 </member>
4360 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 4360 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])">
4361 </summary> 4361 <summary>
4362 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param> 4362 javascript action that should be added to the "onsubmit" event in the form tag.
4363 <param name="sessionStore">A session store is used to save and retrieve sessions</param> 4363 </summary>
4364 <param name="logWriter">The log writer.</param> 4364 <returns></returns>
4365 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/> 4365 <remarks>All javascript option names should end with colon.</remarks>
4366 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/> 4366 <example>
4367 <seealso cref="P:HttpServer.HttpServer.LogWriter"/> 4367 <code>
4368 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/> 4368 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
4369 </member> 4369 </code>
4370 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)"> 4370 </example>
4371 <summary> 4371 </member>
4372 Adds the specified rule. 4372 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])">
4373 </summary> 4373 <summary>
4374 <param name="rule">The rule.</param> 4374 Requests a url through ajax
4375 </member> 4375 </summary>
4376 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)"> 4376 <param name="url">url to fetch</param>
4377 <summary> 4377 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
4378 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server. 4378 <returns>a link tag</returns>
4379 </summary> 4379 <remarks>All javascript option names should end with colon.</remarks>
4380 <param name="module">mode to add</param> 4380 <example>
4381 </member> 4381 <code>
4382 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)"> 4382 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
4383 <summary> 4383 </code>
4384 Decodes the request body. 4384 </example>
4385 </summary> 4385 </member>
4386 <param name="request">The request.</param> 4386 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])">
4387 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception> 4387 <summary>
4388 </member> 4388 Ajax requests that updates an element with
4389 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)"> 4389 the fetched content
4390 <summary> 4390 </summary>
4391 Generate a HTTP error page (that will be added to the response body). 4391 <param name="url">Url to fetch content from</param>
4392 response status code is also set. 4392 <param name="targetId">element to update</param>
4393 </summary> 4393 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
4394 <param name="response">Response that the page will be generated in.</param> 4394 <returns>A link tag.</returns>
4395 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param> 4395 <remarks>All javascript option names should end with colon.</remarks>
4396 <param name="body">response body contents.</param> 4396 <example>
4397 </member> 4397 <code>
4398 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)"> 4398 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
4399 <summary> 4399 </code>
4400 Generate a HTTP error page (that will be added to the response body). 4400 </example>
4401 response status code is also set. 4401 </member>
4402 </summary> 4402 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])">
4403 <param name="response">Response that the page will be generated in.</param> 4403 <summary>
4404 <param name="err">exception.</param> 4404 A link that pop ups a Dialog (overlay div)
4405 </member> 4405 </summary>
4406 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)"> 4406 <param name="url">url to contents of dialog</param>
4407 <summary> 4407 <param name="title">link title</param>
4408 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s. 4408 <returns>A "a"-tag that popups a dialog when clicked</returns>
4409 </summary> 4409 <param name="htmlAttributes">name/value of html attributes</param>
4410 <param name="request">HTTP request</param> 4410 <example>
4411 <returns>domain/realm.</returns> 4411 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
4412 </member> 4412 </example>
4413 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 4413 </member>
4414 <summary> 4414 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog">
4415 Process an incoming request. 4415 <summary>
4416 </summary> 4416 Close a javascript dialog window/div.
4417 <param name="context">connection to client</param> 4417 </summary>
4418 <param name="request">request information</param> 4418 <returns>javascript for closing a dialog.</returns>
4419 <param name="response">response that should be filled</param> 4419 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
4420 <param name="session">session information</param> 4420 </member>
4421 </member> 4421 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])">
4422 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)"> 4422 <summary>
4423 <summary> 4423 Creates a new modal dialog window
4424 Can be overloaded to implement stuff when a client have been connected. 4424 </summary>
4425 </summary> 4425 <param name="url">url to open in window.</param>
4426 <remarks> 4426 <param name="title">window title (may not be supported by all js implementations)</param>
4427 Default implementation does nothing. 4427 <param name="options"></param>
4428 </remarks> 4428 <returns></returns>
4429 <param name="client">client that disconnected</param> 4429 </member>
4430 <param name="error">disconnect reason</param> 4430 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine">
4431 </member> 4431 <summary>
4432 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 4432
4433 <summary> 4433 </summary>
4434 Handle authentication 4434 <returns></returns>
4435 </summary> 4435 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
4436 <param name="request"></param> 4436 <exception cref="T:System.ObjectDisposedException"></exception>
4437 <param name="response"></param> 4437 </member>
4438 <param name="session"></param> 4438 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
4439 <returns>true if request can be handled; false if not.</returns> 4439 <summary>Represents a field in a multipart form</summary>
4440 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception> 4440 </member>
4441 </member> 4441 <member name="T:HttpServer.Exceptions.BadRequestException">
4442 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 4442 <summary>
4443 <summary> 4443 The request could not be understood by the server due to malformed syntax.
4444 Will request authentication. 4444 The client SHOULD NOT repeat the request without modifications.
4445 </summary> 4445
4446 <remarks> 4446 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
4447 Sends respond to client, nothing else can be done with the response after this. 4447 </summary>
4448 </remarks> 4448 </member>
4449 <param name="mod"></param> 4449 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)">
4450 <param name="request"></param> 4450 <summary>
4451 <param name="response"></param> 4451 Create a new bad request exception.
4452 </member> 4452 </summary>
4453 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)"> 4453 <param name="errMsg">reason to why the request was bad.</param>
4454 <summary> 4454 </member>
4455 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully. 4455 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)">
4456 </summary> 4456 <summary>
4457 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param> 4457 Create a new bad request exception.
4458 <param name="args">The request.</param> 4458 </summary>
4459 </member> 4459 <param name="errMsg">reason to why the request was bad.</param>
4460 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 4460 <param name="inner">inner exception</param>
4461 <summary> 4461 </member>
4462 To be able to track request count. 4462 <member name="T:HttpServer.HttpFile">
4463 </summary> 4463 <summary>
4464 <param name="context"></param> 4464 Container class for posted files
4465 <param name="request"></param> 4465 </summary>
4466 </member> 4466 </member>
4467 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)"> 4467 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
4468 <summary> 4468 <summary>
4469 Start the web server using regular HTTP. 4469 Creates a container for a posted file
4470 </summary> 4470 </summary>
4471 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param> 4471 <param name="name">The identifier of the post field</param>
4472 <param name="port">Port to listen on. 80 can be a good idea =)</param> 4472 <param name="filename">The file path</param>
4473 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 4473 <param name="contentType">The content type of the file</param>
4474 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception> 4474 <param name="uploadFilename">The name of the file uploaded</param>
4475 </member> 4475 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
4476 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 4476 </member>
4477 <summary> 4477 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
4478 Accept secure connections. 4478 <summary>
4479 </summary> 4479 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
4480 <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> 4480 </summary>
4481 <param name="port">Port to listen on. 80 can be a good idea =)</param> 4481 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
4482 <param name="certificate">Certificate to use</param> 4482 </member>
4483 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 4483 <member name="M:HttpServer.HttpFile.Finalize">
4484 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception> 4484 <summary>Destructor disposing the file</summary>
4485 </member> 4485 </member>
4486 <member name="M:HttpServer.HttpServer.Stop"> 4486 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
4487 <summary> 4487 <summary>
4488 shut down the server and listeners 4488 Deletes the temporary file
4489 </summary> 4489 </summary>
4490 </member> 4490 <param name="disposing">True if manual dispose</param>
4491 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)"> 4491 </member>
4492 <summary> 4492 <member name="M:HttpServer.HttpFile.Dispose">
4493 write an entry to the log file 4493 <summary>
4494 </summary> 4494 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
4495 <param name="prio">importance of the message</param> 4495 </summary>
4496 <param name="message">log message</param> 4496 </member>
4497 </member> 4497 <member name="P:HttpServer.HttpFile.Name">
4498 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)"> 4498 <summary>
4499 <summary> 4499 The name/id of the file
4500 write an entry to the log file 4500 </summary>
4501 </summary> 4501 </member>
4502 <param name="source">object that wrote the message</param> 4502 <member name="P:HttpServer.HttpFile.Filename">
4503 <param name="prio">importance of the message</param> 4503 <summary>
4504 <param name="message">log message</param> 4504 The full file path
4505 </member> 4505 </summary>
4506 <member name="P:HttpServer.HttpServer.Current"> 4506 </member>
4507 <summary> 4507 <member name="P:HttpServer.HttpFile.UploadFilename">
4508 Server that is handling the current request. 4508 <summary>
4509 </summary> 4509 The name of the uploaded file
4510 <remarks> 4510 </summary>
4511 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object. 4511 </member>
4512 </remarks> 4512 <member name="P:HttpServer.HttpFile.ContentType">
4513 </member> 4513 <summary>
4514 <member name="P:HttpServer.HttpServer.AuthenticationModules"> 4514 The type of file
4515 <summary> 4515 </summary>
4516 Modules used for authentication. The module that is is added first is used as 4516 </member>
4517 the default authentication module. 4517 <member name="T:HttpServer.Helpers.JSHelper">
4518 </summary> 4518 <summary>
4519 <remarks>Use the corresponding property 4519 Will contain helper functions for javascript.
4520 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks> 4520 </summary>
4521 </member> 4521 </member>
4522 <member name="P:HttpServer.HttpServer.FormDecoderProviders"> 4522 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])">
4523 <summary> 4523 <summary>
4524 Form decoder providers are used to decode request body (which normally contains form data). 4524 Requests a url through ajax
4525 </summary> 4525 </summary>
4526 </member> 4526 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
4527 <member name="P:HttpServer.HttpServer.ServerName"> 4527 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
4528 <summary> 4528 <returns>a link tag</returns>
4529 Server name sent in HTTP responses. 4529 <remarks>onclick attribute is used by this method.</remarks>
4530 </summary> 4530 <example>
4531 <remarks> 4531 <code>
4532 Do NOT include version in name, since it makes it 4532 // plain text
4533 easier for hackers. 4533 JSHelper.AjaxRequest("'/user/show/1'");
4534 </remarks> 4534
4535 </member> 4535 // ajax request using this.href
4536 <member name="P:HttpServer.HttpServer.SessionCookieName"> 4536 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
4537 <summary> 4537 </code>
4538 Name of cookie where session id is stored. 4538 </example>
4539 </summary> 4539 </member>
4540 </member> 4540 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])">
4541 <member name="P:HttpServer.HttpServer.LogWriter"> 4541 <summary>
4542 <summary> 4542 Ajax requests that updates an element with
4543 Specified where logging should go. 4543 the fetched content
4544 </summary> 4544 </summary>
4545 <seealso cref="T:HttpServer.NullLogWriter"/> 4545 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
4546 <seealso cref="T:HttpServer.ConsoleLogWriter"/> 4546 <param name="targetId">element to update</param>
4547 <seealso cref="P:HttpServer.HttpServer.LogWriter"/> 4547 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
4548 </member> 4548 <returns>A link tag.</returns>
4549 <member name="P:HttpServer.HttpServer.BackLog"> 4549 <example>
4550 <summary> 4550 <code>
4551 Number of connections that can wait to be accepted by the server. 4551 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
4552 </summary> 4552 </code>
4553 <remarks>Default is 10.</remarks> 4553 </example>
4554 </member> 4554 </member>
4555 <member name="P:HttpServer.HttpServer.MaxRequestCount"> 4555 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])">
4556 <summary> 4556 <summary>
4557 Gets or sets maximum number of allowed simultaneous requests. 4557 Opens contents in a dialog window.
4558 </summary> 4558 </summary>
4559 <remarks> 4559 <param name="url">url to contents of dialog</param>
4560 <para> 4560 <param name="title">link title</param>
4561 This property is useful in busy systems. The HTTP server 4561 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
4562 will start queuing new requests if this limit is hit, instead 4562 </member>
4563 of trying to process all incoming requests directly. 4563 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog">
4564 </para> 4564 <summary>
4565 <para> 4565 Close a javascript dialog window/div.
4566 The default number if allowed simultaneous requests are 10. 4566 </summary>
4567 </para> 4567 <returns>javascript for closing a dialog.</returns>
4568 </remarks> 4568 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
4569 </member> 4569 </member>
4570 <member name="P:HttpServer.HttpServer.MaxQueueSize"> 4570 <member name="T:HttpServer.HttpRequest">
4571 <summary> 4571 <summary>
4572 Gets or sets maximum number of requests queuing to be handled. 4572 Contains server side HTTP request information.
4573 </summary> 4573 </summary>
4574 <remarks> 4574 </member>
4575 <para> 4575 <member name="F:HttpServer.HttpRequest.UriSplitters">
4576 The WebServer will start turning requests away if response code 4576 <summary>
4577 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server 4577 Chars used to split an URL path into multiple parts.
4578 is too busy to be able to handle the request. 4578 </summary>
4579 </para> 4579 </member>
4580 </remarks> 4580 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)">
4581 </member> 4581 <summary>
4582 <member name="E:HttpServer.HttpServer.RealmWanted"> 4582 Assign a form.
4583 <summary> 4583 </summary>
4584 Realms are used during HTTP authentication. 4584 <param name="form"></param>
4585 Default realm is same as server name. 4585 </member>
4586 </summary> 4586 <member name="M:HttpServer.HttpRequest.Clone">
4587 </member> 4587 <summary>
4588 <member name="E:HttpServer.HttpServer.ExceptionThrown"> 4588 Creates a new object that is a copy of the current instance.
4589 <summary> 4589 </summary>
4590 Let's to receive unhandled exceptions from the threads. 4590
4591 </summary> 4591 <returns>
4592 <remarks> 4592 A new object that is a copy of this instance.
4593 Exceptions will be thrown during debug mode if this event is not used, 4593 </returns>
4594 exceptions will be printed to console and suppressed during release mode. 4594 <filterpriority>2</filterpriority>
4595 </remarks> 4595 </member>
4596 </member> 4596 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
4597 <member name="T:HttpServer.HttpModules.ResourceFileModule"> 4597 <summary>
4598 <summary> 4598 Decode body into a form.
4599 Serves files that are stored in embedded resources. 4599 </summary>
4600 </summary> 4600 <param name="providers">A list with form decoders.</param>
4601 </member> 4601 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
4602 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor"> 4602 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
4603 <summary> 4603 </member>
4604 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 4604 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)">
4605 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later 4605 <summary>
4606 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired. 4606 Cookies
4607 </summary> 4607 </summary>
4608 </member> 4608 <param name="cookies">the cookies</param>
4609 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)"> 4609 </member>
4610 <summary> 4610 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
4611 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 4611 <summary>
4612 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later 4612 Create a response object.
4613 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired. 4613 </summary>
4614 </summary> 4614 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
4615 <param name="logWriter">The log writer to use when logging events</param> 4615 </member>
4616 </member> 4616 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)">
4617 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"> 4617 <summary>
4618 <summary> 4618 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
4619 Mimtypes that this class can handle per default 4619 </summary>
4620 </summary> 4620 <param name="name">Name of the header, should not be URL encoded</param>
4621 </member> 4621 <param name="value">Value of the header, should not be URL encoded</param>
4622 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)"> 4622 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
4623 <summary> 4623 </member>
4624 Loads resources from a namespace in the given assembly to an uri 4624 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
4625 </summary> 4625 <summary>
4626 <param name="toUri">The uri to map the resources to</param> 4626 Add bytes to the body
4627 <param name="fromAssembly">The assembly in which the resources reside</param> 4627 </summary>
4628 <param name="fromNamespace">The namespace from which to load the resources</param> 4628 <param name="bytes">buffer to read bytes from</param>
4629 <usage> 4629 <param name="offset">where to start read</param>
4630 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 4630 <param name="length">number of bytes to read</param>
4631 4631 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
4632 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css 4632 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
4633 </usage> 4633 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
4634 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns> 4634 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
4635 </member> 4635 </member>
4636 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)"> 4636 <member name="M:HttpServer.HttpRequest.Clear">
4637 <summary> 4637 <summary>
4638 Returns true if the module can handle the request 4638 Clear everything in the request
4639 </summary> 4639 </summary>
4640 </member> 4640 </member>
4641 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 4641 <member name="P:HttpServer.HttpRequest.Secure">
4642 <summary> 4642 <summary>
4643 Method that process the url 4643 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure.
4644 </summary> 4644 </summary>
4645 <param name="request">Information sent by the browser about the request</param> 4645 </member>
4646 <param name="response">Information that is being sent back to the client.</param> 4646 <member name="P:HttpServer.HttpRequest.UriPath">
4647 <param name="session">Session used to </param> 4647 <summary>
4648 <returns>true if this module handled the request.</returns> 4648 Path and query (will be merged with the host header) and put in Uri
4649 </member> 4649 </summary>
4650 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"> 4650 <see cref="P:HttpServer.HttpRequest.Uri"/>
4651 <summary> 4651 </member>
4652 List with all mime-type that are allowed. 4652 <member name="P:HttpServer.HttpRequest.BodyIsComplete">
4653 </summary> 4653 <summary>
4654 <remarks>All other mime types will result in a Forbidden http status code.</remarks> 4654 Gets whether the body is complete.
4655 </member> 4655 </summary>
4656 <member name="T:HttpServer.Helpers.ResourceInfo"> 4656 </member>
4657 <summary> 4657 <member name="P:HttpServer.HttpRequest.AcceptTypes">
4658 Container to bind resource names to assemblies 4658 <summary>
4659 </summary> 4659 Gets kind of types accepted by the client.
4660 </member> 4660 </summary>
4661 <member name="M:HttpServer.Helpers.ResourceInfo.#ctor(System.String,System.String,System.Reflection.Assembly)"> 4661 </member>
4662 <summary> 4662 <member name="P:HttpServer.HttpRequest.Body">
4663 Instantiates an instance of <see cref="T:HttpServer.Helpers.ResourceInfo"/> 4663 <summary>
4664 </summary> 4664 Gets or sets body stream.
4665 <param name="uri">The dot seperated uri the resource maps to</param> 4665 </summary>
4666 <param name="resourceName">The full resource name</param> 4666 </member>
4667 <param name="assembly">The assembly the resource exists in</param> 4667 <member name="P:HttpServer.HttpRequest.Connection">
4668 </member> 4668 <summary>
4669 <member name="M:HttpServer.Helpers.ResourceInfo.GetStream"> 4669 Gets or sets kind of connection used for the session.
4670 <summary> 4670 </summary>
4671 Retrieves a stream to the resource 4671 </member>
4672 </summary> 4672 <member name="P:HttpServer.HttpRequest.ContentLength">
4673 <returns>Null if the resource couldn't be located somehow</returns> 4673 <summary>
4674 </member> 4674 Gets or sets number of bytes in the body.
4675 <member name="P:HttpServer.Helpers.ResourceInfo.Assembly"> 4675 </summary>
4676 <summary> 4676 </member>
4677 Retrieves the assembly the resource resides in 4677 <member name="P:HttpServer.HttpRequest.Headers">
4678 </summary> 4678 <summary>
4679 </member> 4679 Gets headers sent by the client.
4680 <member name="P:HttpServer.Helpers.ResourceInfo.Uri"> 4680 </summary>
4681 <summary> 4681 </member>
4682 Retrieves the full name/path of the assembly 4682 <member name="P:HttpServer.HttpRequest.HttpVersion">
4683 </summary> 4683 <summary>
4684 </member> 4684 Gets or sets version of HTTP protocol that's used.
4685 <member name="P:HttpServer.Helpers.ResourceInfo.Extension"> 4685 </summary>
4686 <summary> 4686 <remarks>
4687 Retrieves the extension of the resource 4687 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
4688 </summary> 4688 </remarks>
4689 </member> 4689 <seealso cref="T:HttpServer.HttpHelper"/>
4690 <member name="P:HttpServer.Helpers.ResourceInfo.ExtensionLessUri"> 4690 </member>
4691 <summary>Returns the Uri without extension</summary> 4691 <member name="P:HttpServer.HttpRequest.Method">
4692 </member> 4692 <summary>
4693 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName"> 4693 Gets or sets requested method.
4694 <summary>Retrieves the full path name to the resource file</summary> 4694 </summary>
4695 </member> 4695 <value></value>
4696 <member name="T:HttpServer.Helpers.FormHelper"> 4696 <remarks>
4697 <summary> 4697 Will always be in upper case.
4698 Helpers making it easier to work with forms. 4698 </remarks>
4699 </summary> 4699 <see cref="!:HttpServer.Method"/>
4700 <seealso cref="T:HttpServer.Helpers.ObjectForm"/> 4700 </member>
4701 </member> 4701 <member name="P:HttpServer.HttpRequest.QueryString">
4702 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation"> 4702 <summary>
4703 <summary> 4703 Gets variables sent in the query string
4704 Used to let the website use different JavaScript libraries. 4704 </summary>
4705 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/> 4705 </member>
4706 </summary> 4706 <member name="P:HttpServer.HttpRequest.Uri">
4707 </member> 4707 <summary>
4708 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])"> 4708 Gets or sets requested URI.
4709 <summary> 4709 </summary>
4710 Create a &lt;form&gt; tag. 4710 </member>
4711 </summary> 4711 <member name="P:HttpServer.HttpRequest.UriParts">
4712 <param name="id">name of form</param> 4712 <summary>
4713 <param name="action">action to invoke on submit</param> 4713 Uri absolute path splitted into parts.
4714 <param name="isAjax">form should be posted as Ajax</param> 4714 </summary>
4715 <returns>HTML code</returns> 4715 <example>
4716 <example> 4716 // uri is: http://gauffin.com/code/tiny/
4717 <code> 4717 Console.WriteLine(request.UriParts[0]); // result: code
4718 // without options 4718 Console.WriteLine(request.UriParts[1]); // result: tiny
4719 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); 4719 </example>
4720 4720 <remarks>
4721 // with options 4721 If you're using controllers than the first part is controller name,
4722 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm"); 4722 the second part is method name and the third part is Id property.
4723 </code> 4723 </remarks>
4724 </example> 4724 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
4725 <param name="options">HTML attributes or JavaScript options.</param> 4725 </member>
4726 <remarks>Method will ALWAYS be POST.</remarks> 4726 <member name="P:HttpServer.HttpRequest.Param">
4727 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception> 4727 <summary>
4728 </member> 4728 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>.
4729 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4729 </summary>
4730 <summary> 4730 </member>
4731 Creates a select list with the values in a collection. 4731 <member name="P:HttpServer.HttpRequest.Form">
4732 </summary> 4732 <summary>
4733 <param name="name">Name of the SELECT-tag</param> 4733 Gets form parameters.
4734 <param name="collection">collection used to generate options.</param> 4734 </summary>
4735 <param name="getIdTitle">delegate used to return id and title from objects.</param> 4735 </member>
4736 <param name="selectedValue">value that should be marked as selected.</param> 4736 <member name="P:HttpServer.HttpRequest.IsAjax">
4737 <param name="firstEmpty">First row should contain an empty value.</param> 4737 <summary>
4738 <returns>string containing a SELECT-tag.</returns> 4738 Gets whether the request was made by Ajax (Asynchronous JavaScript)
4739 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/> 4739 </summary>
4740 </member> 4740 </member>
4741 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4741 <member name="P:HttpServer.HttpRequest.Cookies">
4742 <summary> 4742 <summary>
4743 Creates a select list with the values in a collection. 4743 Gets cookies that was sent with the request.
4744 </summary> 4744 </summary>
4745 <param name="name">Name of the SELECT-tag</param> 4745 </member>
4746 <param name="id">Id of the SELECT-tag</param> 4746 <member name="T:HttpServer.HttpModules.WebSiteModule">
4747 <param name="collection">collection used to generate options.</param> 4747 <summary>
4748 <param name="getIdTitle">delegate used to return id and title from objects.</param> 4748 The website module let's you handle multiple websites in the same server.
4749 <param name="selectedValue">value that should be marked as selected.</param> 4749 It uses the "Host" header to check which site you want.
4750 <param name="firstEmpty">First row should contain an empty value.</param> 4750 </summary>
4751 <returns>string containing a SELECT-tag.</returns> 4751 <remarks>It's recommended that you do not
4752 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/> 4752 add any other modules to HttpServer if you are using the website module. Instead,
4753 <example> 4753 add all wanted modules to each website.</remarks>
4754 <code> 4754 </member>
4755 // Class that is going to be used in a SELECT-tag. 4755 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
4756 public class User 4756 <summary>
4757 { 4757
4758 private readonly string _realName; 4758 </summary>
4759 private readonly int _id; 4759 <param name="host">domain name that should be handled.</param>
4760 public User(int id, string realName) 4760 <param name="name"></param>
4761 { 4761 </member>
4762 _id = id; 4762 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
4763 _realName = realName; 4763 <summary>
4764 } 4764 Method that process the url
4765 public string RealName 4765 </summary>
4766 { 4766 <param name="request">Information sent by the browser about the request</param>
4767 get { return _realName; } 4767 <param name="response">Information that is being sent back to the client.</param>
4768 } 4768 <param name="session">Session used to </param>
4769 4769 </member>
4770 public int Id 4770 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
4771 { 4771 <summary>
4772 get { return _id; } 4772 Name of site.
4773 } 4773 </summary>
4774 } 4774 </member>
4775 4775 <member name="T:HttpServer.Helpers.ResourceInfo">
4776 // Using an inline delegate to generate the select list 4776 <summary>
4777 public void UserInlineDelegate() 4777 Container to bind resource names to assemblies
4778 { 4778 </summary>
4779 List&lt;User&gt; items = new List&lt;User&gt;(); 4779 </member>
4780 items.Add(new User(1, "adam")); 4780 <member name="M:HttpServer.Helpers.ResourceInfo.#ctor(System.String,System.String,System.Reflection.Assembly)">
4781 items.Add(new User(2, "bertial")); 4781 <summary>
4782 items.Add(new User(3, "david")); 4782 Instantiates an instance of <see cref="T:HttpServer.Helpers.ResourceInfo"/>
4783 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) 4783 </summary>
4784 { 4784 <param name="uri">The dot seperated uri the resource maps to</param>
4785 User user = (User)o; 4785 <param name="resourceName">The full resource name</param>
4786 id = user.Id; 4786 <param name="assembly">The assembly the resource exists in</param>
4787 value = user.RealName; 4787 </member>
4788 }, 2, true); 4788 <member name="M:HttpServer.Helpers.ResourceInfo.GetStream">
4789 } 4789 <summary>
4790 4790 Retrieves a stream to the resource
4791 // Using an method as delegate to generate the select list. 4791 </summary>
4792 public void UseExternalDelegate() 4792 <returns>Null if the resource couldn't be located somehow</returns>
4793 { 4793 </member>
4794 List&lt;User&gt; items = new List&lt;User&gt;(); 4794 <member name="P:HttpServer.Helpers.ResourceInfo.Assembly">
4795 items.Add(new User(1, "adam")); 4795 <summary>
4796 items.Add(new User(2, "bertial")); 4796 Retrieves the assembly the resource resides in
4797 items.Add(new User(3, "david")); 4797 </summary>
4798 string htmlSelect = Select("users", "users", items, UserOptions, 1, true); 4798 </member>
4799 } 4799 <member name="P:HttpServer.Helpers.ResourceInfo.Uri">
4800 4800 <summary>
4801 // delegate returning id and title 4801 Retrieves the full name/path of the assembly
4802 public static void UserOptions(object o, out object id, out object title) 4802 </summary>
4803 { 4803 </member>
4804 User user = (User)o; 4804 <member name="P:HttpServer.Helpers.ResourceInfo.Extension">
4805 id = user.Id; 4805 <summary>
4806 value = user.RealName; 4806 Retrieves the extension of the resource
4807 } 4807 </summary>
4808 </code> 4808 </member>
4809 </example> 4809 <member name="P:HttpServer.Helpers.ResourceInfo.ExtensionLessUri">
4810 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception> 4810 <summary>Returns the Uri without extension</summary>
4811 </member> 4811 </member>
4812 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])"> 4812 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
4813 <summary> 4813 <summary>Retrieves the full path name to the resource file</summary>
4814 Creates a select list with the values in a collection. 4814 </member>
4815 </summary> 4815 <member name="T:HttpServer.RequestParserFactory">
4816 <param name="name">Name of the SELECT-tag</param> 4816 <summary>
4817 <param name="id">Id of the SELECT-tag</param> 4817 Creates request parsers when needed.
4818 <param name="collection">collection used to generate options.</param> 4818 </summary>
4819 <param name="getIdTitle">delegate used to return id and title from objects.</param> 4819 </member>
4820 <param name="selectedValue">value that should be marked as selected.</param> 4820 <member name="T:HttpServer.IRequestParserFactory">
4821 <param name="firstEmpty">First row should contain an empty value.</param> 4821 <summary>
4822 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param> 4822 Creates request parsers when needed.
4823 <returns>string containing a SELECT-tag.</returns> 4823 </summary>
4824 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/> 4824 </member>
4825 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception> 4825 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
4826 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception> 4826 <summary>
4827 </member> 4827 Create a new request parser.
4828 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4828 </summary>
4829 <summary> 4829 <param name="logWriter">Used when logging should be enabled.</param>
4830 Generate a list of HTML options 4830 <returns>A new request parser.</returns>
4831 </summary> 4831 </member>
4832 <param name="collection">collection used to generate options.</param> 4832 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
4833 <param name="getIdTitle">delegate used to return id and title from objects.</param> 4833 <summary>
4834 <param name="selectedValue">value that should be marked as selected.</param> 4834 Create a new request parser.
4835 <param name="firstEmpty">First row should contain an empty value.</param> 4835 </summary>
4836 <returns></returns> 4836 <param name="logWriter">Used when logging should be enabled.</param>
4837 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception> 4837 <returns>A new request parser.</returns>
4838 </member> 4838 </member>
4839 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4839 <member name="T:HttpServer.Authentication.BasicAuthentication">
4840 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception> 4840 <summary>
4841 </member> 4841 The "basic" authentication scheme is based on the model that the
4842 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])"> 4842 client must authenticate itself with a user-ID and a password for
4843 <summary> 4843 each realm. The realm value should be considered an opaque string
4844 Creates a check box. 4844 which can only be compared for equality with other realms on that
4845 </summary> 4845 server. The server will service the request only if it can validate
4846 <param name="name">element name</param> 4846 the user-ID and password for the protection space of the Request-URI.
4847 <param name="value">element value</param> 4847 There are no optional authentication parameters.
4848 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the 4848 </summary>
4849 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 4849 </member>
4850 the box is checked or not. </param> 4850 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
4851 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 4851 <summary>
4852 <returns>a generated radio button</returns> 4852 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
4853 </member> 4853 </summary>
4854 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])"> 4854 <param name="authenticator">Delegate used to provide information used during authentication.</param>
4855 <summary> 4855 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
4856 Creates a check box. 4856 </member>
4857 </summary> 4857 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
4858 <param name="name">element name</param> 4858 <summary>
4859 <param name="id">element id</param> 4859 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
4860 <param name="value">element value</param> 4860 </summary>
4861 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the 4861 <param name="authenticator">Delegate used to provide information used during authentication.</param>
4862 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 4862 </member>
4863 the box is checked or not. </param> 4863 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])">
4864 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 4864 <summary>
4865 <returns>a generated radio button</returns> 4865 Create a response that can be sent in the WWW-Authenticate header.
4866 <remarks> 4866 </summary>
4867 value in your business object. (check box will be selected if it matches the element value) 4867 <param name="realm">Realm that the user should authenticate in</param>
4868 </remarks> 4868 <param name="options">Not used in basic auth</param>
4869 </member> 4869 <returns>A correct auth request.</returns>
4870 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])"> 4870 </member>
4871 <summary> 4871 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
4872 Creates a check box. 4872 <summary>
4873 </summary> 4873 An authentication response have been received from the web browser.
4874 <param name="name">element name</param> 4874 Check if it's correct
4875 <param name="id">element id</param> 4875 </summary>
4876 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the 4876 <param name="authenticationHeader">Contents from the Authorization header</param>
4877 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 4877 <param name="realm">Realm that should be authenticated</param>
4878 the box is checked or not. </param> 4878 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
4879 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 4879 <param name="options">Not used in basic auth</param>
4880 <returns>a generated radio button</returns> 4880 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
4881 <remarks>will set value to "1".</remarks> 4881 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
4882 </member> 4882 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
4883 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])"> 4883 </member>
4884 <summary> 4884 <member name="P:HttpServer.Authentication.BasicAuthentication.Name">
4885 Creates a RadioButton. 4885 <summary>
4886 </summary> 4886 name used in http request.
4887 <param name="name">element name</param> 4887 </summary>
4888 <param name="value">element value</param> 4888 </member>
4889 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the 4889 <member name="T:HttpServer.RequestParserState">
4890 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 4890 <summary>
4891 the box is checked or not. </param> 4891 Current state in the parsing.
4892 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 4892 </summary>
4893 <returns>a generated radio button</returns> 4893 </member>
4894 </member> 4894 <member name="F:HttpServer.RequestParserState.FirstLine">
4895 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])"> 4895 <summary>
4896 <summary> 4896 Should parse the request line
4897 Creates a RadioButton. 4897 </summary>
4898 </summary> 4898 </member>
4899 <param name="name">element name</param> 4899 <member name="F:HttpServer.RequestParserState.HeaderName">
4900 <param name="id">element id</param> 4900 <summary>
4901 <param name="value">element value</param> 4901 Searching for a complete header name
4902 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the 4902 </summary>
4903 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 4903 </member>
4904 the box is checked or not. </param> 4904 <member name="F:HttpServer.RequestParserState.AfterName">
4905 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 4905 <summary>
4906 <returns>a generated radio button</returns> 4906 Searching for colon after header name (ignoring white spaces)
4907 </member> 4907 </summary>
4908 <member name="M:HttpServer.Helpers.FormHelper.End"> 4908 </member>
4909 <summary> 4909 <member name="F:HttpServer.RequestParserState.Between">
4910 form close tag 4910 <summary>
4911 </summary> 4911 Searching for start of header value (ignoring white spaces)
4912 <returns></returns> 4912 </summary>
4913 </member> 4913 </member>
4914 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)"> 4914 <member name="F:HttpServer.RequestParserState.HeaderValue">
4915 <summary> 4915 <summary>
4916 Add a component instance 4916 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
4917 </summary> 4917 </summary>
4918 <typeparam name="T">Interface type</typeparam> 4918 </member>
4919 <param name="instance">Instance to add</param> 4919 <member name="F:HttpServer.RequestParserState.Body">
4920 </member> 4920 <summary>
4921 <member name="M:HttpServer.ComponentProvider.Get``1"> 4921 Adding bytes to body
4922 <summary> 4922 </summary>
4923 Get a component. 4923 </member>
4924 </summary> 4924 <member name="T:HttpServer.FormDecoders.XmlDecoder">
4925 <typeparam name="T">Interface type</typeparam> 4925 <summary>
4926 <returns>Component if registered, otherwise null.</returns> 4926 This decoder converts XML documents to form items.
4927 <remarks> 4927 Each element becomes a subitem in the form, and each attribute becomes an item.
4928 Component will get created if needed. 4928 </summary>
4929 </remarks> 4929 <example>
4930 </member> 4930 // xml: <hello id="1">something<world id="2">data</world></hello>
4931 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)"> 4931 // result:
4932 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception> 4932 // form["hello"].Value = "something"
4933 </member> 4933 // form["hello"]["id"].Value = 1
4934 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)"> 4934 // form["hello"]["world]["id"].Value = 1
4935 <summary> 4935 // form["hello"]["world"].Value = "data"
4936 Checks if the specified component interface have been added. 4936 </example>
4937 </summary> 4937 <remarks>
4938 <param name="interfaceType"></param> 4938 The original xml document is stored in form["__xml__"].Value.
4939 <returns>true if found; otherwise false.</returns> 4939 </remarks>
4940 </member> 4940 </member>
4941 <member name="M:HttpServer.ComponentProvider.Add``2"> 4941 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
4942 <summary> 4942 <summary>
4943 Add a component. 4943
4944 </summary> 4944 </summary>
4945 <typeparam name="InterfaceType">Type being requested.</typeparam> 4945 <param name="stream">Stream containing the content</param>
4946 <typeparam name="InstanceType">Type being created.</typeparam> 4946 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
4947 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception> 4947 <param name="encoding">Stream encoding</param>
4948 </member> 4948 Note: contentType and encoding are not used?
4949 <member name="T:HttpServer.Sessions.MemorySessionStore"> 4949 <returns>A http form, or null if content could not be parsed.</returns>
4950 <summary> 4950 <exception cref="T:System.IO.InvalidDataException"></exception>
4951 Session store using memory for each session. 4951 </member>
4952 </summary> 4952 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
4953 </member> 4953 <summary>
4954 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor"> 4954 Recursive function that will go through an xml element and store it's content
4955 <summary> 4955 to the form item.
4956 Initializes the class setting the expirationtimer to clean the session every minute 4956 </summary>
4957 </summary> 4957 <param name="item">(parent) Item in form that content should be added to.</param>
4958 </member> 4958 <param name="node">Node that should be parsed.</param>
4959 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)"> 4959 </member>
4960 <summary> 4960 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
4961 Delegate for the cleanup timer 4961 <summary>
4962 </summary> 4962 Checks if the decoder can handle the mime type
4963 </member> 4963 </summary>
4964 <member name="M:HttpServer.Sessions.MemorySessionStore.Create"> 4964 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
4965 <summary> 4965 <returns>True if the decoder can parse the specified content type</returns>
4966 Creates a new http session 4966 </member>
4967 </summary> 4967 <member name="T:HttpServer.ResponseCookies">
4968 <returns></returns> 4968 <summary>
4969 </member> 4969 Cookies that should be set.
4970 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)"> 4970 </summary>
4971 <summary> 4971 </member>
4972 Creates a new http session with a specific id 4972 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
4973 </summary> 4973 <summary>
4974 <param name="id">Id used to identify the new cookie..</param> 4974 Adds a cookie in the collection.
4975 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns> 4975 </summary>
4976 <remarks> 4976 <param name="cookie">cookie to add</param>
4977 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>. 4977 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
4978 </remarks> 4978 </member>
4979 </member> 4979 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)">
4980 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)"> 4980 <summary>
4981 <summary> 4981 Copy a request cookie
4982 Load an existing session. 4982 </summary>
4983 </summary> 4983 <param name="cookie"></param>
4984 <param name="sessionId"></param> 4984 <param name="expires">When the cookie should expire</param>
4985 <returns></returns> 4985 </member>
4986 </member> 4986 <member name="M:HttpServer.ResponseCookies.GetEnumerator">
4987 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)"> 4987 <summary>
4988 <summary> 4988 Gets a collection enumerator on the cookie list.
4989 Save an updated session to the store. 4989 </summary>
4990 </summary> 4990 <returns>collection enumerator</returns>
4991 <param name="session"></param> 4991 </member>
4992 </member> 4992 <member name="M:HttpServer.ResponseCookies.Clear">
4993 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 4993 <summary>
4994 <summary> 4994 Remove all cookies
4995 We use the flyweight pattern which reuses small objects 4995 </summary>
4996 instead of creating new each time. 4996 </member>
4997 </summary> 4997 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator">
4998 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param> 4998 <summary>
4999 </member> 4999 Returns an enumerator that iterates through the collection.
5000 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup"> 5000 </summary>
5001 <summary> 5001
5002 Remove expired sessions 5002 <returns>
5003 </summary> 5003 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
5004 </member> 5004 </returns>
5005 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)"> 5005 <filterpriority>1</filterpriority>
5006 <summary> 5006 </member>
5007 Remove a session 5007 <member name="P:HttpServer.ResponseCookies.Count">
5008 </summary> 5008 <summary>
5009 <param name="sessionId">id of the session.</param> 5009 Gets the count of cookies in the collection.
5010 </member> 5010 </summary>
5011 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)"> 5011 </member>
5012 <summary> 5012 <member name="P:HttpServer.ResponseCookies.Item(System.String)">
5013 Load a session from the store 5013 <summary>
5014 </summary> 5014 Gets the cookie of a given identifier (null if not existing).
5015 <param name="sessionId"></param> 5015 </summary>
5016 <returns>null if session is not found.</returns> 5016 </member>
5017 </member> 5017 <member name="T:HttpServer.RequestCookies">
5018 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime"> 5018 <summary>
5019 <summary> 5019 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
5020 Number of minutes before a session expires. 5020 The framework might switch class in the future and we dont want to have to replace all instances
5021 Default is 20 minutes. 5021 </summary>
5022 </summary> 5022 </member>
5023 </member> 5023 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
5024 <member name="T:HttpServer.RequestQueue"> 5024 <summary>
5025 <summary> 5025 Let's copy all the cookies.
5026 Used to queue incoming requests. 5026 </summary>
5027 </summary> 5027 <param name="cookies">value from cookie header.</param>
5028 </member> 5028 </member>
5029 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)"> 5029 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
5030 <summary> 5030 <summary>
5031 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class. 5031 Adds a cookie in the collection.
5032 </summary> 5032 </summary>
5033 <param name="handler">Called when a request should be processed.</param> 5033 <param name="cookie">cookie to add</param>
5034 </member> 5034 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
5035 <member name="M:HttpServer.RequestQueue.QueueThread"> 5035 </member>
5036 <summary> 5036 <member name="M:HttpServer.RequestCookies.GetEnumerator">
5037 Used to process queued requests. 5037 <summary>
5038 </summary> 5038 Gets a collection enumerator on the cookie list.
5039 </member> 5039 </summary>
5040 <member name="P:HttpServer.RequestQueue.MaxRequestCount"> 5040 <returns>collection enumerator</returns>
5041 <summary> 5041 </member>
5042 Gets or sets maximum number of allowed simultaneous requests. 5042 <member name="M:HttpServer.RequestCookies.Clear">
5043 </summary> 5043 <summary>
5044 </member> 5044 Remove all cookies.
5045 <member name="P:HttpServer.RequestQueue.MaxQueueSize"> 5045 </summary>
5046 <summary> 5046 </member>
5047 Gets or sets maximum number of requests queuing to be handled. 5047 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
5048 </summary> 5048 <summary>
5049 </member> 5049 Returns an enumerator that iterates through the collection.
5050 <member name="P:HttpServer.RequestQueue.CurrentRequestCount"> 5050 </summary>
5051 <summary> 5051
5052 Specifies how many requests the HTTP server is currently processing. 5052 <returns>
5053 </summary> 5053 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
5054 </member> 5054 </returns>
5055 <member name="T:HttpServer.RequestQueue.QueueItem"> 5055 <filterpriority>1</filterpriority>
5056 <summary> 5056 </member>
5057 Used two queue incoming requests to avoid 5057 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
5058 thread starvation. 5058 <summary>
5059 </summary> 5059 Remove a cookie from the collection.
5060 </member> 5060 </summary>
5061 <member name="T:HttpServer.ProcessRequestHandler"> 5061 <param name="cookieName">Name of cookie.</param>
5062 <summary> 5062 </member>
5063 Method used to process a queued request 5063 <member name="P:HttpServer.RequestCookies.Count">
5064 </summary> 5064 <summary>
5065 <param name="context">Context that the request was received from.</param> 5065 Gets the count of cookies in the collection.
5066 <param name="request">Request to process.</param> 5066 </summary>
5067 </member> 5067 </member>
5068 <member name="T:HttpServer.HttpResponse"> 5068 <member name="P:HttpServer.RequestCookies.Item(System.String)">
5069 <summary> 5069 <summary>
5070 Response that is sent back to the web browser / client. 5070 Gets the cookie of a given identifier (null if not existing).
5071 </summary> 5071 </summary>
5072 <remarks> 5072 </member>
5073 <para> 5073 <member name="T:HttpServer.HttpListener">
5074 A response can be sent if different ways. The easiest one is 5074 <summary>
5075 to just fill the Body stream with content, everything else 5075 New implementation of the HTTP listener.
5076 will then be taken care of by the framework. The default content-type 5076 </summary>
5077 is text/html, you should change it if you send anything else. 5077 <remarks>
5078 </para><para> 5078 Use the <c>Create</c> methods to create a default listener.
5079 The second and slightly more complex way is to send the response 5079 </remarks>
5080 as parts. Start with sending the header using the SendHeaders method and 5080 </member>
5081 then you can send the body using SendBody method, but do not forget 5081 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
5082 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so. 5082 <summary>
5083 </para> 5083 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
5084 </remarks> 5084 </summary>
5085 <example> 5085 <param name="address">IP Address to accept connections on</param>
5086 <code> 5086 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
5087 // Example using response body. 5087 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
5088 class MyModule : HttpModule 5088 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
5089 { 5089 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
5090 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session) 5090 </member>
5091 { 5091 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
5092 StreamWriter writer = new StreamWriter(response.Body); 5092 <summary>
5093 writer.WriteLine("Hello dear World!"); 5093 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
5094 writer.Flush(); 5094 </summary>
5095 5095 <param name="address">The address.</param>
5096 // return true to tell webserver that we've handled the url 5096 <param name="port">The port.</param>
5097 return true; 5097 <param name="factory">The factory.</param>
5098 } 5098 <param name="certificate">The certificate.</param>
5099 } 5099 </member>
5100 </code> 5100 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
5101 </example> 5101 <summary>
5102 todo: add two examples, using SendHeaders/SendBody and just the Body stream. 5102 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
5103 </member> 5103 </summary>
5104 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 5104 <param name="address">The address.</param>
5105 <summary> 5105 <param name="port">The port.</param>
5106 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 5106 <param name="factory">The factory.</param>
5107 </summary> 5107 <param name="certificate">The certificate.</param>
5108 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param> 5108 <param name="protocol">The protocol.</param>
5109 <param name="request">Contains information of what the client want to receive.</param> 5109 </member>
5110 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception> 5110 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)">
5111 </member> 5111 <summary>
5112 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)"> 5112 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
5113 <summary> 5113 </summary>
5114 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 5114 <param name="address">Address that the listener should accept connections on.</param>
5115 </summary> 5115 <param name="port">Port that listener should accept connections on.</param>
5116 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param> 5116 <returns>Created HTTP listener.</returns>
5117 <param name="httpVersion">Version of HTTP protocol that the client uses.</param> 5117 </member>
5118 <param name="connectionType">Type of HTTP connection used.</param> 5118 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
5119 </member> 5119 <summary>
5120 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"> 5120 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
5121 <summary> 5121 </summary>
5122 Add another header to the document. 5122 <param name="address">Address that the listener should accept connections on.</param>
5123 </summary> 5123 <param name="port">Port that listener should accept connections on.</param>
5124 <param name="name">Name of the header, case sensitive, use lower cases.</param> 5124 <param name="certificate">Certificate to use</param>
5125 <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> 5125 <returns>Created HTTP listener.</returns>
5126 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 5126 </member>
5127 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception> 5127 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
5128 <remarks>Adding any header will override the default ones and those specified by properties.</remarks> 5128 <summary>
5129 </member> 5129 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
5130 <member name="M:HttpServer.HttpResponse.Send"> 5130 </summary>
5131 <summary> 5131 <param name="address">Address that the listener should accept connections on.</param>
5132 Send headers and body to the browser. 5132 <param name="port">Port that listener should accept connections on.</param>
5133 </summary> 5133 <param name="certificate">Certificate to use</param>
5134 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception> 5134 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
5135 </member> 5135 <returns>Created HTTP listener.</returns>
5136 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)"> 5136 </member>
5137 <summary> 5137 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)">
5138 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first. 5138 <summary>
5139 </summary> 5139 Can be used to create filtering of new connections.
5140 <param name="buffer"></param> 5140 </summary>
5141 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 5141 <param name="socket">Accepted socket</param>
5142 <see cref="M:HttpServer.HttpResponse.SendHeaders"/> 5142 <returns>
5143 <param name="offset">offset of first byte to send</param> 5143 true if connection can be accepted; otherwise false.
5144 <param name="count">number of bytes to send.</param> 5144 </returns>
5145 <seealso cref="M:HttpServer.HttpResponse.Send"/> 5145 </member>
5146 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/> 5146 <member name="E:HttpServer.HttpListener.Accepted">
5147 <remarks>This method can be used if you want to send body contents without caching them first. This 5147 <summary>
5148 is recommended for larger files to keep the memory usage low.</remarks> 5148 A client have been accepted, but not handled, by the listener.
5149 </member> 5149 </summary>
5150 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])"> 5150 </member>
5151 <summary> 5151 <member name="T:HttpServer.HttpHelper">
5152 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first. 5152 <summary>
5153 </summary> 5153 Generic helper functions for HTTP
5154 <param name="buffer"></param> 5154 </summary>
5155 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 5155 </member>
5156 <see cref="M:HttpServer.HttpResponse.SendHeaders"/> 5156 <member name="F:HttpServer.HttpHelper.HTTP10">
5157 <seealso cref="M:HttpServer.HttpResponse.Send"/> 5157 <summary>
5158 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/> 5158 Version string for HTTP v1.0
5159 <remarks>This method can be used if you want to send body contents without caching them first. This 5159 </summary>
5160 is recommended for larger files to keep the memory usage low.</remarks> 5160 </member>
5161 </member> 5161 <member name="F:HttpServer.HttpHelper.HTTP11">
5162 <member name="M:HttpServer.HttpResponse.SendHeaders"> 5162 <summary>
5163 <summary> 5163 Version string for HTTP v1.1
5164 Send headers to the client. 5164 </summary>
5165 </summary> 5165 </member>
5166 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 5166 <member name="F:HttpServer.HttpHelper.EmptyUri">
5167 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/> 5167 <summary>
5168 <seealso cref="M:HttpServer.HttpResponse.Send"/> 5168 An empty URI
5169 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/> 5169 </summary>
5170 </member> 5170 </member>
5171 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)"> 5171 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)">
5172 <summary> 5172 <summary>
5173 Redirect client to somewhere else using the 302 status code. 5173 Parses a query string.
5174 </summary> 5174 </summary>
5175 <param name="uri">Destination of the redirect</param> 5175 <param name="queryString">Query string (URI encoded)</param>
5176 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 5176 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
5177 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last 5177 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
5178 action.</remarks> 5178 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
5179 </member> 5179 </member>
5180 <member name="M:HttpServer.HttpResponse.Redirect(System.String)"> 5180 <member name="T:HttpServer.HttpModules.ReverseProxyModule">
5181 <summary> 5181 <summary>
5182 redirect to somewhere 5182 A reverse proxy are used to act as a bridge between local (protected/hidden) websites
5183 </summary> 5183 and public clients.
5184 <param name="url">where the redirect should go</param> 5184
5185 <remarks> 5185 A typical usage is to allow web servers on non standard ports to still be available
5186 No body are allowed when doing redirects. 5186 to the public clients, or allow web servers on private ips to be available.
5187 </remarks> 5187 </summary>
5188 </member> 5188 </member>
5189 <member name="P:HttpServer.HttpResponse.Body"> 5189 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)">
5190 <summary> 5190 <summary>
5191 The body stream is used to cache the body contents 5191
5192 before sending everything to the client. It's the simplest 5192 </summary>
5193 way to serve documents. 5193 <param name="source">Base url requested from browser</param>
5194 </summary> 5194 <param name="destination">Base url on private web server</param>
5195 </member> 5195 <example>
5196 <member name="P:HttpServer.HttpResponse.Chunked"> 5196 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
5197 <summary> 5197 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
5198 The chunked encoding modifies the body of a message in order to 5198 </example>
5199 transfer it as a series of chunks, each with its own size indicator, 5199 </member>
5200 followed by an OPTIONAL trailer containing entity-header fields. This 5200 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)">
5201 allows dynamically produced content to be transferred along with the 5201 <summary>
5202 information necessary for the recipient to verify that it has 5202 Method that determines if an url should be handled or not by the module
5203 received the full message. 5203 </summary>
5204 </summary> 5204 <param name="uri">Url requested by the client.</param>
5205 </member> 5205 <returns>true if module should handle the url.</returns>
5206 <member name="P:HttpServer.HttpResponse.ProtocolVersion"> 5206 </member>
5207 <summary> 5207 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
5208 Defines the version of the HTTP Response for applications where it's required 5208 <summary>
5209 for this to be forced. 5209 Method that process the url
5210 </summary> 5210 </summary>
5211 </member> 5211 <param name="request">Information sent by the browser about the request</param>
5212 <member name="P:HttpServer.HttpResponse.Connection"> 5212 <param name="response">Information that is being sent back to the client.</param>
5213 <summary> 5213 <param name="session">Session used to </param>
5214 Kind of connection 5214 </member>
5215 </summary> 5215 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs">
5216 </member> 5216 <summary>
5217 <member name="P:HttpServer.HttpResponse.Encoding"> 5217 Used to inform http server that
5218 <summary> 5218 </summary>
5219 Encoding to use when sending stuff to the client. 5219 </member>
5220 </summary> 5220 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)">
5221 <remarks>Default is UTF8</remarks> 5221 <summary>
5222 </member> 5222 Eventarguments used when an exception is thrown by a module
5223 <member name="P:HttpServer.HttpResponse.KeepAlive"> 5223 </summary>
5224 <summary> 5224 <param name="e">the exception</param>
5225 Number of seconds to keep connection alive 5225 </member>
5226 </summary> 5226 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception">
5227 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks> 5227 <summary>
5228 </member> 5228 Exception thrown in a module
5229 <member name="P:HttpServer.HttpResponse.Status"> 5229 </summary>
5230 <summary> 5230 </member>
5231 Status code that is sent to the client. 5231 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
5232 </summary> 5232 <summary>
5233 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks> 5233 PrototypeJS implementation of the javascript functions.
5234 </member> 5234 </summary>
5235 <member name="P:HttpServer.HttpResponse.Reason"> 5235 </member>
5236 <summary> 5236 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
5237 Information about why a specific status code was used. 5237 <summary>
5238 </summary> 5238 Requests a url through ajax
5239 </member> 5239 </summary>
5240 <member name="P:HttpServer.HttpResponse.ContentLength"> 5240 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5241 <summary> 5241 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
5242 Size of the body. MUST be specified before sending the header, 5242 <returns>a link tag</returns>
5243 unless property Chunked is set to true. 5243 <remarks>onclick attribute is used by this method.</remarks>
5244 </summary> 5244 <example>
5245 </member> 5245 <code>
5246 <member name="P:HttpServer.HttpResponse.ContentType"> 5246 // plain text
5247 <summary> 5247 JSHelper.AjaxRequest("'/user/show/1'");
5248 Kind of content in the body 5248
5249 </summary> 5249 // ajax request using this.href
5250 <remarks>Default type is "text/html"</remarks> 5250 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
5251 </member> 5251 </code>
5252 <member name="P:HttpServer.HttpResponse.HeadersSent"> 5252 </example>
5253 <summary> 5253 </member>
5254 Headers have been sent to the client- 5254 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)">
5255 </summary> 5255 <summary>
5256 <remarks>You can not send any additional headers if they have already been sent.</remarks> 5256 Determins if a list of strings contains a specific value
5257 </member> 5257 </summary>
5258 <member name="P:HttpServer.HttpResponse.Sent"> 5258 <param name="options">options to check in</param>
5259 <summary> 5259 <param name="value">value to find</param>
5260 The whole response have been sent. 5260 <returns>true if value was found</returns>
5261 </summary> 5261 <remarks>case insensitive</remarks>
5262 </member> 5262 </member>
5263 <member name="P:HttpServer.HttpResponse.Cookies"> 5263 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])">
5264 <summary> 5264 <summary>
5265 Cookies that should be created/changed. 5265 Ajax requests that updates an element with
5266 </summary> 5266 the fetched content
5267 </member> 5267 </summary>
5268 <member name="T:HttpServer.HttpContextFactory"> 5268 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5269 <summary> 5269 <param name="targetId">element to update</param>
5270 Used to create and reuse contexts. 5270 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
5271 </summary> 5271 <returns>A link tag.</returns>
5272 </member> 5272 <example>
5273 <member name="T:HttpServer.IHttpContextFactory"> 5273 <code>
5274 <summary> 5274 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
5275 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es. 5275 </code>
5276 </summary> 5276 </example>
5277 </member> 5277 </member>
5278 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)"> 5278 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])">
5279 <summary> 5279 <summary>
5280 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client. 5280 A link that pop ups a Dialog (overlay div)
5281 </summary> 5281 </summary>
5282 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 5282 <param name="url">URL to contents of dialog</param>
5283 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns> 5283 <param name="title">link title</param>
5284 </member> 5284 <param name="htmlAttributes">name, value, name, value</param>
5285 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 5285 <returns>
5286 <summary> 5286 A "a"-tag that popups a dialog when clicked
5287 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>. 5287 </returns>
5288 </summary> 5288 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
5289 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 5289 And the following JavaScript (load it in application.js):
5290 <param name="certificate">HTTPS certificate to use.</param> 5290 <code>
5291 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param> 5291 Event.observe(window, 'load',
5292 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns> 5292 function() {
5293 </member> 5293 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
5294 <member name="E:HttpServer.IHttpContextFactory.RequestReceived"> 5294 }
5295 <summary> 5295 );
5296 A request have been received from one of the contexts. 5296 </code>
5297 </summary> 5297 </remarks>
5298 </member> 5298 <example>
5299 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)"> 5299 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
5300 <summary> 5300 </example>
5301 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class. 5301 </member>
5302 </summary> 5302 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])">
5303 <param name="writer">The writer.</param> 5303 <summary>
5304 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param> 5304 create a modal dialog (usually using DIVs)
5305 <param name="factory">Used to create a request parser.</param> 5305 </summary>
5306 </member> 5306 <param name="url">url to fetch</param>
5307 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)"> 5307 <param name="title">dialog title</param>
5308 <summary> 5308 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param>
5309 Create a new context. 5309 <returns></returns>
5310 </summary> 5310 </member>
5311 <param name="isSecured">true if socket is running HTTPS.</param> 5311 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog">
5312 <param name="endPoint">Client that connected</param> 5312 <summary>
5313 <param name="stream">Network/SSL stream.</param> 5313 Close a javascript dialog window/div.
5314 <returns>A context.</returns> 5314 </summary>
5315 </member> 5315 <returns>javascript for closing a dialog.</returns>
5316 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)"> 5316 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/>
5317 <summary> 5317 </member>
5318 Create a new context. 5318 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])">
5319 </summary> 5319 <summary>
5320 <param name="isSecured">true if HTTPS is used.</param> 5320 javascript action that should be added to the "onsubmit" event in the form tag.
5321 <param name="endPoint">Remote client</param> 5321 </summary>
5322 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param> 5322 <param name="options">remember to encapsulate strings in ''</param>
5323 <returns>A new context (always).</returns> 5323 <returns></returns>
5324 </member> 5324 <remarks>All javascript option names should end with colon.</remarks>
5325 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 5325 <example>
5326 <summary> 5326 <code>
5327 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>. 5327 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
5328 </summary> 5328 </code>
5329 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 5329 </example>
5330 <param name="certificate">HTTPS certificate to use.</param> 5330 </member>
5331 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param> 5331 <member name="T:HttpServer.Authentication.DigestAuthentication">
5332 <returns> 5332 <summary>
5333 A created <see cref="T:HttpServer.IHttpClientContext"/>. 5333 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
5334 </returns> 5334 encrypted with a "key" from the server.
5335 </member> 5335 </summary>
5336 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)"> 5336 <remarks>
5337 <summary> 5337 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
5338 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client. 5338 </remarks>
5339 </summary> 5339 </member>
5340 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 5340 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
5341 <returns> 5341 <summary>
5342 A creates <see cref="T:HttpServer.IHttpClientContext"/>. 5342 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
5343 </returns> 5343 </summary>
5344 </member> 5344 <param name="authenticator">Delegate used to provide information used during authentication.</param>
5345 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs"> 5345 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
5346 <summary> 5346 </member>
5347 True if detailed trace logs should be written. 5347 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
5348 </summary> 5348 <summary>
5349 </member> 5349 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
5350 <member name="E:HttpServer.HttpContextFactory.RequestReceived"> 5350 </summary>
5351 <summary> 5351 <param name="authenticator">Delegate used to provide information used during authentication.</param>
5352 A request have been received from one of the contexts. 5352 </member>
5353 </summary> 5353 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
5354 </member> 5354 <summary>
5355 <member name="T:HttpServer.ReusableSocketNetworkStream"> 5355 Used by test classes to be able to use hardcoded values
5356 <summary> 5356 </summary>
5357 Custom network stream to mark sockets as reusable when disposing the stream. 5357 </member>
5358 </summary> 5358 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
5359 </member> 5359 <summary>
5360 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)"> 5360 An authentication response have been received from the web browser.
5361 <summary> 5361 Check if it's correct
5362 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />. 5362 </summary>
5363 </summary> 5363 <param name="authenticationHeader">Contents from the Authorization header</param>
5364 <param name="socket"> 5364 <param name="realm">Realm that should be authenticated</param>
5365 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 5365 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
5366 </param> 5366 <param name="options">First option: true if username/password is correct but not cnonce</param>
5367 <exception cref="T:System.ArgumentNullException"> 5367 <returns>
5368 The <paramref name="socket" /> parameter is null. 5368 Authentication object that is stored for the request. A user class or something like that.
5369 </exception> 5369 </returns>
5370 <exception cref="T:System.IO.IOException"> 5370 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
5371 The <paramref name="socket" /> parameter is not connected. 5371 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
5372 -or- 5372 </member>
5373 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" />. 5373 <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)">
5374 -or- 5374 <summary>
5375 The <paramref name="socket" /> parameter is in a nonblocking state. 5375 Encrypts parameters into a Digest string
5376 </exception> 5376 </summary>
5377 </member> 5377 <param name="realm">Realm that the user want to log into.</param>
5378 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)"> 5378 <param name="userName">User logging in</param>
5379 <summary> 5379 <param name="password">Users password.</param>
5380 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. 5380 <param name="method">HTTP method.</param>
5381 </summary> 5381 <param name="uri">Uri/domain that generated the login prompt.</param>
5382 <param name="socket"> 5382 <param name="qop">Quality of Protection.</param>
5383 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 5383 <param name="nonce">"Number used ONCE"</param>
5384 </param> 5384 <param name="nc">Hexadecimal request counter.</param>
5385 <param name="ownsSocket"> 5385 <param name="cnonce">"Client Number used ONCE"</param>
5386 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. 5386 <returns>Digest encrypted string</returns>
5387 </param> 5387 </member>
5388 <exception cref="T:System.ArgumentNullException"> 5388 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
5389 The <paramref name="socket" /> parameter is null. 5389 <summary>
5390 </exception> 5390
5391 <exception cref="T:System.IO.IOException"> 5391 </summary>
5392 The <paramref name="socket" /> parameter is not connected. 5392 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
5393 -or- 5393 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param>
5394 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" />. 5394 <param name="qop">Quality of Protection</param>
5395 -or- 5395 <param name="nonce">"Number used ONCE"</param>
5396 the <paramref name="socket" /> parameter is in a nonblocking state. 5396 <param name="nc">Hexadecimal request counter.</param>
5397 </exception> 5397 <param name="cnonce">Client number used once</param>
5398 </member> 5398 <returns></returns>
5399 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)"> 5399 </member>
5400 <summary> 5400 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
5401 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. 5401 <summary>
5402 </summary> 5402 Create a response that can be sent in the WWW-Authenticate header.
5403 <param name="socket"> 5403 </summary>
5404 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 5404 <param name="realm">Realm that the user should authenticate in</param>
5405 </param> 5405 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
5406 <param name="access"> 5406 <returns>A correct auth request.</returns>
5407 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" />. 5407 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
5408 </param> 5408 </member>
5409 <exception cref="T:System.ArgumentNullException"> 5409 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
5410 The <paramref name="socket" /> parameter is null. 5410 <summary>
5411 </exception> 5411 Decodes authorization header value
5412 <exception cref="T:System.IO.IOException"> 5412 </summary>
5413 The <paramref name="socket" /> parameter is not connected. 5413 <param name="buffer">header value</param>
5414 -or- 5414 <param name="encoding">Encoding that the buffer is in</param>
5415 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" />. 5415 <returns>All headers and their values if successful; otherwise null</returns>
5416 -or- 5416 <example>
5417 the <paramref name="socket" /> parameter is in a nonblocking state. 5417 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
5418 </exception> 5418 </example>
5419 </member> 5419 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
5420 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)"> 5420 </member>
5421 <summary> 5421 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
5422 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. 5422 <summary>
5423 </summary> 5423 Gets the current nonce.
5424 <param name="socket"> 5424 </summary>
5425 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 5425 <returns></returns>
5426 </param> 5426 </member>
5427 <param name="access"> 5427 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
5428 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" />. 5428 <summary>
5429 </param> 5429 Gets the Md5 hash bin hex2.
5430 <param name="ownsSocket"> 5430 </summary>
5431 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. 5431 <param name="toBeHashed">To be hashed.</param>
5432 </param> 5432 <returns></returns>
5433 <exception cref="T:System.ArgumentNullException"> 5433 </member>
5434 The <paramref name="socket" /> parameter is null. 5434 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
5435 </exception> 5435 <summary>
5436 <exception cref="T:System.IO.IOException"> 5436 determines if the nonce is valid or has expired.
5437 The <paramref name="socket" /> parameter is not connected. 5437 </summary>
5438 -or- 5438 <param name="nonce">nonce value (check wikipedia for info)</param>
5439 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" />. 5439 <returns>true if the nonce has not expired.</returns>
5440 -or- 5440 </member>
5441 The <paramref name="socket" /> parameter is in a nonblocking state. 5441 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
5442 </exception> 5442 <summary>
5443 </member> 5443 name used in http request.
5444 <member name="M:HttpServer.ReusableSocketNetworkStream.Close"> 5444 </summary>
5445 <summary> 5445 </member>
5446 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. 5446 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
5447 </summary> 5447 <summary>
5448 </member> 5448 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
5449 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)"> 5449 HA1 generated string.
5450 <summary> 5450 </summary>
5451 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources. 5451 </member>
5452 </summary> 5452 </members>
5453 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> 5453</doc>
5454 </member>
5455 </members>
5456</doc>