aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2009-07-21 06:47:29 +0000
committerTeravus Ovares2009-07-21 06:47:29 +0000
commitc243ae43f23be20ec3388ed30e8b7b806ad2a2a7 (patch)
tree2c38ab90f6c81e08ada7ef4f4dbad6da77afd75a
parent* nothing in this commit, re-triggering panda.. which crashed while testing. (diff)
downloadopensim-SC-c243ae43f23be20ec3388ed30e8b7b806ad2a2a7.zip
opensim-SC-c243ae43f23be20ec3388ed30e8b7b806ad2a2a7.tar.gz
opensim-SC-c243ae43f23be20ec3388ed30e8b7b806ad2a2a7.tar.bz2
opensim-SC-c243ae43f23be20ec3388ed30e8b7b806ad2a2a7.tar.xz
* Updated C# WebServer to the latest available source download (r19869) and applied a few mods from the old version (now up on opensim-libs (VS 3.5 project).
* Made various changes to BaseHttpServer to accommodate the new interfaces. * This version has been significantly re-architected and may fail in unusual and insidious ways. * Please pay attention to any errors you get and post a Mantis if you can reproduce an issue with the HTTPServer. I'm including the pdb and having the http server compiled in debug for a few weeks so that when an error occurs, it'll print the pertenant data. * Once again, this is the full C# WebServer, not the lite branch that is included in LibOMV (we need SSL!)
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs19
-rw-r--r--OpenSim/Framework/Servers/Tests/OSHttpTests.cs31
-rw-r--r--OpenSim/Region/UserStatistics/Default_Report.cs6
-rw-r--r--OpenSim/Region/UserStatistics/WebStatsModule.cs6
-rw-r--r--ThirdPartyLicenses/C# Webserver.txt148
-rw-r--r--bin/HttpServer_OpenSim.dllbin139776 -> 123904 bytes
-rw-r--r--bin/HttpServer_OpenSim.pdbbin0 -> 341504 bytes
-rw-r--r--bin/HttpServer_OpenSim.xml7430
8 files changed, 3019 insertions, 4621 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index ef61200..4532e76 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -226,6 +226,15 @@ namespace OpenSim.Framework.Servers.HttpServer
226 return true; 226 return true;
227 } 227 }
228 228
229 private void OnRequest(object source, RequestEventArgs args)
230 {
231 IHttpClientContext context = (IHttpClientContext)source;
232 IHttpRequest request = args.Request;
233
234 OnHandleRequestIOThread(context,request);
235
236 }
237
229 public void OnHandleRequestIOThread(IHttpClientContext context, IHttpRequest request) 238 public void OnHandleRequestIOThread(IHttpClientContext context, IHttpRequest request)
230 { 239 {
231 OSHttpRequest req = new OSHttpRequest(context, request); 240 OSHttpRequest req = new OSHttpRequest(context, request);
@@ -1406,7 +1415,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1406 { 1415 {
1407 //m_httpListener.Prefixes.Add("http://+:" + m_port + "/"); 1416 //m_httpListener.Prefixes.Add("http://+:" + m_port + "/");
1408 //m_httpListener.Prefixes.Add("http://10.1.1.5:" + m_port + "/"); 1417 //m_httpListener.Prefixes.Add("http://10.1.1.5:" + m_port + "/");
1409 m_httpListener2 = new CoolHTTPListener(m_listenIPAddress, (int)m_port); 1418 m_httpListener2 = CoolHTTPListener.Create(m_listenIPAddress, (int)m_port);
1410 m_httpListener2.ExceptionThrown += httpServerException; 1419 m_httpListener2.ExceptionThrown += httpServerException;
1411 m_httpListener2.LogWriter = httpserverlog; 1420 m_httpListener2.LogWriter = httpserverlog;
1412 1421
@@ -1414,7 +1423,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1414 // if you want more detailed trace information from the HttpServer 1423 // if you want more detailed trace information from the HttpServer
1415 //m_httpListener2.UseTraceLogs = true; 1424 //m_httpListener2.UseTraceLogs = true;
1416 1425
1417 m_httpListener2.DisconnectHandler = httpServerDisconnectMonitor; 1426 //m_httpListener2.DisconnectHandler = httpServerDisconnectMonitor;
1418 } 1427 }
1419 else 1428 else
1420 { 1429 {
@@ -1422,7 +1431,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1422 //m_httpListener.Prefixes.Add("http://+:" + m_port + "/"); 1431 //m_httpListener.Prefixes.Add("http://+:" + m_port + "/");
1423 } 1432 }
1424 1433
1425 m_httpListener2.RequestHandler += OnHandleRequestIOThread; 1434 m_httpListener2.RequestReceived += OnRequest;
1426 //m_httpListener.Start(); 1435 //m_httpListener.Start();
1427 m_httpListener2.Start(64); 1436 m_httpListener2.Start(64);
1428 HTTPDRunning = true; 1437 HTTPDRunning = true;
@@ -1474,10 +1483,10 @@ namespace OpenSim.Framework.Servers.HttpServer
1474 { 1483 {
1475 HTTPDRunning = false; 1484 HTTPDRunning = false;
1476 m_httpListener2.ExceptionThrown -= httpServerException; 1485 m_httpListener2.ExceptionThrown -= httpServerException;
1477 m_httpListener2.DisconnectHandler = null; 1486 //m_httpListener2.DisconnectHandler = null;
1478 1487
1479 m_httpListener2.LogWriter = null; 1488 m_httpListener2.LogWriter = null;
1480 m_httpListener2.RequestHandler -= OnHandleRequestIOThread; 1489 m_httpListener2.RequestReceived -= OnRequest;
1481 1490
1482 m_httpListener2.Stop(); 1491 m_httpListener2.Stop();
1483 } 1492 }
diff --git a/OpenSim/Framework/Servers/Tests/OSHttpTests.cs b/OpenSim/Framework/Servers/Tests/OSHttpTests.cs
index 48db44d..f7f0afa 100644
--- a/OpenSim/Framework/Servers/Tests/OSHttpTests.cs
+++ b/OpenSim/Framework/Servers/Tests/OSHttpTests.cs
@@ -46,6 +46,10 @@ namespace OpenSim.Framework.Servers.Tests
46 public class TestHttpClientContext: IHttpClientContext 46 public class TestHttpClientContext: IHttpClientContext
47 { 47 {
48 private bool _secured; 48 private bool _secured;
49 public bool IsSecured
50 {
51 get { return _secured; }
52 }
49 public bool Secured 53 public bool Secured
50 { 54 {
51 get { return _secured; } 55 get { return _secured; }
@@ -62,10 +66,19 @@ namespace OpenSim.Framework.Servers.Tests
62 public void Respond(string body) {} 66 public void Respond(string body) {}
63 public void Send(byte[] buffer) {} 67 public void Send(byte[] buffer) {}
64 public void Send(byte[] buffer, int offset, int size) {} 68 public void Send(byte[] buffer, int offset, int size) {}
69 public void Respond(string httpVersion, HttpStatusCode statusCode, string reason, string body, string contentType) {}
70
71 public event EventHandler<DisconnectedEventArgs> Disconnected = delegate { };
72 /// <summary>
73 /// A request have been received in the context.
74 /// </summary>
75 public event EventHandler<RequestEventArgs> RequestReceived = delegate { };
76
65 } 77 }
66 78
67 public class TestHttpRequest: IHttpRequest 79 public class TestHttpRequest: IHttpRequest
68 { 80 {
81 private string _uriPath;
69 public bool BodyIsComplete 82 public bool BodyIsComplete
70 { 83 {
71 get { return true; } 84 get { return true; }
@@ -183,6 +196,24 @@ namespace OpenSim.Framework.Servers.Tests
183 196
184 return clone; 197 return clone;
185 } 198 }
199 public IHttpResponse CreateResponse(IHttpClientContext context)
200 {
201 return new HttpResponse(context, this);
202 }
203 /// <summary>
204 /// Path and query (will be merged with the host header) and put in Uri
205 /// </summary>
206 /// <see cref="Uri"/>
207 public string UriPath
208 {
209 get { return _uriPath; }
210 set
211 {
212 _uriPath = value;
213
214 }
215 }
216
186 } 217 }
187 218
188 public class TestHttpResponse: IHttpResponse 219 public class TestHttpResponse: IHttpResponse
diff --git a/OpenSim/Region/UserStatistics/Default_Report.cs b/OpenSim/Region/UserStatistics/Default_Report.cs
index 668fd45..0e17630 100644
--- a/OpenSim/Region/UserStatistics/Default_Report.cs
+++ b/OpenSim/Region/UserStatistics/Default_Report.cs
@@ -112,15 +112,15 @@ TD.align_top { vertical-align: top; }
112 112
113 ajaxUpdaterDivs[0] = "activeconnections"; 113 ajaxUpdaterDivs[0] = "activeconnections";
114 ajaxUpdaterSeconds[0] = 10; 114 ajaxUpdaterSeconds[0] = 10;
115 ajaxUpdaterReportFragments[0] = "activeconnectionsajax.ajax"; 115 ajaxUpdaterReportFragments[0] = "activeconnectionsajax.html";
116 116
117 ajaxUpdaterDivs[1] = "activesimstats"; 117 ajaxUpdaterDivs[1] = "activesimstats";
118 ajaxUpdaterSeconds[1] = 20; 118 ajaxUpdaterSeconds[1] = 20;
119 ajaxUpdaterReportFragments[1] = "simstatsajax.ajax"; 119 ajaxUpdaterReportFragments[1] = "simstatsajax.html";
120 120
121 ajaxUpdaterDivs[2] = "activelog"; 121 ajaxUpdaterDivs[2] = "activelog";
122 ajaxUpdaterSeconds[2] = 5; 122 ajaxUpdaterSeconds[2] = 5;
123 ajaxUpdaterReportFragments[2] = "activelogajax.ajax"; 123 ajaxUpdaterReportFragments[2] = "activelogajax.html";
124 124
125 HTMLUtil.InsertPeriodicUpdaters(ref output, ajaxUpdaterDivs, ajaxUpdaterSeconds, ajaxUpdaterReportFragments); 125 HTMLUtil.InsertPeriodicUpdaters(ref output, ajaxUpdaterDivs, ajaxUpdaterSeconds, ajaxUpdaterReportFragments);
126 126
diff --git a/OpenSim/Region/UserStatistics/WebStatsModule.cs b/OpenSim/Region/UserStatistics/WebStatsModule.cs
index 0807607..a65b84c 100644
--- a/OpenSim/Region/UserStatistics/WebStatsModule.cs
+++ b/OpenSim/Region/UserStatistics/WebStatsModule.cs
@@ -110,9 +110,9 @@ namespace OpenSim.Region.UserStatistics
110 reports.Add("", rep); 110 reports.Add("", rep);
111 reports.Add("prototype.js", protodep); 111 reports.Add("prototype.js", protodep);
112 reports.Add("updater.js", updatedep); 112 reports.Add("updater.js", updatedep);
113 reports.Add("activeconnectionsajax.ajax", ajConnections); 113 reports.Add("activeconnectionsajax.html", ajConnections);
114 reports.Add("simstatsajax.ajax", ajSimStats); 114 reports.Add("simstatsajax.html", ajSimStats);
115 reports.Add("activelogajax.ajax", ajLogLines); 115 reports.Add("activelogajax.html", ajLogLines);
116 reports.Add("clients.report", clientReport); 116 reports.Add("clients.report", clientReport);
117 reports.Add("sessions.report", sessionsReport); 117 reports.Add("sessions.report", sessionsReport);
118 118
diff --git a/ThirdPartyLicenses/C# Webserver.txt b/ThirdPartyLicenses/C# Webserver.txt
index 40511b5..b996891 100644
--- a/ThirdPartyLicenses/C# Webserver.txt
+++ b/ThirdPartyLicenses/C# Webserver.txt
@@ -1,145 +1,71 @@
1Files: HttpServer.dll 1Files: HttpServer_OpenSim.dll
2 2
3Version 2.1, February 1999 3Apache License
4Version 2.0, January 2004
5http://www.apache.org/licenses/
4 6
5Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 7TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 8
7[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] 91. Definitions.
8 10
9Preamble 11"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
10 12
11The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. 13"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
12 14
13This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. 15"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
14 16
15When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. 17"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
16 18
17To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. 19"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
18 20
19For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. 21"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
20 22
21We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. 23"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
22 24
23To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. 25"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
24 26
25Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. 27"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
26 28
27Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. 29"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
28 30
29When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. 312. Grant of Copyright License.
30 32
31We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. 33Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
32 34
33For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. 353. Grant of Patent License.
34 36
35In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. 37Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
36 38
37Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. 394. Redistribution.
38 40
39The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. 41You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
40 42
41TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 431. You must give any other recipients of the Work or Derivative Works a copy of this License; and
42 44
430. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". 452. You must cause any modified files to carry prominent notices stating that You changed the files; and
44 46
45A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. 473. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
46 48
47The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) 494. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
48 50
49"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. 51You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
50 52
51Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 535. Submission of Contributions.
52 54
531. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. 55Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
54 56
55You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 576. Trademarks.
56 58
572. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: 59This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
58 60
59a) The modified work must itself be a software library. 617. Disclaimer of Warranty.
60 62
61b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. 63Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
62 64
63c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. 658. Limitation of Liability.
64 66
65d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. 67In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
66 68
67(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) 699. Accepting Warranty or Additional Liability.
68 70
69These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. 71While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. \ No newline at end of file
70
71Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
72
73In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
74
753. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
76
77Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
78
79This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
80
814. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
82
83If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
84
855. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
86
87However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
88
89When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
90
91If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
92
93Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
94
956. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
96
97You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
98
99a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
100
101b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
102
103c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
104
105d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
106
107e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
108
109For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
110
111It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
112
1137. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
114
115a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
116
117b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
118
1198. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
120
1219. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
122
12310. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
124
12511. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
126
127If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
128
129It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
130
131This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
132
13312. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
134
13513. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
136
137Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
138
13914. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
140
141NO WARRANTY
142
14315. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
144
14516. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file
diff --git a/bin/HttpServer_OpenSim.dll b/bin/HttpServer_OpenSim.dll
index bc27835..77042a0 100644
--- 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
new file mode 100644
index 0000000..e3abbe2
--- /dev/null
+++ b/bin/HttpServer_OpenSim.pdb
Binary files differ
diff --git a/bin/HttpServer_OpenSim.xml b/bin/HttpServer_OpenSim.xml
index 747f35d..22cc1c0 100644
--- a/bin/HttpServer_OpenSim.xml
+++ b/bin/HttpServer_OpenSim.xml
@@ -4,815 +4,659 @@
4 <name>HttpServer_OpenSim</name> 4 <name>HttpServer_OpenSim</name>
5 </assembly> 5 </assembly>
6 <members> 6 <members>
7 <member name="T:HttpServer.ResponseCookies"> 7 <member name="T:HttpServer.Sessions.IHttpSession">
8 <summary>
9 Cookies that should be set.
10 </summary>
11 </member>
12 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
13 <summary>
14 Adds a cookie in the collection.
15 </summary>
16 <param name="cookie">cookie to add</param>
17 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
18 </member>
19 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)">
20 <summary>
21 Copy a request cookie
22 </summary>
23 <param name="cookie"></param>
24 <param name="expires">When the cookie should expire</param>
25 </member>
26 <member name="M:HttpServer.ResponseCookies.GetEnumerator">
27 <summary> 8 <summary>
28 Gets a collection enumerator on the cookie list. 9 Interface for sessions
29 </summary> 10 </summary>
30 <returns>collection enumerator</returns>
31 </member> 11 </member>
32 <member name="M:HttpServer.ResponseCookies.Clear"> 12 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
33 <summary> 13 <summary>
34 Remove all cookies 14 Remove everything from the session
35 </summary> 15 </summary>
36 </member> 16 </member>
37 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator"> 17 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
38 <summary> 18 <summary>
39 Returns an enumerator that iterates through the collection. 19 Remove everything from the session
40 </summary> 20 </summary>
41 21 <param name="expires">True if the session is cleared due to expiration</param>
42 <returns>
43 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
44 </returns>
45 <filterpriority>1</filterpriority>
46 </member> 22 </member>
47 <member name="P:HttpServer.ResponseCookies.Count"> 23 <member name="P:HttpServer.Sessions.IHttpSession.Id">
48 <summary> 24 <summary>
49 Gets the count of cookies in the collection. 25 Session id
50 </summary> 26 </summary>
51 </member> 27 </member>
52 <member name="P:HttpServer.ResponseCookies.Item(System.String)"> 28 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
53 <summary> 29 <summary>
54 Gets the cookie of a given identifier (null if not existing). 30 Should
55 </summary> 31 </summary>
32 <param name="name">Name of the session variable</param>
33 <returns>null if it's not set</returns>
34 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
56 </member> 35 </member>
57 <member name="T:HttpServer.Rendering.Haml.HamlGenerator"> 36 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
58 <summary> 37 <summary>
59 Generates C#/HTML from HAML code. 38 When the session was last accessed.
39 This property is touched by the http server each time the
40 session is requested.
60 </summary> 41 </summary>
61 <remarks>HAML documentation: http://haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html</remarks>
62 </member> 42 </member>
63 <member name="T:HttpServer.Rendering.ITemplateGenerator"> 43 <member name="P:HttpServer.Sessions.IHttpSession.Count">
64 <summary> 44 <summary>
65 A code generator is used to convert template code to something that we can 45 Number of session variables.
66 work with, as HTML or c# code.
67 </summary> 46 </summary>
68 <seealso cref="T:HttpServer.Rendering.TemplateManager"/>
69 </member> 47 </member>
70 <member name="M:HttpServer.Rendering.ITemplateGenerator.GenerateCode(System.IO.TextWriter)"> 48 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
71 <summary> 49 <summary>
72 Generate C# code from the template. 50 Event triggered upon clearing the session
73 </summary> 51 </summary>
74 <param name="writer">A <see cref="T:System.IO.TextWriter"/> that the generated code will be written to.</param>
75 <exception cref="T:System.InvalidOperationException">If the template have not been parsed first.</exception>
76 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If template is incorrect</exception>
77 </member> 52 </member>
78 <member name="M:HttpServer.Rendering.ITemplateGenerator.Parse(System.String)"> 53 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
79 <summary> 54 <summary>
80 Parse a file and convert into to our own template object code. 55 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
81 </summary> 56 </summary>
82 <param name="fullPath">Path and filename to a template</param>
83 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If something is incorrect in the template.</exception>
84 <exception cref="T:System.IO.FileNotFoundException"></exception>
85 <exception cref="T:System.IO.DirectoryNotFoundException"></exception>
86 <exception cref="T:System.UnauthorizedAccessException"></exception>
87 <exception cref="T:System.IO.PathTooLongException"></exception>
88 <exception cref="T:System.NotSupportedException"></exception>
89 </member> 57 </member>
90 <member name="M:HttpServer.Rendering.ITemplateGenerator.Parse(System.IO.TextReader)"> 58 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
91 <summary> 59 <summary>
92 Parse a file and convert into to our own template object code. 60 Instantiates the arguments for the event
93 </summary> 61 </summary>
94 <param name="reader">A <see cref="T:System.IO.TextReader"/> containing our template</param> 62 <param name="expired">True if the session is cleared due to expiration</param>
95 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If something is incorrect in the template.</exception>
96 </member> 63 </member>
97 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.#ctor"> 64 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
98 <summary> 65 <summary>
99 Initializes a new instance of the <see cref="T:HttpServer.Rendering.Haml.HamlGenerator"/> class. 66 Returns true if the session is cleared due to expiration
100 </summary> 67 </summary>
101 </member> 68 </member>
102 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.#ctor(HttpServer.ILogWriter)"> 69 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
103 <summary> 70 <summary>
104 Initializes a new instance of the <see cref="T:HttpServer.Rendering.Haml.HamlGenerator"/> class. 71 Delegate for when a IHttpSession is cleared
105 </summary> 72 </summary>
106 <param name="logWriter">The log writer.</param> 73 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
74 <param name="args">Arguments for the clearing</param>
107 </member> 75 </member>
108 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.CheckIntendation(HttpServer.Rendering.Haml.LineInfo,System.Int32@,System.Int32@)"> 76 <member name="T:HttpServer.HttpListenerBase">
109 <summary> 77 <summary>
110 Check and validate indentation 78 Contains a listener that doesn't do anything with the connections.
111 </summary> 79 </summary>
112 <param name="line">line to check</param>
113 <param name="ws">number of white spaces</param>
114 <param name="intendation">number of indentations (2 white spaces = 1 intend, 1 tab = 1 intend)</param>
115 </member> 80 </member>
116 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.CheckIntendation(HttpServer.Rendering.Haml.LineInfo)"> 81 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
117 <summary> 82 <summary>
118 Check indentation 83 Listen for regular HTTP connections
119 </summary> 84 </summary>
120 <param name="line">fills line with intend info</param> 85 <param name="address">IP Address to accept connections on</param>
86 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
87 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
88 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
89 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
121 </member> 90 </member>
122 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.CheckMultiLine(HttpServer.Rendering.Haml.LineInfo,HttpServer.Rendering.Haml.LineInfo)"> 91 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
123 <summary> 92 <summary>
124 check if current line is a multi line 93 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
125 </summary> 94 </summary>
126 <param name="prevLine">previous line</param> 95 <param name="address">IP Address to accept connections on</param>
127 <param name="line">current line</param> 96 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
97 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
98 <param name="certificate">Certificate to use</param>
128 </member> 99 </member>
129 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.GenerateHtml(System.IO.TextWriter)"> 100 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
130 <summary> 101 <summary>
131 Generate HTML code from the template. 102 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
132 Code is encapsulated in &lt;% and &lt;%=
133 </summary> 103 </summary>
134 <param name="writer">A <see cref="T:System.IO.TextWriter"/> that the generated code will be written to.</param> 104 <param name="address">IP Address to accept connections on</param>
135 <exception cref="T:System.InvalidOperationException">If the template have not been parsed first.</exception> 105 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
136 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If template is incorrect</exception> 106 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
107 <param name="certificate">Certificate to use</param>
108 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
137 </member> 109 </member>
138 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.GetWord(System.String,System.Int32)"> 110 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
139 <summary> 111 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
140 Get the first word (letters and digits only) from the specified offset.
141 </summary>
142 <param name="data"></param>
143 <param name="offset"></param>
144 <returns></returns>
145 </member> 112 </member>
146 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.HandlePlacement"> 113 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
147 <summary> 114 <summary>
148 Check indentation / node placement 115 Will try to accept connections one more time.
149 </summary> 116 </summary>
117 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
150 </member> 118 </member>
151 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.ParseNode(HttpServer.Rendering.Haml.LineInfo,HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.Nodes.TextNode)"> 119 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
152 <summary> 120 <summary>
153 Parse a node 121 Can be used to create filtering of new connections.
154 todo: improve doc
155 </summary> 122 </summary>
156 <param name="theLine"></param> 123 <param name="socket">Accepted socket</param>
157 <param name="prototypes"></param> 124 <returns>true if connection can be accepted; otherwise false.</returns>
158 <param name="parent"></param>
159 <param name="textNode"></param>
160 </member> 125 </member>
161 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.PreParse(System.IO.TextReader)"> 126 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
162 <summary> 127 <summary>
163 PreParse goes through the text add handles indentation 128 Start listen for new connections
164 and all multi line cases.
165 </summary> 129 </summary>
166 <param name="reader">Reader containing the text</param> 130 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
131 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
167 </member> 132 </member>
168 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.PrintDocument"> 133 <member name="M:HttpServer.HttpListenerBase.Stop">
169 <summary> 134 <summary>
170 print the entire document 135 Stop the listener
171 </summary> 136 </summary>
137 <exception cref="T:System.Net.Sockets.SocketException"></exception>
172 </member> 138 </member>
173 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.PrintNode(HttpServer.Rendering.Haml.LineInfo)"> 139 <member name="P:HttpServer.HttpListenerBase.LogWriter">
174 <summary> 140 <summary>
175 Print line information to the console 141 Gives you a change to receive log entries for all internals of the HTTP library.
176 </summary> 142 </summary>
177 <param name="line"></param> 143 <remarks>
144 You may not switch log writer after starting the listener.
145 </remarks>
178 </member> 146 </member>
179 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.ReadLine"> 147 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
180 <summary> 148 <summary>
181 Read next line from file 149 True if we should turn on trace logs.
182 </summary> 150 </summary>
183 <returns>true if line could be read; false if EOF.</returns>
184 </member> 151 </member>
185 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.Spaces(System.Int32)"> 152 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
186 <summary> 153 <summary>
187 Generates a string with spaces. 154 Catch exceptions not handled by the listener.
188 </summary> 155 </summary>
189 <param name="count">number of spaces.</param> 156 <remarks>
190 <returns>string of spaces.</returns> 157 Exceptions will be thrown during debug mode if this event is not used,
158 exceptions will be printed to console and suppressed during release mode.
159 </remarks>
191 </member> 160 </member>
192 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.Parse(System.String)"> 161 <member name="E:HttpServer.HttpListenerBase.RequestReceived">
193 <summary> 162 <summary>
194 Parse a file and convert into to our own template object code. 163 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
195 </summary> 164 </summary>
196 <param name="fullPath">Path and filename to a template</param>
197 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If something is incorrect in the template.</exception>
198 <exception cref="T:System.IO.FileNotFoundException"></exception>
199 <exception cref="T:System.IO.DirectoryNotFoundException"></exception>
200 <exception cref="T:System.UnauthorizedAccessException"></exception>
201 <exception cref="T:System.IO.PathTooLongException"></exception>
202 <exception cref="T:System.NotSupportedException"></exception>
203 <exception cref="T:System.ArgumentException"></exception>
204 </member> 165 </member>
205 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.Parse(System.IO.TextReader)"> 166 <member name="T:HttpServer.Exceptions.InternalServerException">
206 <summary> 167 <summary>
207 Parse a file and convert into to our own template object code. 168 The server encountered an unexpected condition which prevented it from fulfilling the request.
208 </summary> 169 </summary>
209 <param name="reader">A <see cref="T:System.IO.TextReader"/> containing our template</param>
210 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If something is incorrect in the template.</exception>
211 </member> 170 </member>
212 <member name="M:HttpServer.Rendering.Haml.HamlGenerator.GenerateCode(System.IO.TextWriter)"> 171 <member name="T:HttpServer.Exceptions.HttpException">
213 <summary> 172 <summary>
214 Generate C# code from the template. 173 All HTTP based exceptions will derive this class.
215 </summary> 174 </summary>
216 <param name="writer">A <see cref="T:System.IO.TextWriter"/> that the generated code will be written to.</param>
217 <exception cref="T:System.InvalidOperationException">If the template have not been parsed first.</exception>
218 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If template is incorrect</exception>
219 </member> 175 </member>
220 <member name="P:HttpServer.Rendering.Haml.HamlGenerator.RootNode"> 176 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
221 <summary> 177 <summary>
222 Property to retrieve the root node for the latest parsed document 178 Create a new HttpException
223 </summary> 179 </summary>
180 <param name="code">http status code (sent in the response)</param>
181 <param name="message">error description</param>
224 </member> 182 </member>
225 <member name="T:HttpServer.Rules.RegexRedirectRule"> 183 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
226 <summary> 184 <summary>
227 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules 185 Create a new HttpException
228 a regular expression can be used to identify redirect urls and thier targets.
229 </summary> 186 </summary>
230 <example> 187 <param name="code">http status code (sent in the response)</param>
231 <![CDATA[ 188 <param name="message">error description</param>
232 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase) 189 <param name="inner">inner exception</param>
233 ]]>
234 </example>
235 </member> 190 </member>
236 <member name="T:HttpServer.Rules.RedirectRule"> 191 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
237 <summary> 192 <summary>
238 redirects from one url to another. 193 status code to use in the response.
239 </summary> 194 </summary>
240 </member> 195 </member>
241 <member name="T:HttpServer.Rules.IRule"> 196 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor">
242 <summary> 197 <summary>
243 Rules are used to perform operations before a request is being handled. 198 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
244 Rules can be used to create routing etc.
245 </summary> 199 </summary>
246 </member> 200 </member>
247 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 201 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)">
248 <summary> 202 <summary>
249 Process the incoming request. 203 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
250 </summary> 204 </summary>
251 <param name="request">incoming http request</param> 205 <param name="message">error message.</param>
252 <param name="response">outgoing http response</param>
253 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
254 <remarks>
255 returning true means that no modules will get the request. Returning true is typically being done
256 for redirects.
257 </remarks>
258 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
259 </member> 206 </member>
260 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)"> 207 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)">
261 <summary> 208 <summary>
262 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 209 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
263 </summary> 210 </summary>
264 <param name="fromUrl">Absolute path (no servername)</param> 211 <param name="message">error message.</param>
265 <param name="toUrl">Absolute path (no servername)</param> 212 <param name="inner">inner exception.</param>
266 <example>
267 server.Add(new RedirectRule("/", "/user/index"));
268 </example>
269 </member> 213 </member>
270 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)"> 214 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs">
271 <summary> 215 <summary>
272 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 216 Used to inform http server that
273 </summary> 217 </summary>
274 <param name="fromUrl">Absolute path (no servername)</param>
275 <param name="toUrl">Absolute path (no servername)</param>
276 <param name="shouldRedirect">true if request should be redirected, false if the request uri should be replaced.</param>
277 <example>
278 server.Add(new RedirectRule("/", "/user/index"));
279 </example>
280 </member> 218 </member>
281 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 219 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)">
282 <summary>
283 Process the incoming request.
284 </summary>
285 <param name="request">incoming http request</param>
286 <param name="response">outgoing http response</param>
287 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
288 <remarks>
289 returning true means that no modules will get the request. Returning true is typically being done
290 for redirects.
291 </remarks>
292 </member>
293 <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
294 <summary> 220 <summary>
295 string to match request url with. 221 Eventarguments used when an exception is thrown by a module
296 </summary> 222 </summary>
297 <remarks>Is compared to request.Uri.AbsolutePath</remarks> 223 <param name="e">the exception</param>
298 </member> 224 </member>
299 <member name="P:HttpServer.Rules.RedirectRule.ToUrl"> 225 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception">
300 <summary> 226 <summary>
301 Where to redirect. 227 Exception thrown in a module
302 </summary> 228 </summary>
303 </member> 229 </member>
304 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect"> 230 <member name="T:HttpServer.Helpers.ResourceInfo">
305 <summary> 231 <summary>
306 true if we should redirect. 232 Container to bind resource names to assemblies
307 </summary> 233 </summary>
308 <remarks>
309 false means that the rule will replace
310 the current request uri with the new one from this class.
311 </remarks>
312 </member> 234 </member>
313 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)"> 235 <member name="M:HttpServer.Helpers.ResourceInfo.#ctor(System.String,System.String,System.Reflection.Assembly)">
314 <summary> 236 <summary>
315 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 237 Instantiates an instance of <see cref="T:HttpServer.Helpers.ResourceInfo"/>
316 </summary> 238 </summary>
317 <param name="fromUrlExpression">Expression to match url</param> 239 <param name="uri">The dot seperated uri the resource maps to</param>
318 <param name="toUrlExpression">Expression to generate url</param> 240 <param name="resourceName">The full resource name</param>
319 <example> 241 <param name="assembly">The assembly the resource exists in</param>
320 <![CDATA[
321 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
322 Result of ie. /employee1 will then be /user/employee1
323 ]]>
324 </example>
325 </member> 242 </member>
326 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)"> 243 <member name="M:HttpServer.Helpers.ResourceInfo.GetStream">
327 <summary> 244 <summary>
328 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 245 Retrieves a stream to the resource
329 </summary> 246 </summary>
330 <param name="fromUrlExpression">Expression to match url</param> 247 <returns>Null if the resource couldn't be located somehow</returns>
331 <param name="toUrlExpression">Expression to generate url</param>
332 <param name="options">Regular expression options to use, can be null</param>
333 <example>
334 <![CDATA[
335 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
336 Result of ie. /employee1 will then be /user/employee1
337 ]]>
338 </example>
339 </member> 248 </member>
340 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)"> 249 <member name="P:HttpServer.Helpers.ResourceInfo.Assembly">
341 <summary> 250 <summary>
342 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 251 Retrieves the assembly the resource resides in
343 </summary> 252 </summary>
344 <param name="fromUrlExpression">Expression to match url</param>
345 <param name="toUrlExpression">Expression to generate url</param>
346 <param name="options">Regular expression options to apply</param>
347 <param name="shouldRedirect">true if request should be redirected, false if the request uri should be replaced.</param>
348 <example>
349 <![CDATA[
350 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
351 Result of ie. /employee1 will then be /user/employee1
352 ]]>
353 </example>
354 </member> 253 </member>
355 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 254 <member name="P:HttpServer.Helpers.ResourceInfo.Uri">
356 <summary> 255 <summary>
357 Process the incoming request. 256 Retrieves the full name/path of the assembly
358 </summary> 257 </summary>
359 <param name="request">incoming http request</param>
360 <param name="response">outgoing http response</param>
361 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
362 <remarks>
363 returning true means that no modules will get the request. Returning true is typically being done
364 for redirects.
365 </remarks>
366 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
367 </member> 258 </member>
368 <member name="T:HttpServer.Rendering.ITemplateLoader"> 259 <member name="P:HttpServer.Helpers.ResourceInfo.Extension">
369 <summary> 260 <summary>
370 Interface used to load templates from different sources. 261 Retrieves the extension of the resource
371 </summary> 262 </summary>
372 </member> 263 </member>
373 <member name="M:HttpServer.Rendering.ITemplateLoader.LoadTemplate(System.String)"> 264 <member name="P:HttpServer.Helpers.ResourceInfo.ExtensionLessUri">
374 <summary> 265 <summary>Returns the Uri without extension</summary>
375 Load a template into a <see cref="T:System.IO.TextReader"/> and return it.
376 </summary>
377 <param name="path">Relative path (and filename) to template.</param>
378 <returns>a <see cref="T:System.IO.TextReader"/> if file was found; otherwise null.</returns>
379 </member> 266 </member>
380 <member name="M:HttpServer.Rendering.ITemplateLoader.GetFiles(System.String,System.String)"> 267 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
381 <summary> 268 <summary>Retrieves the full path name to the resource file</summary>
382 Fetch all files from the resource that matches the specified arguments.
383 </summary>
384 <param name="path">Where the file should reside.</param>
385 <param name="filename">Files to check</param>
386 <returns>a list of files if found; or an empty array if no files are found.</returns>
387 </member> 269 </member>
388 <member name="M:HttpServer.Rendering.ITemplateLoader.CheckTemplate(HttpServer.Rendering.ITemplateInfo)"> 270 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine">
389 <summary> 271 <summary>
390 Check's whether a template should be reloaded or not. 272
391 </summary> 273 </summary>
392 <param name="info">template information</param> 274 <returns></returns>
393 <returns>true if template is OK; false if it do not exist or are old.</returns> 275 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
276 <exception cref="T:System.ObjectDisposedException"></exception>
394 </member> 277 </member>
395 <member name="M:HttpServer.Rendering.ITemplateLoader.HasTemplate(System.String)"> 278 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
396 <summary> 279 <summary>Represents a field in a multipart form</summary>
397 Returns whether or not the loader has an instance of the file requested
398 </summary>
399 <param name="filename">The name of the template/file</param>
400 <returns>True if the loader can provide the file</returns>
401 </member> 280 </member>
402 <member name="T:HttpServer.Helpers.WebHelper"> 281 <member name="T:HttpServer.Parser.HeaderEventArgs">
403 <summary> 282 <summary>
404 Webhelper provides helpers for common tasks in HTML. 283 Event arguments used when a new header have been parsed.
405 </summary> 284 </summary>
406 </member> 285 </member>
407 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation"> 286 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
408 <summary> 287 <summary>
409 Used to let the website use different javascript libraries. 288 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
410 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
411 </summary> 289 </summary>
290 <param name="name">Name of header.</param>
291 <param name="value">Header value.</param>
412 </member> 292 </member>
413 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])"> 293 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
414 <summary> 294 <summary>
415 Creates a link that invokes through ajax. 295 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
416 </summary> 296 </summary>
417 <param name="url">url to fetch</param>
418 <param name="title">link title</param>
419 <param name="options">
420 optional options in format "key, value, key, value".
421 Javascript options starts with ':'.
422 </param>
423 <returns>a link tag</returns>
424 <example>
425 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
426 </example>
427 </member> 297 </member>
428 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])"> 298 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
429 <summary> 299 <summary>
430 Builds a link that updates an element with the fetched ajax content. 300 Gets or sets header name.
431 </summary> 301 </summary>
432 <param name="url">Url to fetch content from</param>
433 <param name="title">link title</param>
434 <param name="targetId">html element to update with the results of the ajax request.</param>
435 <param name="options">optional options in format "key, value, key, value"</param>
436 <returns>A link tag.</returns>
437 </member> 302 </member>
438 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"> 303 <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
439 <summary> 304 <summary>
440 A link that pop ups a Dialog (overlay div) 305 Gets or sets header value.
441 </summary> 306 </summary>
442 <param name="url">url to contents of dialog</param>
443 <param name="title">link title</param>
444 <param name="htmlAttributes">name/value of html attributes.</param>
445 <returns>A "a"-tag that popups a dialog when clicked</returns>
446 <example>
447 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
448 </example>
449 </member> 307 </member>
450 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])"> 308 <member name="T:HttpServer.HttpListener">
451 <summary> 309 <summary>
452 Create/Open a dialog box using ajax 310 New implementation of the HTTP listener.
453 </summary> 311 </summary>
454 <param name="url"></param> 312 <remarks>
455 <param name="title"></param> 313 Use the <c>Create</c> methods to create a default listener.
456 <param name="parameters"></param> 314 </remarks>
457 <returns></returns>
458 </member> 315 </member>
459 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog"> 316 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
460 <summary> 317 <summary>
461 Close a javascript dialog window/div. 318 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
462 </summary> 319 </summary>
463 <returns>javascript for closing a dialog.</returns> 320 <param name="address">IP Address to accept connections on</param>
464 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/> 321 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
322 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
323 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
324 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
465 </member> 325 </member>
466 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)"> 326 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
467 <summary> 327 <summary>
468 Create a &lt;form&gt; tag. 328 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
469 </summary> 329 </summary>
470 <param name="name">name of form</param> 330 <param name="address">The address.</param>
471 <param name="action">action to invoke on submit</param> 331 <param name="port">The port.</param>
472 <param name="isAjax">form should be posted as ajax</param> 332 <param name="factory">The factory.</param>
473 <returns>html code</returns> 333 <param name="certificate">The certificate.</param>
474 <example>
475 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
476 </example>
477 </member> 334 </member>
478 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])"> 335 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
479 <summary> 336 <summary>
480 Create a link tag. 337 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
481 </summary> 338 </summary>
482 <param name="url">url to go to</param> 339 <param name="address">The address.</param>
483 <param name="title">link title (text that is displayed)</param> 340 <param name="port">The port.</param>
484 <param name="htmlAttributes">html attributes, name, value, name, value</param> 341 <param name="factory">The factory.</param>
485 <returns>html code</returns> 342 <param name="certificate">The certificate.</param>
486 <example> 343 <param name="protocol">The protocol.</param>
487 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
488 </example>
489 </member> 344 </member>
490 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])"> 345 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)">
491 <summary> 346 <summary>
492 Build a link 347 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
493 </summary> 348 </summary>
494 <param name="url">url to go to.</param> 349 <param name="address">Address that the listener should accept connections on.</param>
495 <param name="title">title of link (displayed text)</param> 350 <param name="port">Port that listener should accept connections on.</param>
496 <param name="htmlAttributes">extra html attributes.</param> 351 <returns>Created HTTP listener.</returns>
497 <returns>a complete link</returns>
498 </member> 352 </member>
499 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])"> 353 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
500 <summary> 354 <summary>
501 Build a link 355 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
502 </summary> 356 </summary>
503 <param name="url">url to go to.</param> 357 <param name="address">Address that the listener should accept connections on.</param>
504 <param name="title">title of link (displayed text)</param> 358 <param name="port">Port that listener should accept connections on.</param>
505 <param name="htmlAttributes">extra html attributes.</param> 359 <param name="certificate">Certificate to use</param>
506 <returns>a complete link</returns> 360 <returns>Created HTTP listener.</returns>
507 <param name="options">more options</param>
508 </member>
509 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
510 <summary>
511 Obsolete
512 </summary>
513 <param name="name">Obsolete</param>
514 <param name="collection">Obsolete</param>
515 <param name="getIdTitle">Obsolete</param>
516 <param name="selectedValue">Obsolete</param>
517 <param name="firstEmpty">Obsolete</param>
518 <returns>Obsolete</returns>
519 </member> 361 </member>
520 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 362 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
521 <summary> 363 <summary>
522 Obsolete 364 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
523 </summary> 365 </summary>
524 <param name="name">Obsolete</param> 366 <param name="address">Address that the listener should accept connections on.</param>
525 <param name="id">Obsolete</param> 367 <param name="port">Port that listener should accept connections on.</param>
526 <param name="collection">Obsolete</param> 368 <param name="certificate">Certificate to use</param>
527 <param name="getIdTitle">Obsolete</param> 369 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
528 <param name="selectedValue">Obsolete</param> 370 <returns>Created HTTP listener.</returns>
529 <param name="firstEmpty">Obsolete</param>
530 <returns>Obsolete</returns>
531 </member> 371 </member>
532 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)"> 372 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)">
533 <summary> 373 <summary>
534 Render errors into a UL with class "errors" 374 Can be used to create filtering of new connections.
535 </summary> 375 </summary>
536 <param name="className">class used by UL-tag.</param> 376 <param name="socket">Accepted socket</param>
537 <param name="theList">items to list</param> 377 <returns>
538 <returns>an unordered html list.</returns> 378 true if connection can be accepted; otherwise false.
379 </returns>
539 </member> 380 </member>
540 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)"> 381 <member name="E:HttpServer.HttpListener.Accepted">
541 <summary> 382 <summary>
542 Render errors into a UL with class "errors" 383 A client have been accepted, but not handled, by the listener.
543 </summary> 384 </summary>
544 <param name="className">class used by UL-tag.</param>
545 <param name="theList">items to list</param>
546 <returns>an unordered html list.</returns>
547 </member> 385 </member>
548 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)"> 386 <member name="T:HttpServer.FormDecoders.XmlDecoder">
549 <summary> 387 <summary>
550 Render errors into a UL with class "errors" 388 This decoder converts XML documents to form items.
389 Each element becomes a subitem in the form, and each attribute becomes an item.
551 </summary> 390 </summary>
552 <param name="errors"></param> 391 <example>
553 <returns></returns> 392 // xml: <hello id="1">something<world id="2">data</world></hello>
393 // result:
394 // form["hello"].Value = "something"
395 // form["hello"]["id"].Value = 1
396 // form["hello"]["world]["id"].Value = 1
397 // form["hello"]["world"].Value = "data"
398 </example>
399 <remarks>
400 The original xml document is stored in form["__xml__"].Value.
401 </remarks>
554 </member> 402 </member>
555 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])"> 403 <member name="T:HttpServer.FormDecoders.IFormDecoder">
556 <summary> 404 <summary>
557 Generates a list with html attributes. 405 Interface for form content decoders.
558 </summary> 406 </summary>
559 <param name="sb">StringBuilder that the options should be added to.</param>
560 <param name="firstOptions">attributes set by user.</param>
561 <param name="secondOptions">attributes set by any of the helper classes.</param>
562 </member> 407 </member>
563 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])"> 408 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
564 <summary> 409 <summary>
565 Generates a list with html attributes. 410
566 </summary> 411 </summary>
567 <param name="sb">StringBuilder that the options should be added to.</param> 412 <param name="stream">Stream containing the content</param>
568 <param name="options"></param> 413 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
414 <param name="encoding">Stream enconding</param>
415 <returns>A http form, or null if content could not be parsed.</returns>
416 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
569 </member> 417 </member>
570 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation"> 418 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
571 <summary> 419 <summary>
572 Purpose of this class is to create a javascript toolkit independent javascript helper. 420 Checks if the decoder can handle the mime type
573 </summary> 421 </summary>
422 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
423 <returns>True if the decoder can parse the specified content type</returns>
574 </member> 424 </member>
575 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)"> 425 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
576 <summary> 426 <summary>
577 Generates a list with JS options. 427
578 </summary> 428 </summary>
579 <param name="sb">StringBuilder that the options should be added to.</param> 429 <param name="stream">Stream containing the content</param>
580 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param> 430 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
581 <param name="startWithComma">true if we should start with a comma.</param> 431 <param name="encoding">Stream encoding</param>
432 Note: contentType and encoding are not used?
433 <returns>A http form, or null if content could not be parsed.</returns>
434 <exception cref="T:System.IO.InvalidDataException"></exception>
582 </member> 435 </member>
583 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])"> 436 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
584 <summary> 437 <summary>
585 Removes any javascript parameters from an array of parameters 438 Recursive function that will go through an xml element and store it's content
439 to the form item.
586 </summary> 440 </summary>
587 <param name="options">The array of parameters to remove javascript params from</param> 441 <param name="item">(parent) Item in form that content should be added to.</param>
588 <returns>An array of html parameters</returns> 442 <param name="node">Node that should be parsed.</param>
589 </member> 443 </member>
590 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])"> 444 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
591 <summary> 445 <summary>
592 javascript action that should be added to the "onsubmit" event in the form tag. 446 Checks if the decoder can handle the mime type
593 </summary> 447 </summary>
594 <returns></returns> 448 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
595 <remarks>All javascript option names should end with colon.</remarks> 449 <returns>True if the decoder can parse the specified content type</returns>
596 <example>
597 <code>
598 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
599 </code>
600 </example>
601 </member> 450 </member>
602 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])"> 451 <member name="T:HttpServer.ExceptionHandler">
603 <summary> 452 <summary>
604 Requests a url through ajax 453 We dont want to let the server to die due to exceptions thrown in worker threads.
454 therefore we use this delegate to give you a change to handle uncaught exceptions.
605 </summary> 455 </summary>
606 <param name="url">url to fetch</param> 456 <param name="source">Class that the exception was thrown in.</param>
607 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param> 457 <param name="exception">Exception</param>
608 <returns>a link tag</returns> 458 <remarks>
609 <remarks>All javascript option names should end with colon.</remarks> 459 Server will throw a InternalServerException in release version if you dont
610 <example> 460 handle this delegate.
611 <code> 461 </remarks>
612 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
613 </code>
614 </example>
615 </member> 462 </member>
616 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])"> 463 <member name="T:HttpServer.Authentication.DigestAuthentication">
617 <summary> 464 <summary>
618 Ajax requests that updates an element with 465 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
619 the fetched content 466 encrypted with a "key" from the server.
620 </summary> 467 </summary>
621 <param name="url">Url to fetch content from</param> 468 <remarks>
622 <param name="targetId">element to update</param> 469 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
623 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param> 470 </remarks>
624 <returns>A link tag.</returns>
625 <remarks>All javascript option names should end with colon.</remarks>
626 <example>
627 <code>
628 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
629 </code>
630 </example>
631 </member> 471 </member>
632 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"> 472 <member name="T:HttpServer.Authentication.AuthenticationModule">
633 <summary> 473 <summary>
634 A link that pop ups a Dialog (overlay div) 474 Authentication modules are used to implement different
475 kind of HTTP authentication.
635 </summary> 476 </summary>
636 <param name="url">url to contents of dialog</param>
637 <param name="title">link title</param>
638 <returns>A "a"-tag that popups a dialog when clicked</returns>
639 <param name="htmlAttributes">name/value of html attributes</param>
640 <example>
641 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
642 </example>
643 </member> 477 </member>
644 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog"> 478 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
645 <summary> 479 <summary>
646 Close a javascript dialog window/div. 480 Tag used for authentication.
647 </summary> 481 </summary>
648 <returns>javascript for closing a dialog.</returns>
649 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
650 </member> 482 </member>
651 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])"> 483 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
652 <summary> 484 <summary>
653 Creates a new modal dialog window 485 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
654 </summary> 486 </summary>
655 <param name="url">url to open in window.</param> 487 <param name="authenticator">Delegate used to provide information used during authentication.</param>
656 <param name="title">window title (may not be supported by all js implementations)</param> 488 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
657 <param name="options"></param>
658 <returns></returns>
659 </member> 489 </member>
660 <member name="T:HttpServer.HttpClientContextImp"> 490 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
661 <summary> 491 <summary>
662 Contains a connection to a browser/client. 492 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
663 </summary> 493 </summary>
494 <param name="authenticator">Delegate used to provide information used during authentication.</param>
664 </member> 495 </member>
665 <member name="T:HttpServer.IHttpClientContext"> 496 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
666 <summary> 497 <summary>
667 Contains a connection to a browser/client. 498 Create a response that can be sent in the WWW-Authenticate header.
668 </summary> 499 </summary>
500 <param name="realm">Realm that the user should authenticate in</param>
501 <param name="options">Array with optional options.</param>
502 <returns>A correct authentication request.</returns>
503 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
669 </member> 504 </member>
670 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 505 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
671 <summary> 506 <summary>
672 Disconnect from client 507 An authentication response have been received from the web browser.
508 Check if it's correct
673 </summary> 509 </summary>
674 <param name="error">error to report in the <see cref="T:HttpServer.ClientDisconnectedHandler"/> delegate.</param> 510 <param name="authenticationHeader">Contents from the Authorization header</param>
511 <param name="realm">Realm that should be authenticated</param>
512 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
513 <param name="options">options to specific implementations</param>
514 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
515 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
516 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
675 </member> 517 </member>
676 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String)"> 518 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
677 <summary> 519 <summary>
678 Send a response. 520 Used to invoke the authentication delegate that is used to lookup the user name/realm.
679 </summary> 521 </summary>
680 <param name="httpVersion">Either HttpHelper.HTTP10 or HttpHelper.HTTP11</param> 522 <param name="realm">Realm (domain) that user want to authenticate in</param>
681 <param name="statusCode">http status code</param> 523 <param name="userName">User name</param>
682 <param name="reason">reason for the status code.</param> 524 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
683 <param name="body">html body contents, can be null or empty.</param> 525 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
684 <exception cref="T:System.ArgumentException">If httpVersion is invalid.</exception> 526 <returns>true if authentication was successful</returns>
685 </member> 527 </member>
686 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 528 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
687 <summary> 529 <summary>
688 Send a response. 530 Determines if authentication is required.
689 </summary> 531 </summary>
690 <param name="httpVersion">Either HttpHelper.HTTP10 or HttpHelper.HTTP11</param> 532 <param name="request">HTTP request from browser</param>
691 <param name="statusCode">http status code</param> 533 <returns>true if user should be authenticated.</returns>
692 <param name="reason">reason for the status code.</param> 534 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
535 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
693 </member> 536 </member>
694 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)"> 537 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
695 <summary> 538 <summary>
696 Send a response. 539 name used in HTTP request.
697 </summary> 540 </summary>
698 <exception cref="T:System.ArgumentNullException"></exception>
699 </member> 541 </member>
700 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])"> 542 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
701 <summary> 543 <summary>
702 send a whole buffer 544 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
703 </summary> 545 </summary>
704 <param name="buffer">buffer to send</param> 546 <param name="authenticator">Delegate used to provide information used during authentication.</param>
705 <exception cref="T:System.ArgumentNullException"></exception> 547 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
706 </member> 548 </member>
707 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 549 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
708 <summary> 550 <summary>
709 Send data using the stream 551 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
710 </summary> 552 </summary>
711 <param name="buffer">Contains data to send</param> 553 <param name="authenticator">Delegate used to provide information used during authentication.</param>
712 <param name="offset">Start position in buffer</param>
713 <param name="size">number of bytes to send</param>
714 <exception cref="T:System.ArgumentNullException"></exception>
715 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
716 </member> 554 </member>
717 <member name="P:HttpServer.IHttpClientContext.Secured"> 555 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
718 <summary> 556 <summary>
719 Using SSL or other encryption method. 557 Used by test classes to be able to use hardcoded values
720 </summary> 558 </summary>
721 </member> 559 </member>
722 <member name="F:HttpServer.HttpClientContextImp.BufferSize"> 560 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
723 <summary> 561 <summary>
724 Buffersize determines how large the HTTP header can be. 562 An authentication response have been received from the web browser.
563 Check if it's correct
725 </summary> 564 </summary>
565 <param name="authenticationHeader">Contents from the Authorization header</param>
566 <param name="realm">Realm that should be authenticated</param>
567 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
568 <param name="options">First option: true if username/password is correct but not cnonce</param>
569 <returns>
570 Authentication object that is stored for the request. A user class or something like that.
571 </returns>
572 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
573 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
726 </member> 574 </member>
727 <member name="M:HttpServer.HttpClientContextImp.#ctor(System.Boolean,System.Net.IPEndPoint,HttpServer.RequestReceivedHandler,HttpServer.ClientDisconnectedHandler,System.IO.Stream,HttpServer.ILogWriter,System.Net.Sockets.Socket)"> 575 <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)">
728 <summary> 576 <summary>
729 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContextImp"/> class. 577 Encrypts parameters into a Digest string
730 </summary> 578 </summary>
731 <param name="secured">true if the connection is secured (SSL/TLS)</param> 579 <param name="realm">Realm that the user want to log into.</param>
732 <param name="remoteEndPoint">client that connected.</param> 580 <param name="userName">User logging in</param>
733 <param name="requestHandler">delegate handling incoming requests.</param> 581 <param name="password">Users password.</param>
734 <param name="disconnectHandler">delegate being called when a client disconnectes</param> 582 <param name="method">HTTP method.</param>
735 <param name="stream">Stream used for communication</param> 583 <param name="uri">Uri/domain that generated the login prompt.</param>
736 <exception cref="T:System.Net.Sockets.SocketException">If beginreceive fails</exception> 584 <param name="qop">Quality of Protection.</param>
737 <param name="writer">delegate used to write log entries</param> 585 <param name="nonce">"Number used ONCE"</param>
738 <see cref="T:HttpServer.RequestReceivedHandler"/> 586 <param name="nc">Hexadecimal request counter.</param>
739 <see cref="T:HttpServer.ClientDisconnectedHandler"/> 587 <param name="cnonce">"Client Number used ONCE"</param>
588 <returns>Digest encrypted string</returns>
740 </member> 589 </member>
741 <member name="M:HttpServer.HttpClientContextImp.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.RequestReceivedHandler,System.Net.Sockets.Socket)"> 590 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
742 <summary> 591 <summary>
743 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContextImp"/> class. 592
744 </summary> 593 </summary>
745 <param name="secured">true if the connection is secured (SSL/TLS)</param> 594 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
746 <param name="requestHandler">delegate handling incoming requests.</param> 595 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param>
747 <param name="remoteEndPoint">client that connected</param> 596 <param name="qop">Quality of Protection</param>
748 <param name="stream">Stream used for communication</param> 597 <param name="nonce">"Number used ONCE"</param>
749 <exception cref="T:System.Net.Sockets.SocketException">If beginreceive fails</exception> 598 <param name="nc">Hexadecimal request counter.</param>
750 <see cref="T:HttpServer.RequestReceivedHandler"/> 599 <param name="cnonce">Client number used once</param>
751 <see cref="T:HttpServer.ClientDisconnectedHandler"/> 600 <returns></returns>
752 </member> 601 </member>
753 <member name="M:HttpServer.HttpClientContextImp.Disconnect(System.Net.Sockets.SocketError)"> 602 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
754 <summary> 603 <summary>
755 Disconnect from client 604 Create a response that can be sent in the WWW-Authenticate header.
756 </summary> 605 </summary>
757 <param name="error">error to report in the <see cref="T:HttpServer.ClientDisconnectedHandler"/> delegate.</param> 606 <param name="realm">Realm that the user should authenticate in</param>
607 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
608 <returns>A correct auth request.</returns>
609 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
758 </member> 610 </member>
759 <member name="M:HttpServer.HttpClientContextImp.Check100Continue"> 611 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
760 <summary> 612 <summary>
761 This method checks the request if a responde to 100-continue should be sent. 613 Decodes authorization header value
762 </summary> 614 </summary>
763 <remarks> 615 <param name="buffer">header value</param>
764 100 continue is a value in the Expect header. 616 <param name="encoding">Encoding that the buffer is in</param>
765 It's used to let the webserver determine if a request can be handled. The client 617 <returns>All headers and their values if successful; otherwise null</returns>
766 waits for a reply before sending the body. 618 <example>
767 </remarks> 619 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
620 </example>
621 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
768 </member> 622 </member>
769 <member name="M:HttpServer.HttpClientContextImp.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String)"> 623 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
770 <summary> 624 <summary>
771 Send a response. 625 Gets the current nonce.
772 </summary> 626 </summary>
773 <param name="httpVersion">Either HttpHelper.HTTP10 or HttpHelper.HTTP11</param> 627 <returns></returns>
774 <param name="statusCode">http status code</param>
775 <param name="reason">reason for the status code.</param>
776 <param name="body">html body contents, can be null or empty.</param>
777 <exception cref="T:System.ArgumentException">If httpVersion is invalid.</exception>
778 </member> 628 </member>
779 <member name="M:HttpServer.HttpClientContextImp.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 629 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
780 <summary> 630 <summary>
781 Send a response. 631 Gets the Md5 hash bin hex2.
782 </summary> 632 </summary>
783 <param name="httpVersion">Either HttpHelper.HTTP10 or HttpHelper.HTTP11</param> 633 <param name="toBeHashed">To be hashed.</param>
784 <param name="statusCode">http status code</param> 634 <returns></returns>
785 <param name="reason">reason for the status code.</param>
786 </member> 635 </member>
787 <member name="M:HttpServer.HttpClientContextImp.Respond(System.String)"> 636 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
788 <summary> 637 <summary>
789 Send a response. 638 determines if the nonce is valid or has expired.
790 </summary> 639 </summary>
791 <exception cref="T:System.ArgumentNullException"></exception> 640 <param name="nonce">nonce value (check wikipedia for info)</param>
641 <returns>true if the nonce has not expired.</returns>
792 </member> 642 </member>
793 <member name="M:HttpServer.HttpClientContextImp.Send(System.Byte[])"> 643 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
794 <summary> 644 <summary>
795 send a whole buffer 645 name used in http request.
796 </summary> 646 </summary>
797 <param name="buffer">buffer to send</param>
798 <exception cref="T:System.ArgumentNullException"></exception>
799 </member> 647 </member>
800 <member name="M:HttpServer.HttpClientContextImp.Send(System.Byte[],System.Int32,System.Int32)"> 648 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
801 <summary> 649 <summary>
802 Send data using the stream 650 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
651 HA1 generated string.
803 </summary> 652 </summary>
804 <param name="buffer">Contains data to send</param>
805 <param name="offset">Start position in buffer</param>
806 <param name="size">number of bytes to send</param>
807 <exception cref="T:System.ArgumentNullException"></exception>
808 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
809 </member> 653 </member>
810 <member name="P:HttpServer.HttpClientContextImp.Secured"> 654 <member name="T:HttpServer.IHttpContextHandler">
811 <summary> 655 <summary>
812 Using SSL or other encryption method. 656 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
813 </summary> 657 </summary>
814 </member> 658 </member>
815 <member name="T:HttpServer.ClientDisconnectedHandler"> 659 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
816 <summary> 660 <summary>
817 Client have been disconnected. 661 Client have been disconnected.
818 </summary> 662 </summary>
@@ -820,7 +664,7 @@
820 <param name="error">Reason</param> 664 <param name="error">Reason</param>
821 <see cref="T:HttpServer.IHttpClientContext"/> 665 <see cref="T:HttpServer.IHttpClientContext"/>
822 </member> 666 </member>
823 <member name="T:HttpServer.RequestReceivedHandler"> 667 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
824 <summary> 668 <summary>
825 Invoked when a client context have received a new HTTP request 669 Invoked when a client context have received a new HTTP request
826 </summary> 670 </summary>
@@ -828,990 +672,1018 @@
828 <param name="request">Request that was received.</param> 672 <param name="request">Request that was received.</param>
829 <see cref="T:HttpServer.IHttpClientContext"/> 673 <see cref="T:HttpServer.IHttpClientContext"/>
830 </member> 674 </member>
831 <member name="T:HttpServer.HttpModules.ControllerModule"> 675 <member name="T:HttpServer.RealmHandler">
832 <summary> 676 <summary>
833 A controller module is a part of the ModelViewController design pattern. 677 Delegate used to find a realm/domain.
834 It gives you a way to create user friendly URLs.
835 </summary> 678 </summary>
679 <param name="domain"></param>
680 <returns></returns>
836 <remarks> 681 <remarks>
837 The controller module uses the flyweight pattern which means that 682 Realms are used during HTTP Authentication
838 the memory usage will continue to increase until the module have
839 enough objects in memory to serve all concurrent requests. The objects
840 are reused and will not be freed.
841 </remarks> 683 </remarks>
684 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
685 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
686 </member>
687 <member name="T:HttpServer.HttpServer">
688 <summary>
689 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
690 </summary>
842 <example> 691 <example>
843 <code> 692 <code>
844 ControllerModule module = new ControllerModule(); 693 // this small example will add two web site modules, thus handling
845 module.Add(new UserController()); 694 // two different sites. In reality you should add Controller modules or something
846 module.Add(new SearchController()); 695 // two the website modules to be able to handle different requests.
847 myWebsite.Add(module); 696 HttpServer server = new HttpServer();
697 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
698 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
699
700 // start regular http
701 server.Start(IPAddress.Any, 80);
702
703 // start https
704 server.Start(IPAddress.Any, 443, myCertificate);
848 </code> 705 </code>
849 </example> 706 </example>
707 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
708 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
709 <seealso cref="T:HttpServer.HttpListener"/>
850 </member> 710 </member>
851 <member name="T:HttpServer.HttpModules.HttpModule"> 711 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
852 <summary>
853 A HttpModule can be used to serve urls. The module itself
854 decides if it should serve a url or not. In this way, you can
855 get a very flexible http app since you can let multiple modules
856 serve almost similiar urls.
857 </summary>
858 <remarks>
859 Throw UnauthorizedException if you are using a AuthenticationModule and want to prompt for username/password.
860 </remarks>
861 </member>
862 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
863 <summary>
864 Method that process the url
865 </summary>
866 <param name="request">Information sent by the browser about the request</param>
867 <param name="response">Information that is being sent back to the client.</param>
868 <param name="session">Session used to </param>
869 <returns>true if this module handled the request.</returns>
870 </member>
871 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
872 <summary>
873 Set the log writer to use.
874 </summary>
875 <param name="writer">logwriter to use.</param>
876 </member>
877 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
878 <summary>
879 Log something.
880 </summary>
881 <param name="prio">importance of log message</param>
882 <param name="message">message</param>
883 </member>
884 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
885 <summary> 712 <summary>
886 If true specifies that the module doesn't consume the processing of a request so that subsequent modules 713 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
887 can continue processing afterwards. Default is false.
888 </summary> 714 </summary>
715 <param name="provider">Used to get all components used in the server..</param>
889 </member> 716 </member>
890 <member name="M:HttpServer.HttpModules.ControllerModule.Add(HttpServer.Controllers.RequestController)"> 717 <member name="M:HttpServer.HttpServer.#ctor">
891 <summary> 718 <summary>
892 The controller module uses the prototype design pattern 719 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
893 to be able to create new controller objects for requests
894 if the stack is empty.
895 </summary> 720 </summary>
896 <param name="prototype">A prototype which will be cloned for each request</param>
897 <exception cref="T:System.ArgumentNullException"></exception>
898 <exception cref="T:System.InvalidProgramException">If a controller with that name have been added already.</exception>
899 </member> 721 </member>
900 <member name="M:HttpServer.HttpModules.ControllerModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 722 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
901 <summary> 723 <summary>
902 Method that process the incoming request. 724 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
903 </summary> 725 </summary>
904 <param name="request">Information sent by the browser about the request</param> 726 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
905 <param name="response">Information that is being sent back to the client.</param> 727 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
906 <param name="session">Session used to </param> 728 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
907 </member> 729 </member>
908 <member name="P:HttpServer.HttpModules.ControllerModule.Item(System.String)"> 730 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
909 <summary> 731 <summary>
910 Get a prototype 732 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
911 </summary> 733 </summary>
912 <param name="controllerName">in lowercase, without "Controller"</param> 734 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
913 <returns>The controller if found; otherwise null.</returns> 735 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
914 <example>
915 <code>
916 //fetches the class UserController
917 RequestController userController = controllerModule["user"];
918 </code>
919 </example>
920 </member> 736 </member>
921 <member name="M:HttpServer.HttpModules.ControllerModule.ControllerContext.#ctor(HttpServer.Controllers.RequestController)"> 737 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
922 <summary> 738 <summary>
923 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ControllerModule.ControllerContext"/> class. 739 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
924 </summary> 740 </summary>
925 <param name="prototype">A controller used to handle certain URLs. Will be cloned for each parallel request.</param> 741 <param name="logWriter">The log writer.</param>
742 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
926 </member> 743 </member>
927 <member name="M:HttpServer.HttpModules.ControllerModule.ControllerContext.Pop"> 744 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
928 <summary> 745 <summary>
929 Retrieve a previously created controller (or a new one if none exist). 746 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
930 </summary> 747 </summary>
931 <returns></returns> 748 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
749 <param name="logWriter">The log writer.</param>
750 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
751 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
752 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
932 </member> 753 </member>
933 <member name="M:HttpServer.HttpModules.ControllerModule.ControllerContext.Push(HttpServer.Controllers.RequestController)"> 754 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
934 <summary> 755 <summary>
935 Add a controller 756 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
936 </summary> 757 </summary>
937 <param name="controller"></param> 758 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
759 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
760 <param name="logWriter">The log writer.</param>
761 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
762 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
763 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
764 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
938 </member> 765 </member>
939 <member name="P:HttpServer.HttpModules.ControllerModule.ControllerContext.Prototype"> 766 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)">
940 <summary> 767 <summary>
941 Prototype controller used for cloning. 768 Adds the specified rule.
942 </summary> 769 </summary>
943 <value>The prototype.</value> 770 <param name="rule">The rule.</param>
944 </member> 771 </member>
945 <member name="T:HttpServer.Helpers.JSHelper"> 772 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
946 <summary> 773 <summary>
947 Will contain helper functions for javascript. 774 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
948 </summary> 775 </summary>
776 <param name="module">mode to add</param>
949 </member> 777 </member>
950 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])"> 778 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
951 <summary> 779 <summary>
952 Requests a url through ajax 780 Decodes the request body.
953 </summary> 781 </summary>
954 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 782 <param name="request">The request.</param>
955 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param> 783 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
956 <returns>a link tag</returns>
957 <remarks>onclick attribute is used by this method.</remarks>
958 <example>
959 <code>
960 // plain text
961 JSHelper.AjaxRequest("'/user/show/1'");
962
963 // ajax request using this.href
964 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
965 </code>
966 </example>
967 </member> 784 </member>
968 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])"> 785 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
969 <summary> 786 <summary>
970 Ajax requests that updates an element with 787 Generate a HTTP error page (that will be added to the response body).
971 the fetched content 788 response status code is also set.
972 </summary> 789 </summary>
973 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 790 <param name="response">Response that the page will be generated in.</param>
974 <param name="targetId">element to update</param> 791 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
975 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param> 792 <param name="body">response body contents.</param>
976 <returns>A link tag.</returns>
977 <example>
978 <code>
979 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
980 </code>
981 </example>
982 </member> 793 </member>
983 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"> 794 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
984 <summary> 795 <summary>
985 Opens contents in a dialog window. 796 Generate a HTTP error page (that will be added to the response body).
797 response status code is also set.
986 </summary> 798 </summary>
987 <param name="url">url to contents of dialog</param> 799 <param name="response">Response that the page will be generated in.</param>
988 <param name="title">link title</param> 800 <param name="err">exception.</param>
989 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
990 </member> 801 </member>
991 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog"> 802 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
992 <summary> 803 <summary>
993 Close a javascript dialog window/div. 804 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s.
994 </summary> 805 </summary>
995 <returns>javascript for closing a dialog.</returns> 806 <param name="request">HTTP request</param>
996 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/> 807 <returns>domain/realm.</returns>
997 </member> 808 </member>
998 <member name="T:HttpServer.Helpers.GetIdTitle"> 809 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
999 <summary> 810 <summary>
1000 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. 811 Process an incoming request.
1001 </summary> 812 </summary>
1002 <param name="obj">current object (for instance a User).</param> 813 <param name="context">connection to client</param>
1003 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param> 814 <param name="request">request information</param>
1004 <param name="title">Text shown in the select list.</param> 815 <param name="response">response that should be filled</param>
1005 <example> 816 <param name="session">session information</param>
1006 // Class that is going to be used in a SELECT-tag.
1007 public class User
1008 {
1009 private readonly string _realName;
1010 private readonly int _id;
1011 public User(int id, string realName)
1012 {
1013 _id = id;
1014 _realName = realName;
1015 }
1016 public string RealName
1017 {
1018 get { return _realName; }
1019 }
1020
1021 public int Id
1022 {
1023 get { return _id; }
1024 }
1025 }
1026
1027 // Using an inline delegate to generate the select list
1028 public void UserInlineDelegate()
1029 {
1030 List&lt;User&gt; items = new List&lt;User&gt;();
1031 items.Add(new User(1, "adam"));
1032 items.Add(new User(2, "bertial"));
1033 items.Add(new User(3, "david"));
1034 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
1035 {
1036 User user = (User)o;
1037 id = user.Id;
1038 value = user.RealName;
1039 }, 2, true);
1040 }
1041
1042 // Using an method as delegate to generate the select list.
1043 public void UseExternalDelegate()
1044 {
1045 List&lt;User&gt; items = new List&lt;User&gt;();
1046 items.Add(new User(1, "adam"));
1047 items.Add(new User(2, "bertial"));
1048 items.Add(new User(3, "david"));
1049 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
1050 }
1051
1052 // delegate returning id and title
1053 public static void UserOptions(object o, out object id, out object title)
1054 {
1055 User user = (User)o;
1056 id = user.Id;
1057 value = user.RealName;
1058 } /// </example>
1059 </member> 817 </member>
1060 <member name="T:HttpServer.Controllers.BeforeFilterAttribute"> 818 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
1061 <summary> 819 <summary>
1062 Methods marked with BeforeFilter will be invoked before each request. 820 Can be overloaded to implement stuff when a client have been connected.
1063 </summary> 821 </summary>
1064 <remarks> 822 <remarks>
1065 BeforeFilters should take no arguments and return false 823 Default implementation does nothing.
1066 if controller method should not be invoked.
1067 </remarks> 824 </remarks>
1068 <seealso cref="T:HttpServer.Controllers.FilterPosition"/> 825 <param name="client">client that disconnected</param>
826 <param name="error">disconnect reason</param>
1069 </member> 827 </member>
1070 <member name="M:HttpServer.Controllers.BeforeFilterAttribute.#ctor"> 828 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1071 <summary> 829 <summary>
1072 Initializes a new instance of the <see cref="T:HttpServer.Controllers.BeforeFilterAttribute"/> class. 830 Handle authentication
1073 </summary> 831 </summary>
1074 <remarks> 832 <param name="request"></param>
1075 BeforeFilters should take no arguments and return false 833 <param name="response"></param>
1076 if controller method should not be invoked. 834 <param name="session"></param>
1077 </remarks> 835 <returns>true if request can be handled; false if not.</returns>
836 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
1078 </member> 837 </member>
1079 <member name="M:HttpServer.Controllers.BeforeFilterAttribute.#ctor(HttpServer.Controllers.FilterPosition)"> 838 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
1080 <summary> 839 <summary>
1081 Initializes a new instance of the <see cref="T:HttpServer.Controllers.BeforeFilterAttribute"/> class. 840 Will request authentication.
1082 </summary> 841 </summary>
1083 <param name="position">Specify if the filter should be invoked among the first filters, in between or among the last.</param>
1084 <remarks> 842 <remarks>
1085 BeforeFilters should take no arguments and return false 843 Sends respond to client, nothing else can be done with the response after this.
1086 if controller method should not be invoked.
1087 </remarks> 844 </remarks>
845 <param name="mod"></param>
846 <param name="request"></param>
847 <param name="response"></param>
1088 </member> 848 </member>
1089 <member name="P:HttpServer.Controllers.BeforeFilterAttribute.Position"> 849 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
1090 <summary> 850 <summary>
1091 Filters position in before filter queue 851 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
1092 </summary> 852 </summary>
853 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
854 <param name="args">The request.</param>
1093 </member> 855 </member>
1094 <member name="T:HttpServer.Controllers.FilterPosition"> 856 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
1095 <summary> 857 <summary>
1096 Determins when a before filter is executed. 858 To be able to track request count.
1097 </summary> 859 </summary>
1098 <seealso cref="T:HttpServer.Controllers.BeforeFilterAttribute"/> 860 <param name="context"></param>
861 <param name="request"></param>
1099 </member> 862 </member>
1100 <member name="F:HttpServer.Controllers.FilterPosition.First"> 863 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
1101 <summary> 864 <summary>
1102 Filter will be invoked first (unless another filter is added after this one with the First position) 865 Start the web server using regular HTTP.
1103 </summary> 866 </summary>
867 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param>
868 <param name="port">Port to listen on. 80 can be a good idea =)</param>
869 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
870 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1104 </member> 871 </member>
1105 <member name="F:HttpServer.Controllers.FilterPosition.Between"> 872 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
1106 <summary> 873 <summary>
1107 Invoke after all first filters, and before the last filters. 874 Accept secure connections.
1108 </summary> 875 </summary>
876 <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>
877 <param name="port">Port to listen on. 80 can be a good idea =)</param>
878 <param name="certificate">Certificate to use</param>
879 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
880 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1109 </member> 881 </member>
1110 <member name="F:HttpServer.Controllers.FilterPosition.Last"> 882 <member name="M:HttpServer.HttpServer.Stop">
1111 <summary> 883 <summary>
1112 Filter will be invoked last (unless another filter is added after this one with the Last position) 884 shut down the server and listeners
1113 </summary> 885 </summary>
1114 </member> 886 </member>
1115 <member name="T:HttpServer.Authentication.BasicAuthentication"> 887 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
1116 <summary> 888 <summary>
1117 The "basic" authentication scheme is based on the model that the 889 write an entry to the log file
1118 client must authenticate itself with a user-ID and a password for
1119 each realm. The realm value should be considered an opaque string
1120 which can only be compared for equality with other realms on that
1121 server. The server will service the request only if it can validate
1122 the user-ID and password for the protection space of the Request-URI.
1123 There are no optional authentication parameters.
1124 </summary> 890 </summary>
891 <param name="prio">importance of the message</param>
892 <param name="message">log message</param>
1125 </member> 893 </member>
1126 <member name="T:HttpServer.Authentication.AuthModule"> 894 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
1127 <summary> 895 <summary>
1128 Authentication modules are used to implement different 896 write an entry to the log file
1129 kind of http authentication.
1130 </summary> 897 </summary>
898 <param name="source">object that wrote the message</param>
899 <param name="prio">importance of the message</param>
900 <param name="message">log message</param>
1131 </member> 901 </member>
1132 <member name="M:HttpServer.Authentication.AuthModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthRequiredDelegate)"> 902 <member name="P:HttpServer.HttpServer.Current">
1133 <summary> 903 <summary>
1134 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthModule"/> class. 904 Server that is handling the current request.
1135 </summary> 905 </summary>
1136 <param name="authenticator">Delegate used to provide information used during authentication.</param> 906 <remarks>
1137 <param name="authRequiredDelegate">Delegate used to determine if authentication is required (may be null).</param> 907 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object.
908 </remarks>
1138 </member> 909 </member>
1139 <member name="M:HttpServer.Authentication.AuthModule.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 910 <member name="P:HttpServer.HttpServer.AuthenticationModules">
1140 <summary> 911 <summary>
1141 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthModule"/> class. 912 Modules used for authentication. The module that is is added first is used as
913 the default authentication module.
1142 </summary> 914 </summary>
1143 <param name="authenticator">Delegate used to provide information used during authentication.</param> 915 <remarks>Use the corresponding property
916 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks>
1144 </member> 917 </member>
1145 <member name="M:HttpServer.Authentication.AuthModule.CreateResponse(System.String,System.Object[])"> 918 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
1146 <summary> 919 <summary>
1147 Create a response that can be sent in the WWW-Authenticate header. 920 Form decoder providers are used to decode request body (which normally contains form data).
1148 </summary> 921 </summary>
1149 <param name="realm">Realm that the user should authenticate in</param>
1150 <param name="options">Array with optional options.</param>
1151 <returns>A correct auth request.</returns>
1152 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
1153 </member> 922 </member>
1154 <member name="M:HttpServer.Authentication.AuthModule.Authenticate(System.String,System.String,System.String,System.Object[])"> 923 <member name="P:HttpServer.HttpServer.ServerName">
1155 <summary> 924 <summary>
1156 An authentication response have been received from the web browser. 925 Server name sent in HTTP responses.
1157 Check if it's correct
1158 </summary> 926 </summary>
1159 <param name="authenticationHeader">Contents from the Authorization header</param> 927 <remarks>
1160 <param name="realm">Realm that should be authenticated</param> 928 Do NOT include version in name, since it makes it
1161 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 929 easier for hackers.
1162 <param name="options">options to specific implementations</param> 930 </remarks>
1163 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
1164 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
1165 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
1166 </member> 931 </member>
1167 <member name="M:HttpServer.Authentication.AuthModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)"> 932 <member name="P:HttpServer.HttpServer.SessionCookieName">
1168 <summary> 933 <summary>
1169 Used to invoke the auth delegate that is used to lookup the username/realm. 934 Name of cookie where session id is stored.
1170 </summary> 935 </summary>
1171 <param name="realm">Realm (domain) that user want to authenticate in</param>
1172 <param name="userName">Username</param>
1173 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
1174 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
1175 <returns>true if authentication was successful</returns>
1176 </member> 936 </member>
1177 <member name="M:HttpServer.Authentication.AuthModule.AuthenticationRequired(HttpServer.IHttpRequest)"> 937 <member name="P:HttpServer.HttpServer.LogWriter">
1178 <summary> 938 <summary>
1179 Determines if authentication is required. 939 Specified where logging should go.
1180 </summary> 940 </summary>
1181 <param name="request">Http request from browser</param> 941 <seealso cref="T:HttpServer.NullLogWriter"/>
1182 <returns>true if user should be authenticated.</returns> 942 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
1183 <remarks>throw ForbiddenException from your delegate if no more attempts are allowed.</remarks> 943 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
1184 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
1185 </member> 944 </member>
1186 <member name="P:HttpServer.Authentication.AuthModule.Name"> 945 <member name="P:HttpServer.HttpServer.BackLog">
1187 <summary> 946 <summary>
1188 name used in http request. 947 Number of connections that can wait to be accepted by the server.
1189 </summary> 948 </summary>
949 <remarks>Default is 10.</remarks>
1190 </member> 950 </member>
1191 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthRequiredDelegate)"> 951 <member name="P:HttpServer.HttpServer.MaxRequestCount">
1192 <summary> 952 <summary>
1193 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class. 953 Gets or sets maximum number of allowed simultaneous requests.
1194 </summary> 954 </summary>
1195 <param name="authenticator">Delegate used to provide information used during authentication.</param> 955 <remarks>
1196 <param name="authRequiredDelegate">Delegate used to determine if authentication is required (may be null).</param> 956 <para>
957 This property is useful in busy systems. The HTTP server
958 will start queuing new requests if this limit is hit, instead
959 of trying to process all incoming requests directly.
960 </para>
961 <para>
962 The default number if allowed simultaneous requests are 10.
963 </para>
964 </remarks>
1197 </member> 965 </member>
1198 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 966 <member name="P:HttpServer.HttpServer.MaxQueueSize">
1199 <summary> 967 <summary>
1200 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class. 968 Gets or sets maximum number of requests queuing to be handled.
1201 </summary> 969 </summary>
1202 <param name="authenticator">Delegate used to provide information used during authentication.</param> 970 <remarks>
971 <para>
972 The WebServer will start turning requests away if response code
973 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
974 is too busy to be able to handle the request.
975 </para>
976 </remarks>
1203 </member> 977 </member>
1204 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])"> 978 <member name="E:HttpServer.HttpServer.RealmWanted">
1205 <summary> 979 <summary>
1206 Create a response that can be sent in the WWW-Authenticate header. 980 Realms are used during HTTP authentication.
981 Default realm is same as server name.
1207 </summary> 982 </summary>
1208 <param name="realm">Realm that the user should authenticate in</param>
1209 <param name="options">Not used in basic auth</param>
1210 <returns>A correct auth request.</returns>
1211 </member> 983 </member>
1212 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])"> 984 <member name="E:HttpServer.HttpServer.ExceptionThrown">
1213 <summary> 985 <summary>
1214 An authentication response have been received from the web browser. 986 Let's to receive unhandled exceptions from the threads.
1215 Check if it's correct
1216 </summary> 987 </summary>
1217 <param name="authenticationHeader">Contents from the Authorization header</param> 988 <remarks>
1218 <param name="realm">Realm that should be authenticated</param> 989 Exceptions will be thrown during debug mode if this event is not used,
1219 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 990 exceptions will be printed to console and suppressed during release mode.
1220 <param name="options">Not used in basic auth</param> 991 </remarks>
1221 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
1222 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
1223 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
1224 </member> 992 </member>
1225 <member name="P:HttpServer.Authentication.BasicAuthentication.Name"> 993 <member name="T:HttpServer.Helpers.WebHelper">
1226 <summary> 994 <summary>
1227 name used in http request. 995 Webhelper provides helpers for common tasks in HTML.
1228 </summary> 996 </summary>
1229 </member> 997 </member>
1230 <member name="T:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode"> 998 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
1231 <summary> 999 <summary>
1232 The follow node allows users to display code in a haml document 1000 Used to let the website use different javascript libraries.
1001 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
1233 </summary> 1002 </summary>
1234 <example>
1235 #main Welcome =user.FirstName
1236 </example>
1237 </member> 1003 </member>
1238 <member name="T:HttpServer.Rendering.Haml.Nodes.ChildNode"> 1004 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
1239 <summary> 1005 <summary>
1240 Child nodes may not be the first node on a line 1006 Creates a link that invokes through ajax.
1241 </summary> 1007 </summary>
1008 <param name="url">url to fetch</param>
1009 <param name="title">link title</param>
1010 <param name="options">
1011 optional options in format "key, value, key, value".
1012 Javascript options starts with ':'.
1013 </param>
1014 <returns>a link tag</returns>
1015 <example>
1016 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
1017 </example>
1242 </member> 1018 </member>
1243 <member name="T:HttpServer.Rendering.Haml.Nodes.Node"> 1019 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
1244 <summary> 1020 <summary>
1245 A node represents a controller code and contents. For example a html tag, an attribute list or something else. 1021 Builds a link that updates an element with the fetched ajax content.
1246 </summary> 1022 </summary>
1023 <param name="url">Url to fetch content from</param>
1024 <param name="title">link title</param>
1025 <param name="targetId">html element to update with the results of the ajax request.</param>
1026 <param name="options">optional options in format "key, value, key, value"</param>
1027 <returns>A link tag.</returns>
1247 </member> 1028 </member>
1248 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.#ctor(HttpServer.Rendering.Haml.Nodes.Node)"> 1029 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
1249 <summary> 1030 <summary>
1250 Add a new node 1031 A link that pop ups a Dialog (overlay div)
1251 </summary> 1032 </summary>
1252 <param name="parent">parent node.</param> 1033 <param name="url">url to contents of dialog</param>
1034 <param name="title">link title</param>
1035 <param name="htmlAttributes">name/value of html attributes.</param>
1036 <returns>A "a"-tag that popups a dialog when clicked</returns>
1037 <example>
1038 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1039 </example>
1253 </member> 1040 </member>
1254 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.AddModifier(HttpServer.Rendering.Haml.Nodes.Node)"> 1041 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
1255 <summary> 1042 <summary>
1256 Modifiers are used to modify the first node on the line. 1043 Create/Open a dialog box using ajax
1257 Typical modifiers are attribute lists, class names and IDs.
1258 </summary> 1044 </summary>
1259 <param name="node">Modifier node</param> 1045 <param name="url"></param>
1046 <param name="title"></param>
1047 <param name="parameters"></param>
1048 <returns></returns>
1260 </member> 1049 </member>
1261 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 1050 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
1262 <summary> 1051 <summary>
1263 Parse node contents add return a fresh node. 1052 Close a javascript dialog window/div.
1264 </summary> 1053 </summary>
1265 <param name="prototypes">List containing all node types</param> 1054 <returns>javascript for closing a dialog.</returns>
1266 <param name="parent">Node that this is a subnode to. Can be null</param> 1055 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
1267 <param name="line">Line to parse</param>
1268 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param>
1269 <returns>A node corresponding to the bla bla; null if parsing failed.</returns>
1270 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
1271 </member> 1056 </member>
1272 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.CanHandle(System.String,System.Boolean)"> 1057 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
1273 <summary> 1058 <summary>
1274 determines if this node can handle the line (by checking the first word); 1059 Create a &lt;form&gt; tag.
1275 </summary> 1060 </summary>
1276 <param name="word">Controller char (word)</param> 1061 <param name="name">name of form</param>
1277 <returns>true if text belongs to this node type</returns> 1062 <param name="action">action to invoke on submit</param>
1278 <param name="firstNode">First node on line, used since some nodes cannot exist on their own on a line.</param> 1063 <param name="isAjax">form should be posted as ajax</param>
1064 <returns>html code</returns>
1065 <example>
1066 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
1067 </example>
1279 </member> 1068 </member>
1280 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.ToHtml"> 1069 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
1281 <summary> 1070 <summary>
1282 Generate HTML code (with ASP tags) 1071 Create a link tag.
1283 </summary> 1072 </summary>
1284 <returns></returns> 1073 <param name="url">url to go to</param>
1074 <param name="title">link title (text that is displayed)</param>
1075 <param name="htmlAttributes">html attributes, name, value, name, value</param>
1076 <returns>html code</returns>
1077 <example>
1078 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
1079 </example>
1285 </member> 1080 </member>
1286 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.ToCode(System.Boolean@)"> 1081 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
1287 <summary> 1082 <summary>
1288 Converts the node to c# code 1083 Build a link
1289 </summary> 1084 </summary>
1290 <param name="inString">true if we are inside the internal stringbuilder</param> 1085 <param name="url">url to go to.</param>
1291 <returns>c# code</returns> 1086 <param name="title">title of link (displayed text)</param>
1087 <param name="htmlAttributes">extra html attributes.</param>
1088 <returns>a complete link</returns>
1292 </member> 1089 </member>
1293 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.ToCode(System.Boolean@,System.Boolean)"> 1090 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
1294 <summary> 1091 <summary>
1295 Convert the node to c# code 1092 Build a link
1296 </summary> 1093 </summary>
1297 <param name="inString">True if we are inside the internal stringbuilder</param> 1094 <param name="url">url to go to.</param>
1298 <param name="smallEnough">true if all subnodes fit on one line</param> 1095 <param name="title">title of link (displayed text)</param>
1299 <returns>c# code</returns> 1096 <param name="htmlAttributes">extra html attributes.</param>
1097 <returns>a complete link</returns>
1098 <param name="options">more options</param>
1300 </member> 1099 </member>
1301 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 1100 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1302 <summary> 1101 <summary>
1303 Generate C# code of the node 1102 Obsolete
1304 </summary> 1103 </summary>
1305 <param name="inString">true if we are inside the internal stringbuilder</param> 1104 <param name="name">Obsolete</param>
1306 <param name="smallEnough">code is small enough to fit on one row.</param> 1105 <param name="collection">Obsolete</param>
1307 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param> 1106 <param name="getIdTitle">Obsolete</param>
1308 <returns>c# code</returns> 1107 <param name="selectedValue">Obsolete</param>
1108 <param name="firstEmpty">Obsolete</param>
1109 <returns>Obsolete</returns>
1309 </member> 1110 </member>
1310 <member name="M:HttpServer.Rendering.Haml.Nodes.Node.GetIntendation"> 1111 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1311 <summary> 1112 <summary>
1312 Get intendation level for this node. 1113 Obsolete
1313 </summary> 1114 </summary>
1314 <returns></returns> 1115 <param name="name">Obsolete</param>
1116 <param name="id">Obsolete</param>
1117 <param name="collection">Obsolete</param>
1118 <param name="getIdTitle">Obsolete</param>
1119 <param name="selectedValue">Obsolete</param>
1120 <param name="firstEmpty">Obsolete</param>
1121 <returns>Obsolete</returns>
1315 </member> 1122 </member>
1316 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.IsTextNode"> 1123 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
1317 <summary> 1124 <summary>
1318 Returns true if the node is applicable after another node as text instead of being applied as a modifier 1125 Render errors into a UL with class "errors"
1319 </summary> 1126 </summary>
1127 <param name="className">class used by UL-tag.</param>
1128 <param name="theList">items to list</param>
1129 <returns>an unordered html list.</returns>
1320 </member> 1130 </member>
1321 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.AllChildrenCount"> 1131 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
1322 <summary> 1132 <summary>
1323 Count our children and our childrens children and so on... 1133 Render errors into a UL with class "errors"
1324 </summary> 1134 </summary>
1135 <param name="className">class used by UL-tag.</param>
1136 <param name="theList">items to list</param>
1137 <returns>an unordered html list.</returns>
1325 </member> 1138 </member>
1326 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.Children"> 1139 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
1327 <summary> 1140 <summary>
1328 All child nodes for this node. 1141 Render errors into a UL with class "errors"
1329 </summary> 1142 </summary>
1143 <param name="errors"></param>
1144 <returns></returns>
1330 </member> 1145 </member>
1331 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.LineInfo"> 1146 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])">
1332 <summary> 1147 <summary>
1333 Should only be set for each parent. 1148 Generates a list with html attributes.
1334 </summary> 1149 </summary>
1150 <param name="sb">StringBuilder that the options should be added to.</param>
1151 <param name="firstOptions">attributes set by user.</param>
1152 <param name="secondOptions">attributes set by any of the helper classes.</param>
1335 </member> 1153 </member>
1336 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.Modifiers"> 1154 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])">
1337 <summary> 1155 <summary>
1338 Modifiers are used to modify the first node on the line. 1156 Generates a list with html attributes.
1339 Typical modifiers are attribute lists, class names and IDs.
1340 </summary> 1157 </summary>
1158 <param name="sb">StringBuilder that the options should be added to.</param>
1159 <param name="options"></param>
1341 </member> 1160 </member>
1342 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.LastModifier"> 1161 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation">
1343 <summary> 1162 <summary>
1344 Last modifier for this node 1163 Purpose of this class is to create a javascript toolkit independent javascript helper.
1345 </summary> 1164 </summary>
1346 <seealso cref="P:HttpServer.Rendering.Haml.Nodes.Node.Modifiers"/>
1347 </member> 1165 </member>
1348 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.ModifierCount"> 1166 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)">
1349 <summary> 1167 <summary>
1350 Number of modifiers for this line. 1168 Generates a list with JS options.
1351 </summary> 1169 </summary>
1170 <param name="sb">StringBuilder that the options should be added to.</param>
1171 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
1172 <param name="startWithComma">true if we should start with a comma.</param>
1352 </member> 1173 </member>
1353 <member name="P:HttpServer.Rendering.Haml.Nodes.Node.Parent"> 1174 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])">
1354 <summary> 1175 <summary>
1355 Parent node. 1176 Removes any javascript parameters from an array of parameters
1356 </summary> 1177 </summary>
1178 <param name="options">The array of parameters to remove javascript params from</param>
1179 <returns>An array of html parameters</returns>
1357 </member> 1180 </member>
1358 <member name="M:HttpServer.Rendering.Haml.Nodes.ChildNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node)"> 1181 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])">
1359 <summary> 1182 <summary>
1360 Child nodes may not be the first node on a line 1183 javascript action that should be added to the "onsubmit" event in the form tag.
1361 </summary> 1184 </summary>
1362 <param name="parent">parent node</param> 1185 <returns></returns>
1186 <remarks>All javascript option names should end with colon.</remarks>
1187 <example>
1188 <code>
1189 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1190 </code>
1191 </example>
1363 </member> 1192 </member>
1364 <member name="M:HttpServer.Rendering.Haml.Nodes.ChildNode.AddMe(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,HttpServer.Rendering.Haml.Nodes.Node)"> 1193 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])">
1365 <summary> 1194 <summary>
1366 Creates a DIV node and add's the specified node to it. 1195 Requests a url through ajax
1367 </summary> 1196 </summary>
1368 <param name="prototypes">Contains all prototypes for each control char. used to instanciate new nodes.</param> 1197 <param name="url">url to fetch</param>
1369 <param name="parent">parent node</param> 1198 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
1370 <param name="line">current line information</param> 1199 <returns>a link tag</returns>
1371 <param name="me">node to add to the DIV node</param> 1200 <remarks>All javascript option names should end with colon.</remarks>
1372 <returns>current node</returns> 1201 <example>
1202 <code>
1203 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1204 </code>
1205 </example>
1373 </member> 1206 </member>
1374 <member name="M:HttpServer.Rendering.Haml.Nodes.ChildNode.GetEndPos(System.Int32,System.String,System.Char)"> 1207 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])">
1375 <summary> 1208 <summary>
1376 Get endposition for this modifier. 1209 Ajax requests that updates an element with
1210 the fetched content
1377 </summary> 1211 </summary>
1378 <param name="offset">where to start searching</param> 1212 <param name="url">Url to fetch content from</param>
1379 <param name="line">contents of the current line</param> 1213 <param name="targetId">element to update</param>
1380 <param name="terminator">char that tells us that this is the end position</param> 1214 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
1381 <returns>index on the current line</returns> 1215 <returns>A link tag.</returns>
1216 <remarks>All javascript option names should end with colon.</remarks>
1217 <example>
1218 <code>
1219 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
1220 </code>
1221 </example>
1382 </member> 1222 </member>
1383 <member name="M:HttpServer.Rendering.Haml.Nodes.ChildNode.GetEndPos(System.Int32,System.String)"> 1223 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])">
1384 <summary> 1224 <summary>
1385 Get endposition for this modifier. 1225 A link that pop ups a Dialog (overlay div)
1386 </summary> 1226 </summary>
1387 <param name="offset">where to start searching</param> 1227 <param name="url">url to contents of dialog</param>
1388 <param name="line">contents of the current line</param> 1228 <param name="title">link title</param>
1389 <returns>index on the current line</returns> 1229 <returns>A "a"-tag that popups a dialog when clicked</returns>
1230 <param name="htmlAttributes">name/value of html attributes</param>
1231 <example>
1232 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1233 </example>
1390 </member> 1234 </member>
1391 <member name="P:HttpServer.Rendering.Haml.Nodes.ChildNode.IsTextNode"> 1235 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog">
1392 <summary> 1236 <summary>
1393 This is a plain text node 1237 Close a javascript dialog window/div.
1394 </summary> 1238 </summary>
1239 <returns>javascript for closing a dialog.</returns>
1240 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
1395 </member> 1241 </member>
1396 <member name="M:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node)"> 1242 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])">
1397 <summary> 1243 <summary>
1398 Contains C# code that will be rendered into the view. 1244 Creates a new modal dialog window
1399 </summary> 1245 </summary>
1400 <param name="parent">Parent node</param> 1246 <param name="url">url to open in window.</param>
1247 <param name="title">window title (may not be supported by all js implementations)</param>
1248 <param name="options"></param>
1249 <returns></returns>
1401 </member> 1250 </member>
1402 <member name="M:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 1251 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
1403 <summary> 1252 <summary>
1404 Parse node contents add return a fresh node. 1253 PrototypeJS implementation of the javascript functions.
1405 </summary> 1254 </summary>
1406 <param name="prototypes">List containing all node types</param>
1407 <param name="parent">Node that this is a subnode to. Can be null</param>
1408 <param name="line">Line to parse</param>
1409 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param>
1410 <returns>A node corresponding to the bla bla; null if parsing failed.</returns>
1411 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
1412 </member> 1255 </member>
1413 <member name="M:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode.CanHandle(System.String,System.Boolean)"> 1256 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
1414 <summary> 1257 <summary>
1415 determines if this node can handle the line (by checking the first word); 1258 Requests a url through ajax
1416 </summary> 1259 </summary>
1417 <param name="word">Controller char (word)</param> 1260 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
1418 <returns>true if text belongs to this node type</returns> 1261 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
1419 <param name="firstNode">first node on line</param> 1262 <returns>a link tag</returns>
1263 <remarks>onclick attribute is used by this method.</remarks>
1264 <example>
1265 <code>
1266 // plain text
1267 JSHelper.AjaxRequest("'/user/show/1'");
1268
1269 // ajax request using this.href
1270 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
1271 </code>
1272 </example>
1420 </member> 1273 </member>
1421 <member name="M:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode.ToHtml"> 1274 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)">
1422 <summary> 1275 <summary>
1423 Generate HTML for this node (with asp tags for code) 1276 Determins if a list of strings contains a specific value
1424 </summary> 1277 </summary>
1425 <returns></returns> 1278 <param name="options">options to check in</param>
1279 <param name="value">value to find</param>
1280 <returns>true if value was found</returns>
1281 <remarks>case insensitive</remarks>
1426 </member> 1282 </member>
1427 <member name="M:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 1283 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])">
1428 <summary> 1284 <summary>
1429 = is placed at the end of a tag definition, after class, id, and attribute declarations. 1285 Ajax requests that updates an element with
1430 It’s just a shortcut for inserting Ruby code into an element. It works the same as = without a tag: 1286 the fetched content
1431 it inserts the result of the Ruby code into the template.
1432 However, if the result is short enough, it is displayed entirely on one line.
1433 </summary> 1287 </summary>
1434 <param name="inString">True if we are inside the internal stringbuilder</param> 1288 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
1435 <param name="smallEnough">true if all subnodes fit on one line</param> 1289 <param name="targetId">element to update</param>
1436 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param> 1290 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
1437 <returns>c# code</returns> 1291 <returns>A link tag.</returns>
1292 <example>
1293 <code>
1294 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
1295 </code>
1296 </example>
1438 </member> 1297 </member>
1439 <member name="P:HttpServer.Rendering.Haml.Nodes.DisplayCodeNode.IsTextNode"> 1298 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])">
1440 <summary> 1299 <summary>
1441 Determines if this is a textnode (containg plain text) 1300 A link that pop ups a Dialog (overlay div)
1442 </summary> 1301 </summary>
1302 <param name="url">URL to contents of dialog</param>
1303 <param name="title">link title</param>
1304 <param name="htmlAttributes">name, value, name, value</param>
1305 <returns>
1306 A "a"-tag that popups a dialog when clicked
1307 </returns>
1308 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
1309 And the following JavaScript (load it in application.js):
1310 <code>
1311 Event.observe(window, 'load',
1312 function() {
1313 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
1314 }
1315 );
1316 </code>
1317 </remarks>
1318 <example>
1319 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1320 </example>
1443 </member> 1321 </member>
1444 <member name="T:HttpServer.Rendering.Haml.Nodes.AttributeNode"> 1322 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])">
1445 <summary> 1323 <summary>
1446 Contains HTML attributes. 1324 create a modal dialog (usually using DIVs)
1447 </summary> 1325 </summary>
1326 <param name="url">url to fetch</param>
1327 <param name="title">dialog title</param>
1328 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param>
1329 <returns></returns>
1448 </member> 1330 </member>
1449 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node,System.Collections.Generic.List{HttpServer.Rendering.Haml.Nodes.AttributeNode.Attribute})"> 1331 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog">
1450 <summary> 1332 <summary>
1451 Create a new node 1333 Close a javascript dialog window/div.
1452 </summary> 1334 </summary>
1453 <param name="parent">parent node</param> 1335 <returns>javascript for closing a dialog.</returns>
1454 <param name="col">collection of attributes</param> 1336 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/>
1455 </member> 1337 </member>
1456 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node)"> 1338 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])">
1457 <summary> 1339 <summary>
1458 create an attribute node 1340 javascript action that should be added to the "onsubmit" event in the form tag.
1459 </summary> 1341 </summary>
1460 <param name="parent">parent node</param> 1342 <param name="options">remember to encapsulate strings in ''</param>
1343 <returns></returns>
1344 <remarks>All javascript option names should end with colon.</remarks>
1345 <example>
1346 <code>
1347 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1348 </code>
1349 </example>
1461 </member> 1350 </member>
1462 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.GetAttribute(System.String)"> 1351 <member name="T:HttpServer.IHttpRequestParser">
1463 <summary> 1352 <summary>
1464 Get an attribute 1353 Event driven parser used to parse incoming HTTP requests.
1465 </summary> 1354 </summary>
1466 <param name="name">name of the attribute (case sensitive)</param> 1355 <remarks>
1467 <returns>attribute if found; otherwise null.</returns> 1356 The parser supports partial messages and keeps the states between
1357 each parsed buffer. It's therefore important that the parser gets
1358 <see cref="M:HttpServer.IHttpRequestParser.Clear"/>ed if a client disconnects.
1359 </remarks>
1468 </member> 1360 </member>
1469 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 1361 <member name="M:HttpServer.IHttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
1470 <summary> 1362 <summary>
1471 Parse node contents add return a fresh node. 1363 Parse partial or complete message.
1472 </summary> 1364 </summary>
1473 <param name="prototypes">List containing all node types</param> 1365 <param name="buffer">buffer containing incoming bytes</param>
1474 <param name="parent">Node that this is a subnode to. Can be null</param> 1366 <param name="offset">where in buffer that parsing should start</param>
1475 <param name="line">Line to parse</param> 1367 <param name="count">number of bytes to parse</param>
1476 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param> 1368 <returns>Unparsed bytes left in buffer.</returns>
1477 <returns>A node corresponding to the bla bla; null if parsing failed.</returns> 1369 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
1478 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
1479 </member> 1370 </member>
1480 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.CanHandle(System.String,System.Boolean)"> 1371 <member name="M:HttpServer.IHttpRequestParser.Clear">
1481 <summary> 1372 <summary>
1482 determines if this node can handle the line (by checking the first word); 1373 Clear parser state.
1483 </summary> 1374 </summary>
1484 <param name="word">Controller char (word)</param>
1485 <returns>true if text belongs to this node type</returns>
1486 <param name="firstNode">first node on line</param>
1487 </member> 1375 </member>
1488 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.ToHtml"> 1376 <member name="P:HttpServer.IHttpRequestParser.CurrentState">
1489 <summary> 1377 <summary>
1490 Convert node to HTML (with ASP-tags) 1378 Current state in parser.
1491 </summary> 1379 </summary>
1492 <returns>HTML string</returns>
1493 </member> 1380 </member>
1494 <member name="M:HttpServer.Rendering.Haml.Nodes.AttributeNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 1381 <member name="E:HttpServer.IHttpRequestParser.RequestCompleted">
1495 <summary> 1382 <summary>
1496 Convert the node to c# code 1383 A request have been successfully parsed.
1497 </summary> 1384 </summary>
1498 <param name="inString">True if we are inside the internal stringbuilder</param>
1499 <param name="smallEnough">true if all subnodes fit on one line</param>
1500 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param>
1501 <returns>c# code</returns>
1502 </member> 1385 </member>
1503 <member name="P:HttpServer.Rendering.Haml.Nodes.AttributeNode.Attributes"> 1386 <member name="E:HttpServer.IHttpRequestParser.BodyBytesReceived">
1504 <summary> 1387 <summary>
1505 html attributes 1388 More body bytes have been received.
1506 </summary> 1389 </summary>
1507 </member> 1390 </member>
1508 <member name="T:HttpServer.Rendering.Haml.Nodes.AttributeNode.Attribute"> 1391 <member name="E:HttpServer.IHttpRequestParser.RequestLineReceived">
1509 <summary> 1392 <summary>
1510 A attribute 1393 Request line have been received.
1511 </summary> 1394 </summary>
1512 </member> 1395 </member>
1513 <member name="F:HttpServer.Rendering.Haml.Nodes.AttributeNode.Attribute.Simple"> 1396 <member name="E:HttpServer.IHttpRequestParser.HeaderReceived">
1514 <summary> 1397 <summary>
1515 value is a simple word or quoted text 1398 A header have been received.
1516 </summary> 1399 </summary>
1517 </member> 1400 </member>
1518 <member name="F:HttpServer.Rendering.Haml.Nodes.AttributeNode.Attribute.Name"> 1401 <member name="P:HttpServer.IHttpRequestParser.LogWriter">
1519 <summary> 1402 <summary>
1520 Name of the attribute 1403 Gets or sets the log writer.
1521 </summary> 1404 </summary>
1522 </member> 1405 </member>
1523 <member name="F:HttpServer.Rendering.Haml.Nodes.AttributeNode.Attribute.Value"> 1406 <member name="T:HttpServer.RequestParserState">
1524 <summary> 1407 <summary>
1525 Value, can be a statement, variable or quoted text. 1408 Current state in the parsing.
1526 </summary> 1409 </summary>
1527 </member> 1410 </member>
1528 <member name="T:HttpServer.Rendering.TemplateArguments"> 1411 <member name="F:HttpServer.RequestParserState.FirstLine">
1529 <summary> 1412 <summary>
1530 Arguments being used in a template. 1413 Should parse the request line
1531 </summary> 1414 </summary>
1532 <seealso cref="T:HttpServer.Rendering.TemplateManager"/>
1533 <seealso cref="T:HttpServer.Rendering.ITinyTemplate"/>
1534 </member> 1415 </member>
1535 <member name="F:HttpServer.Rendering.TemplateArguments._arguments"> 1416 <member name="F:HttpServer.RequestParserState.HeaderName">
1536 <summary> 1417 <summary>
1537 Holds the arguments connected to their names for quick access. 1418 Searching for a complete header name
1538 (since the ArgumentContainer also holds the name for the argument the mapping with strings is somewhat redundant
1539 but since the data do 'belong' to the ArgumentContainer this solution was chosen to speed up access)
1540 </summary> 1419 </summary>
1541 </member> 1420 </member>
1542 <member name="M:HttpServer.Rendering.TemplateArguments.#ctor"> 1421 <member name="F:HttpServer.RequestParserState.AfterName">
1543 <summary> 1422 <summary>
1544 Initializes the class without any set arguments. 1423 Searching for colon after header name (ignoring white spaces)
1545 </summary> 1424 </summary>
1546 </member> 1425 </member>
1547 <member name="M:HttpServer.Rendering.TemplateArguments.#ctor(HttpServer.Rendering.TemplateArguments)"> 1426 <member name="F:HttpServer.RequestParserState.Between">
1548 <summary> 1427 <summary>
1549 Initializes the class with all the arguments of the parameter class. 1428 Searching for start of header value (ignoring white spaces)
1550 </summary> 1429 </summary>
1551 <param name="arguments">Cannot be null</param>
1552 <exception cref="T:System.ArgumentNullException">If arguments is null</exception>
1553 </member> 1430 </member>
1554 <member name="M:HttpServer.Rendering.TemplateArguments.#ctor(System.Object[])"> 1431 <member name="F:HttpServer.RequestParserState.HeaderValue">
1555 <summary> 1432 <summary>
1556 Initializes the class with the objects in the parameterlist. 1433 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
1557 Note that each object that is null must be followed by a type.
1558 </summary> 1434 </summary>
1559 <param name="arguments">Should contain ordered pairs/truples of string, object and type where type is optional if the object isn´t null</param>
1560 <example>new TemplateArguments("Dir", "\", "Users", null, typeof(User));</example>
1561 <exception cref="T:System.ArgumentException">If optional type differs from type of object (if object != null) or argument name is duplicate</exception>
1562 <exception cref="T:System.ArgumentException">If the order of objects is incorrect</exception>
1563 <exception cref="T:System.ArgumentNullException">If any argument name or type is null</exception>
1564 </member> 1435 </member>
1565 <member name="M:HttpServer.Rendering.TemplateArguments.Update(HttpServer.Rendering.TemplateArguments)"> 1436 <member name="F:HttpServer.RequestParserState.Body">
1566 <summary> 1437 <summary>
1567 A function that merges two argument holders updating and adding values 1438 Adding bytes to body
1568 </summary> 1439 </summary>
1569 <param name="arguments"></param>
1570 <exception cref="T:System.ArgumentNullException">If arguments is null</exception>
1571 </member> 1440 </member>
1572 <member name="M:HttpServer.Rendering.TemplateArguments.Finalize"> 1441 <member name="T:HttpServer.IHttpRequest">
1573 <summary> 1442 <summary>
1574 Clears added arguments 1443 Contains server side HTTP request information.
1575 </summary> 1444 </summary>
1576 </member> 1445 </member>
1577 <member name="M:HttpServer.Rendering.TemplateArguments.Add(System.String,System.Object)"> 1446 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
1578 <summary> 1447 <summary>
1579 Adds an argument. 1448 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
1580 (Will throw ArgumentException on duplicates since adding an argument twice points to incorrect code, for ways around
1581 this <see cref="M:HttpServer.Rendering.TemplateArguments.Update(System.String,System.Object)"/>
1582 </summary> 1449 </summary>
1583 <param name="argumentName">Cannot be null</param> 1450 <param name="name">Name of the header, should not be URL encoded</param>
1584 <param name="argumentObject">Cannot be null</param> 1451 <param name="value">Value of the header, should not be URL encoded</param>
1585 <exception cref="T:System.NullReferenceException">If argumentName or argumentObject is null</exception> 1452 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
1586 <exception cref="T:System.ArgumentException">If an argument named argumentName already exists</exception>
1587 </member> 1453 </member>
1588 <member name="M:HttpServer.Rendering.TemplateArguments.Add(System.String,System.Object,System.Type)"> 1454 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
1589 <summary> 1455 <summary>
1590 Adds an argument. Allows for argumentObject to be null 1456 Add bytes to the body
1591 (Will throw ArgumentException <see cref="M:HttpServer.Rendering.TemplateArguments.Add(System.String,System.Object)"/>
1592 </summary> 1457 </summary>
1593 <param name="argumentName">Cannot be null</param> 1458 <param name="bytes">buffer to read bytes from</param>
1594 <param name="argumentObject"></param> 1459 <param name="offset">where to start read</param>
1595 <param name="argumentType">Cannot be null</param> 1460 <param name="length">number of bytes to read</param>
1596 <exception cref="T:System.NullReferenceException">If argumentName or argumentType is null</exception> 1461 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
1597 <exception cref="T:System.ArgumentException">If an argument named argumentName already exists or argumentObject != null and typeof(argumentObject) differs from argumentType</exception> 1462 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
1463 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
1464 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
1598 </member> 1465 </member>
1599 <member name="M:HttpServer.Rendering.TemplateArguments.Update(System.String,System.Object)"> 1466 <member name="M:HttpServer.IHttpRequest.Clear">
1600 <summary> 1467 <summary>
1601 Updates an already added argument 1468 Clear everything in the request
1602 </summary> 1469 </summary>
1603 <param name="argumentName">Cannot be null</param>
1604 <param name="argumentObject">Cannot be null</param>
1605 <exception cref="T:System.ArgumentException">If no argument named argumentName exists</exception>
1606 <exception cref="T:System.ArgumentNullException">If argumentName or argumentObject is null</exception>
1607 </member> 1470 </member>
1608 <member name="M:HttpServer.Rendering.TemplateArguments.Update(System.String,System.Object,System.Type)"> 1471 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
1609 <summary> 1472 <summary>
1610 Updates an already added argument, allows for argumentObject to be null 1473 Decode body into a form.
1611 </summary> 1474 </summary>
1612 <param name="argumentName">Cannot be null</param> 1475 <param name="providers">A list with form decoders.</param>
1613 <param name="argumentObject"></param> 1476 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
1614 <param name="argumentType">Cannot be null</param> 1477 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
1615 <exception cref="T:System.ArgumentNullException">If argumentName or argumentType is null</exception>
1616 <exception cref="T:System.ArgumentException">If an argument named argumentName doesn´t exists or argumentObject != null and typeof(argumentObject) differs from argumentType</exception>
1617 </member> 1478 </member>
1618 <member name="M:HttpServer.Rendering.TemplateArguments.Clear"> 1479 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
1619 <summary> 1480 <summary>
1620 Clears all added arguments 1481 Sets the cookies.
1621 </summary> 1482 </summary>
1483 <param name="cookies">The cookies.</param>
1622 </member> 1484 </member>
1623 <member name="M:HttpServer.Rendering.TemplateArguments.GetArguments"> 1485 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
1624 <summary> 1486 <summary>
1625 Retrieves the arguments 1487 Create a response object.
1626 (Does so now by copying the values to a new array, could be optimized?)
1627 </summary> 1488 </summary>
1628 <returns>An array containing arguments with name, object and type</returns> 1489 <param name="context">Context for the connected client.</param>
1490 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
1629 </member> 1491 </member>
1630 <member name="M:HttpServer.Rendering.TemplateArguments.GetHashCode"> 1492 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
1631 <summary> 1493 <summary>
1632 Returns a individual hashcode built upon the specified types the class is holding 1494 Gets kind of types accepted by the client.
1633 </summary> 1495 </summary>
1634 <remarks>The hashcode is made by joining the typenames of all held arguments and making a string hashcode from them</remarks>
1635 <returns></returns>
1636 </member> 1496 </member>
1637 <member name="M:HttpServer.Rendering.TemplateArguments.GetFullTypeName(System.Type)"> 1497 <member name="P:HttpServer.IHttpRequest.Body">
1638 <summary> 1498 <summary>
1639 Retrieves a concated typename ie DictinaryInt32String 1499 Gets or sets body stream.
1640 </summary> 1500 </summary>
1641 <param name="type">The type to retrieve the name for</param>
1642 </member> 1501 </member>
1643 <member name="M:HttpServer.Rendering.TemplateArguments.Contains(System.String)"> 1502 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
1644 <summary> 1503 <summary>
1645 Checks whether a specific argument is specified or not. 1504 Gets whether the body is complete.
1646 </summary> 1505 </summary>
1647 <param name="name">Argument name</param>
1648 <returns>true if argument is specified; otherwise false.</returns>
1649 </member> 1506 </member>
1650 <member name="P:HttpServer.Rendering.TemplateArguments.Item(System.String)"> 1507 <member name="P:HttpServer.IHttpRequest.Connection">
1651 <summary> 1508 <summary>
1652 Function to make it possible to index out known arguments 1509 Gets or sets kind of connection used for the session.
1653 </summary> 1510 </summary>
1654 <param name="name">The name of an added argument</param>
1655 <returns>Null if no ArgumentContainer by name was found</returns>
1656 </member> 1511 </member>
1657 <member name="T:HttpServer.Rendering.ArgumentContainer"> 1512 <member name="P:HttpServer.IHttpRequest.ContentLength">
1658 <summary> 1513 <summary>
1659 A container class grouping mapping name, argument type and the argument object 1514 Gets or sets number of bytes in the body.
1660 </summary> 1515 </summary>
1661 </member> 1516 </member>
1662 <member name="F:HttpServer.Rendering.ArgumentContainer._argumentName"> 1517 <member name="P:HttpServer.IHttpRequest.Cookies">
1663 <summary> 1518 <summary>
1664 Contains the name mapped to the argument 1519 Gets cookies that was sent with the request.
1665 </summary> 1520 </summary>
1666 </member> 1521 </member>
1667 <member name="F:HttpServer.Rendering.ArgumentContainer._argumentType"> 1522 <member name="P:HttpServer.IHttpRequest.Form">
1668 <summary> 1523 <summary>
1669 Contains the type of the argument, this must be valid if _argumentObject is null 1524 Gets form parameters.
1670 </summary> 1525 </summary>
1671 </member> 1526 </member>
1672 <member name="F:HttpServer.Rendering.ArgumentContainer._argumentObject"> 1527 <member name="P:HttpServer.IHttpRequest.Headers">
1673 <summary> 1528 <summary>
1674 Holds the actual object 1529 Gets headers sent by the client.
1675 </summary> 1530 </summary>
1676 </member> 1531 </member>
1677 <member name="M:HttpServer.Rendering.ArgumentContainer.#ctor(System.String,System.Object)"> 1532 <member name="P:HttpServer.IHttpRequest.HttpVersion">
1678 <summary> 1533 <summary>
1679 Constructor to initiate an ArgumentContainer, will set the ArgumentType to the value of the argumentObject's type 1534 Gets or sets version of HTTP protocol that's used.
1680 </summary> 1535 </summary>
1681 <param name="argumentName">Cannot be null</param> 1536 <remarks>
1682 <param name="argumentObject">Cannot be null</param> 1537 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
1683 <exception cref="T:System.ArgumentNullException">If argumentName or argumentObject is null</exception> 1538 </remarks>
1539 <seealso cref="T:HttpServer.HttpHelper"/>
1684 </member> 1540 </member>
1685 <member name="M:HttpServer.Rendering.ArgumentContainer.#ctor(System.String,System.Object,System.Type)"> 1541 <member name="P:HttpServer.IHttpRequest.IsAjax">
1686 <summary> 1542 <summary>
1687 Alternative constructor allowing argumentObject parameter to be null 1543 Gets whether the request was made by Ajax (Asynchronous JavaScript)
1688 </summary> 1544 </summary>
1689 <param name="argumentName">Cannot be null</param>
1690 <param name="argumentObject"></param>
1691 <param name="argumentType">Cannot be null</param>
1692 <exception cref="T:System.NullReferenceException">If argumentName or argumentType is null</exception>
1693 <exception cref="T:System.ArgumentException">If argumentObject != null and argumentType != typeof(argumentObject)</exception>
1694 </member> 1545 </member>
1695 <member name="M:HttpServer.Rendering.ArgumentContainer.SetObject(System.Object)"> 1546 <member name="P:HttpServer.IHttpRequest.Method">
1696 <summary> 1547 <summary>
1697 Sets the object and type of the argument, equal to ArgumentContainer.Object = ... 1548 Gets or sets requested method.
1698 </summary> 1549 </summary>
1699 <param name="argumentObject">Cannot be null</param> 1550 <remarks>
1700 <exception cref="T:System.ArgumentNullException">If argumentObject is null</exception> 1551 Will always be in upper case.
1552 </remarks>
1553 <see cref="P:HttpServer.IHttpRequest.Method"/>
1701 </member> 1554 </member>
1702 <member name="M:HttpServer.Rendering.ArgumentContainer.SetObject(System.Object,System.Type)"> 1555 <member name="P:HttpServer.IHttpRequest.Param">
1703 <summary> 1556 <summary>
1704 Sets the argument object and type. Type of the object and argumentType must correspond. 1557 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
1705 </summary> 1558 </summary>
1706 <param name="argumentObject"></param>
1707 <param name="argumentType">Cannot be null</param>
1708 <exception cref="T:System.ArgumentNullException">If argumentType is null</exception>
1709 <exception cref="T:System.ArgumentException">If typeof(argumentObject) differs from argumentType and object != null</exception>
1710 </member> 1559 </member>
1711 <member name="P:HttpServer.Rendering.ArgumentContainer.Name"> 1560 <member name="P:HttpServer.IHttpRequest.QueryString">
1712 <summary> 1561 <summary>
1713 Attribute for retrieving the name. The name cannot be set however because an argument is defined by its name 1562 Gets variables sent in the query string
1714 changing the name would be changing the arguments meaning, thus an argument needing a name change should rather
1715 be recreated
1716 </summary> 1563 </summary>
1717 </member> 1564 </member>
1718 <member name="P:HttpServer.Rendering.ArgumentContainer.Type"> 1565 <member name="P:HttpServer.IHttpRequest.Uri">
1719 <summary> 1566 <summary>
1720 Returns the type of the argument object. The property cannot be set since the type depends on and must correspond to 1567 Gets or sets requested URI.
1721 the type of the object
1722 </summary> 1568 </summary>
1723 </member> 1569 </member>
1724 <member name="P:HttpServer.Rendering.ArgumentContainer.Object"> 1570 <member name="P:HttpServer.IHttpRequest.UriParts">
1725 <summary> 1571 <summary>
1726 Returns or changes the argument object. If the object is to be changed to null the type must be passed aswell, 1572 Gets URI absolute path divided into parts.
1727 in that case <see cref="M:HttpServer.Rendering.ArgumentContainer.SetObject(System.Object,System.Type)"/>
1728 </summary> 1573 </summary>
1729 <exception cref="T:System.ArgumentNullException">If set value is null</exception> 1574 <example>
1575 // URI is: http://gauffin.com/code/tiny/
1576 Console.WriteLine(request.UriParts[0]); // result: code
1577 Console.WriteLine(request.UriParts[1]); // result: tiny
1578 </example>
1579 <remarks>
1580 If you're using controllers than the first part is controller name,
1581 the second part is method name and the third part is Id property.
1582 </remarks>
1583 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
1730 </member> 1584 </member>
1731 <member name="T:HttpServer.Rendering.Haml.Nodes.PartialNode"> 1585 <member name="P:HttpServer.IHttpRequest.UriPath">
1732 <summary> 1586 <summary>
1733 A partial is a HAML template that is inserted into other HAML templates. 1587 Gets or sets path and query.
1734 </summary> 1588 </summary>
1589 <see cref="P:HttpServer.IHttpRequest.Uri"/>
1590 <remarks>
1591 Are only used during request parsing. Cannot be set after "Host" header have been
1592 added.
1593 </remarks>
1735 </member> 1594 </member>
1736 <member name="F:HttpServer.Rendering.Haml.Nodes.PartialNode._target"> 1595 <member name="T:HttpServer.Authentication.AuthenticationHandler">
1737 <summary> 1596 <summary>
1738 Contains the page/controller target for the partial. 1597 Delegate used to let authentication modules authenticate the user name and password.
1739 The PartialNode should be written as follows:
1740 ex.
1741
1742 _"requestedpage"{parametername="parametervalue",parametername2=parameter2,parametername3=parameter3:typeof(parameter3type)}
1743 </summary> 1598 </summary>
1599 <param name="realm">Realm that the user want to authenticate in</param>
1600 <param name="userName">User name specified by client</param>
1601 <param name="token">Can either be user password or implementation specific token.</param>
1602 <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>
1603 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
1604 <remarks>
1605 <para>
1606 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
1607 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
1608 </para>
1609 </remarks>
1744 </member> 1610 </member>
1745 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node)"> 1611 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
1746 <summary> 1612 <summary>
1747 create a new partial node. 1613 Let's you decide on a system level if authentication is required.
1748 </summary> 1614 </summary>
1749 <param name="parent">parent node</param> 1615 <param name="request">HTTP request from client</param>
1616 <returns>true if user should be authenticated.</returns>
1617 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
1618 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
1750 </member> 1619 </member>
1751 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.CanHandle(System.String,System.Boolean)"> 1620 <member name="T:HttpServer.HttpModules.ResourceFileModule">
1752 <summary> 1621 <summary>
1753 Determines if this node can handle the line (by checking the first word); 1622 Serves files that are stored in embedded resources.
1754 </summary> 1623 </summary>
1755 <param name="word">Controller char (word)</param>
1756 <returns>True if text belongs to this node type</returns>
1757 <param name="firstNode">First node on line.</param>
1758 </member> 1624 </member>
1759 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 1625 <member name="T:HttpServer.HttpModules.HttpModule">
1760 <summary> 1626 <summary>
1761 Parse node contents add return a fresh node. 1627 A HttpModule can be used to serve Uri's. The module itself
1628 decides if it should serve a Uri or not. In this way, you can
1629 get a very flexible http application since you can let multiple modules
1630 serve almost similar urls.
1762 </summary> 1631 </summary>
1763 <param name="parent">Node that this is a subnode to. Can be null</param> 1632 <remarks>
1764 <param name="prototypes">A list with node types</param> 1633 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.
1765 <param name="line">Line to parse</param> 1634 </remarks>
1766 <param name="offset">Where to start the parsing. Will be set to where the next node should start parsing</param>
1767 <returns>A node corresponding to the bla bla; null if parsing failed.</returns>
1768 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
1769 </member> 1635 </member>
1770 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 1636 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1771 <summary> 1637 <summary>
1772 Convert the node to c# code 1638 Method that process the url
1773 </summary> 1639 </summary>
1774 <param name="inString">True if we are inside the internal stringbuilder</param> 1640 <param name="request">Information sent by the browser about the request</param>
1775 <param name="smallEnough">true if all subnodes fit on one line</param> 1641 <param name="response">Information that is being sent back to the client.</param>
1776 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param> 1642 <param name="session">Session used to </param>
1777 <returns>c# code</returns> 1643 <returns>true if this module handled the request.</returns>
1778 </member> 1644 </member>
1779 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.ToHtml"> 1645 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
1780 <summary> 1646 <summary>
1781 Convert node to HTML (with ASP-tags) 1647 Set the log writer to use.
1782 </summary> 1648 </summary>
1783 <returns>HTML string</returns> 1649 <param name="writer">logwriter to use.</param>
1784 </member> 1650 </member>
1785 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.GetCode"> 1651 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
1786 <summary> 1652 <summary>
1787 Helper function to retrieve the code for the partial request 1653 Log something.
1788 </summary> 1654 </summary>
1789 <returns>A string representing the code for invocating a render of the partial</returns> 1655 <param name="prio">importance of log message</param>
1656 <param name="message">message</param>
1790 </member> 1657 </member>
1791 <member name="M:HttpServer.Rendering.Haml.Nodes.PartialNode.ThrowError(System.String)"> 1658 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
1792 <summary> 1659 <summary>
1793 Throw an exception with predefined information 1660 If true specifies that the module doesn't consume the processing of a request so that subsequent modules
1661 can continue processing afterwards. Default is false.
1794 </summary> 1662 </summary>
1795 <param name="reason">why the exception was thrown</param>
1796 </member> 1663 </member>
1797 <member name="P:HttpServer.Rendering.Haml.Nodes.PartialNode.IsTextNode"> 1664 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor">
1798 <summary> 1665 <summary>
1799 This is a plain text node 1666 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
1667 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
1668 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
1800 </summary> 1669 </summary>
1801 </member> 1670 </member>
1802 <member name="P:HttpServer.Rendering.Haml.Nodes.PartialNode.Target"> 1671 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)">
1803 <summary> 1672 <summary>
1804 Returns the page/controller target for the node 1673 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
1674 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
1675 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
1805 </summary> 1676 </summary>
1677 <param name="logWriter">The log writer to use when logging events</param>
1806 </member> 1678 </member>
1807 <member name="T:HttpServer.Rendering.ResourceTemplateLoader"> 1679 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes">
1808 <summary> 1680 <summary>
1809 Loads templates from embedded resources. 1681 Mimtypes that this class can handle per default
1810 </summary> 1682 </summary>
1811 </member> 1683 </member>
1812 <member name="M:HttpServer.Rendering.ResourceTemplateLoader.LoadTemplates(System.String,System.Reflection.Assembly,System.String)"> 1684 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)">
1813 <summary> 1685 <summary>
1814 Loads templates from a namespace in the given assembly to an uri 1686 Loads resources from a namespace in the given assembly to an uri
1815 </summary> 1687 </summary>
1816 <param name="toUri">The uri to map the resources to</param> 1688 <param name="toUri">The uri to map the resources to</param>
1817 <param name="fromAssembly">The assembly in which the resources reside</param> 1689 <param name="fromAssembly">The assembly in which the resources reside</param>
@@ -1819,136 +1691,107 @@
1819 <usage> 1691 <usage>
1820 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 1692 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
1821 1693
1822 will make ie the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/ 1694 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
1823 </usage> 1695 </usage>
1696 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
1824 </member> 1697 </member>
1825 <member name="M:HttpServer.Rendering.ResourceTemplateLoader.LoadTemplate(System.String)"> 1698 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
1826 <summary>
1827 Load a template into a <see cref="T:System.IO.TextReader"/> and return it.
1828 </summary>
1829 <param name="path">Relative path (and filename) to template.</param>
1830 <returns>
1831 a <see cref="T:System.IO.TextReader"/> if file was found; otherwise null.
1832 </returns>
1833 </member>
1834 <member name="M:HttpServer.Rendering.ResourceTemplateLoader.GetFiles(System.String,System.String)">
1835 <summary>
1836 Fetch all files from the resource that matches the specified arguments.
1837 </summary>
1838 <param name="path">Where the file should reside.</param>
1839 <param name="filename">Files to check</param>
1840 <returns>
1841 a list of files if found; or an empty array if no files are found.
1842 </returns>
1843 </member>
1844 <member name="M:HttpServer.Rendering.ResourceTemplateLoader.CheckTemplate(HttpServer.Rendering.ITemplateInfo)">
1845 <summary>
1846 Always returns true since a resource won't be updated during execution
1847 </summary>
1848 <param name="info"></param>
1849 <returns></returns>
1850 </member>
1851 <member name="M:HttpServer.Rendering.ResourceTemplateLoader.HasTemplate(System.String)">
1852 <summary>
1853 Returns whether or not the loader has an instance of the file requested
1854 </summary>
1855 <param name="filename">The name of the template/file</param>
1856 <returns>True if the loader can provide the file</returns>
1857 </member>
1858 <member name="T:HttpServer.LogPrio">
1859 <summary>
1860 Priority for log entries
1861 </summary>
1862 <seealso cref="T:HttpServer.ILogWriter"/>
1863 </member>
1864 <member name="F:HttpServer.LogPrio.Trace">
1865 <summary> 1699 <summary>
1866 Very detailed logs to be able to follow the flow of the program. 1700 Returns true if the module can handle the request
1867 </summary> 1701 </summary>
1868 </member> 1702 </member>
1869 <member name="F:HttpServer.LogPrio.Debug"> 1703 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1870 <summary> 1704 <summary>
1871 Logs to help debug errors in the application 1705 Method that process the url
1872 </summary> 1706 </summary>
1707 <param name="request">Information sent by the browser about the request</param>
1708 <param name="response">Information that is being sent back to the client.</param>
1709 <param name="session">Session used to </param>
1710 <returns>true if this module handled the request.</returns>
1873 </member> 1711 </member>
1874 <member name="F:HttpServer.LogPrio.Info"> 1712 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
1875 <summary> 1713 <summary>
1876 Information to be able to keep track of state changes etc. 1714 List with all mime-type that are allowed.
1877 </summary> 1715 </summary>
1716 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
1878 </member> 1717 </member>
1879 <member name="F:HttpServer.LogPrio.Warning"> 1718 <member name="T:HttpServer.HttpModules.FileModule">
1880 <summary> 1719 <summary>
1881 Something did not go as we expected, but it's no problem. 1720 The purpose of this module is to serve files.
1882 </summary> 1721 </summary>
1883 </member> 1722 </member>
1884 <member name="F:HttpServer.LogPrio.Error"> 1723 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)">
1885 <summary> 1724 <summary>
1886 Something that should not fail failed, but we can still keep 1725 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
1887 on going.
1888 </summary> 1726 </summary>
1727 <param name="baseUri">Uri to serve, for instance "/files/"</param>
1728 <param name="basePath">Path on hard drive where we should start looking for files</param>
1729 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
1889 </member> 1730 </member>
1890 <member name="F:HttpServer.LogPrio.Fatal"> 1731 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)">
1891 <summary> 1732 <summary>
1892 Something failed, and we cannot handle it properly. 1733 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
1893 </summary> 1734 </summary>
1735 <param name="baseUri">Uri to serve, for instance "/files/"</param>
1736 <param name="basePath">Path on hard drive where we should start looking for files</param>
1894 </member> 1737 </member>
1895 <member name="T:HttpServer.ILogWriter"> 1738 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes">
1896 <summary> 1739 <summary>
1897 Interface used to write to log files. 1740 Mimtypes that this class can handle per default
1898 </summary> 1741 </summary>
1899 </member> 1742 </member>
1900 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 1743 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)">
1901 <summary> 1744 <summary>
1902 Write an entry to the log file. 1745 Determines if the request should be handled by this module.
1746 Invoked by the <see cref="T:HttpServer.HttpServer"/>
1903 </summary> 1747 </summary>
1904 <param name="source">object that is writing to the log</param> 1748 <param name="uri"></param>
1905 <param name="priority">importance of the log message</param> 1749 <returns>true if this module should handle it.</returns>
1906 <param name="message">the message</param>
1907 </member> 1750 </member>
1908 <member name="T:HttpServer.ConsoleLogWriter"> 1751 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)">
1909 <summary> 1752 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception>
1910 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
1911 </summary>
1912 <seealso cref="T:HttpServer.ILogWriter"/>
1913 </member> 1753 </member>
1914 <member name="F:HttpServer.ConsoleLogWriter.Instance"> 1754 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})">
1915 <summary> 1755 <summary>
1916 The actual instance of this class. 1756 check if source contains any of the chars.
1917 </summary> 1757 </summary>
1758 <param name="source"></param>
1759 <param name="chars"></param>
1760 <returns></returns>
1918 </member> 1761 </member>
1919 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 1762 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1920 <summary> 1763 <summary>
1921 Logwriters the specified source. 1764 Method that process the Uri.
1922 </summary> 1765 </summary>
1923 <param name="source">object that wrote the logentry.</param> 1766 <param name="request">Information sent by the browser about the request</param>
1924 <param name="prio">Importance of the log message</param> 1767 <param name="response">Information that is being sent back to the client.</param>
1925 <param name="message">The message.</param> 1768 <param name="session">Session used to </param>
1769 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
1770 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
1926 </member> 1771 </member>
1927 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)"> 1772 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)">
1928 <summary> 1773 <summary>
1929 Get color for the specified logprio 1774 return a file extension from an absolute Uri path (or plain filename)
1930 </summary> 1775 </summary>
1931 <param name="prio">prio for the log entry</param> 1776 <param name="uri"></param>
1932 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns> 1777 <returns></returns>
1933 </member> 1778 </member>
1934 <member name="T:HttpServer.NullLogWriter"> 1779 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes">
1935 <summary> 1780 <summary>
1936 Default log writer, writes everything to null (nowhere). 1781 List with all mime-type that are allowed.
1937 </summary> 1782 </summary>
1938 <seealso cref="T:HttpServer.ILogWriter"/> 1783 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
1939 </member> 1784 </member>
1940 <member name="F:HttpServer.NullLogWriter.Instance"> 1785 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars">
1941 <summary> 1786 <summary>
1942 The logging instance. 1787 characters that may not exist in a path.
1943 </summary> 1788 </summary>
1789 <example>
1790 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
1791 </example>
1944 </member> 1792 </member>
1945 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 1793 <member name="T:HttpServer.HttpForm">
1946 <summary> 1794 <summary>Container for posted form data</summary>
1947 Writes everything to null
1948 </summary>
1949 <param name="source">object that wrote the logentry.</param>
1950 <param name="prio">Importance of the log message</param>
1951 <param name="message">The message.</param>
1952 </member> 1795 </member>
1953 <member name="T:HttpServer.HttpInput"> 1796 <member name="T:HttpServer.HttpInput">
1954 <summary> 1797 <summary>
@@ -2010,22 +1853,24 @@
2010 <member name="M:HttpServer.HttpInput.Add(System.String,System.String)"> 1853 <member name="M:HttpServer.HttpInput.Add(System.String,System.String)">
2011 <summary> 1854 <summary>
2012 Add a new element. Form array elements are parsed 1855 Add a new element. Form array elements are parsed
2013 and added in a correct hierachy. 1856 and added in a correct hierarchy.
2014 </summary> 1857 </summary>
2015 <param name="name">Name is converted to lower case.</param> 1858 <param name="name">Name is converted to lower case.</param>
2016 <param name="value"></param> 1859 <param name="value"></param>
1860 <exception cref="T:System.ArgumentNullException"><c>name</c> is null.</exception>
1861 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
2017 </member> 1862 </member>
2018 <member name="M:HttpServer.HttpInput.Contains(System.String)"> 1863 <member name="M:HttpServer.HttpInput.Contains(System.String)">
2019 <summary> 1864 <summary>
2020 Returns true if the class contains a HttpInput value with the corresponding name 1865 Returns true if the class contains a <see cref="T:HttpServer.HttpInput"/> with the corresponding name.
2021 </summary> 1866 </summary>
2022 <param name="name">The field/querystring name</param> 1867 <param name="name">The field/query string name</param>
2023 <returns>True if the value exists</returns> 1868 <returns>True if the value exists</returns>
2024 </member> 1869 </member>
2025 <member name="M:HttpServer.HttpInput.ParseItem(System.String,System.String)"> 1870 <member name="M:HttpServer.HttpInput.ParseItem(System.String,System.String)">
2026 <summary> 1871 <summary>
2027 Parses an item and returns it. 1872 Parses an item and returns it.
2028 This function is primarly used to parse array items as in user[name]. 1873 This function is primarily used to parse array items as in user[name].
2029 </summary> 1874 </summary>
2030 <param name="name"></param> 1875 <param name="name"></param>
2031 <param name="value"></param> 1876 <param name="value"></param>
@@ -2087,492 +1932,292 @@
2087 Get a form item. 1932 Get a form item.
2088 </summary> 1933 </summary>
2089 <param name="name"></param> 1934 <param name="name"></param>
2090 <returns>Returns HttpInputItem.Empty if item was not found.</returns> 1935 <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns>
2091 </member> 1936 </member>
2092 <member name="T:HttpServer.HttpParam"> 1937 <member name="F:HttpServer.HttpForm.EmptyForm">
2093 <summary> 1938 <summary>Instance to help mark a non-initialized form</summary>
2094 Returns item either from a form or a query string (checks them in that order)
2095 </summary>
2096 </member>
2097 <member name="F:HttpServer.HttpParam.Empty">
2098 <summary> Representation of a non-initialized HttpParam </summary>
2099 </member>
2100 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)">
2101 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary>
2102 </member>
2103 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)">
2104 <summary>
2105 The add method is not availible for HttpParam
2106 since HttpParam checks both Request.Form and Request.QueryString
2107 </summary>
2108 <param name="name">name identifying the value</param>
2109 <param name="value">value to add</param>
2110 <exception cref="T:System.NotImplementedException"></exception>
2111 </member>
2112 <member name="M:HttpServer.HttpParam.Contains(System.String)">
2113 <summary>
2114 Checks whether the form or querystring has the specified value
2115 </summary>
2116 <param name="name">Name, case sensitive</param>
2117 <returns>true if found; otherwise false.</returns>
2118 </member>
2119 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
2120 <summary>
2121 Returns an enumerator that iterates through the collection.
2122 </summary>
2123
2124 <returns>
2125 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
2126 </returns>
2127 <filterpriority>1</filterpriority>
2128 </member>
2129 <member name="M:HttpServer.HttpParam.GetEnumerator">
2130 <summary>
2131 Returns an enumerator that iterates through a collection.
2132 </summary>
2133
2134 <returns>
2135 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
2136 </returns>
2137 <filterpriority>2</filterpriority>
2138 </member>
2139 <member name="P:HttpServer.HttpParam.Item(System.String)">
2140 <summary>
2141 Fetch an item from the form or querystring (in that order).
2142 </summary>
2143 <param name="name"></param>
2144 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
2145 </member>
2146 <member name="T:HttpServer.HttpFile">
2147 <summary>
2148 Container class for posted files
2149 </summary>
2150 </member>
2151 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
2152 <summary>
2153 Creates a container for a posted file
2154 </summary>
2155 <param name="name">The identifier of the post field</param>
2156 <param name="filename">The file path</param>
2157 <param name="contentType">The content type of the file</param>
2158 <param name="uploadFilename">The name of the file uploaded</param>
2159 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
2160 </member>
2161 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
2162 <summary>
2163 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
2164 </summary>
2165 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
2166 </member>
2167 <member name="M:HttpServer.HttpFile.Finalize">
2168 <summary>Destructor disposing the file</summary>
2169 </member>
2170 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
2171 <summary>
2172 Deletes the temporary file
2173 </summary>
2174 <param name="disposing">True if manual dispose</param>
2175 </member>
2176 <member name="M:HttpServer.HttpFile.Dispose">
2177 <summary>
2178 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
2179 </summary>
2180 </member> 1939 </member>
2181 <member name="P:HttpServer.HttpFile.Name"> 1940 <member name="M:HttpServer.HttpForm.#ctor">
2182 <summary> 1941 <summary>Initializes a form container with the specified name</summary>
2183 The name/id of the file
2184 </summary>
2185 </member> 1942 </member>
2186 <member name="P:HttpServer.HttpFile.Filename"> 1943 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)">
2187 <summary> 1944 <summary>
2188 The full file path 1945 Makes a deep copy of the input
2189 </summary> 1946 </summary>
1947 <param name="input">The input to copy</param>
2190 </member> 1948 </member>
2191 <member name="P:HttpServer.HttpFile.UploadFilename"> 1949 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)">
2192 <summary> 1950 <summary>
2193 The name of the uploaded file 1951 Adds a file to the collection of posted files
2194 </summary> 1952 </summary>
1953 <param name="file">The file to add</param>
1954 <exception cref="T:System.ArgumentException">If the file is already added</exception>
1955 <exception cref="T:System.ArgumentNullException">If file is null</exception>
1956 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
2195 </member> 1957 </member>
2196 <member name="P:HttpServer.HttpFile.ContentType"> 1958 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)">
2197 <summary> 1959 <summary>
2198 The type of file 1960 Checks if the form contains a specified file
2199 </summary> 1961 </summary>
1962 <param name="name">Field name of the file parameter</param>
1963 <returns>True if the file exists</returns>
1964 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
2200 </member> 1965 </member>
2201 <member name="T:HttpServer.Helpers.ObjectForm"> 1966 <member name="M:HttpServer.HttpForm.GetFile(System.String)">
2202 <summary> 1967 <summary>
2203 The object form class takes an object and creates form items for it. 1968 Retrieves a file held by by the form
2204 </summary> 1969 </summary>
1970 <param name="name">The identifier of the file</param>
1971 <returns>The requested file or null if the file was not found</returns>
1972 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception>
1973 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
2205 </member> 1974 </member>
2206 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)"> 1975 <member name="M:HttpServer.HttpForm.Clear">
2207 <summary> 1976 <summary>Disposes all held HttpFile's and resets values</summary>
2208 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
2209 </summary>
2210 <param name="method"></param>
2211 <param name="name">form name *and* id.</param>
2212 <param name="action">action to do when form is posted.</param>
2213 <param name="obj"></param>
2214 </member> 1977 </member>
2215 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)"> 1978 <member name="P:HttpServer.HttpForm.Files">
2216 <summary> 1979 <summary>
2217 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 1980 Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/>
2218 </summary> 1981 </summary>
2219 <param name="name">form name *and* id.</param> 1982 <returns>0 if no files are added</returns>
2220 <param name="action">action to do when form is posted.</param>
2221 <param name="obj">object to get values from</param>
2222 </member> 1983 </member>
2223 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)"> 1984 <member name="T:HttpServer.Check">
2224 <summary> 1985 <summary>
2225 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 1986 Small design by contract implementation.
2226 </summary> 1987 </summary>
2227 <param name="action">form action.</param>
2228 <param name="obj">object to get values from.</param>
2229 </member> 1988 </member>
2230 <member name="M:HttpServer.Helpers.ObjectForm.Begin"> 1989 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
2231 <summary> 1990 <summary>
2232 write out the FORM-tag. 1991 Check whether a parameter is empty.
2233 </summary> 1992 </summary>
2234 <returns>generated html code</returns> 1993 <param name="value">Parameter value</param>
1994 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1995 <exception cref="T:System.ArgumentException">value is empty.</exception>
2235 </member> 1996 </member>
2236 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)"> 1997 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
2237 <summary> 1998 <summary>
2238 Writeout the form tag 1999 Checks whether a parameter is null.
2239 </summary> 2000 </summary>
2240 <param name="isAjax">form should be posted through ajax.</param> 2001 <param name="value">Parameter value</param>
2241 <returns>generated html code</returns> 2002 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
2003 <exception cref="T:System.ArgumentNullException">value is null.</exception>
2242 </member> 2004 </member>
2243 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])"> 2005 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
2244 <summary> 2006 <summary>
2245 Generates a text box. 2007 Checks whether a parameter is null.
2246 </summary> 2008 </summary>
2247 <param name="propertyName"></param> 2009 <param name="minValue"></param>
2248 <param name="options"></param> 2010 <param name="value">Parameter value</param>
2249 <returns>generated html code</returns> 2011 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
2012 <exception cref="T:System.ArgumentException">value is null.</exception>
2250 </member> 2013 </member>
2251 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])"> 2014 <member name="T:HttpServer.Authentication.BasicAuthentication">
2252 <summary> 2015 <summary>
2253 password box 2016 The "basic" authentication scheme is based on the model that the
2017 client must authenticate itself with a user-ID and a password for
2018 each realm. The realm value should be considered an opaque string
2019 which can only be compared for equality with other realms on that
2020 server. The server will service the request only if it can validate
2021 the user-ID and password for the protection space of the Request-URI.
2022 There are no optional authentication parameters.
2254 </summary> 2023 </summary>
2255 <param name="propertyName"></param>
2256 <param name="options"></param>
2257 <returns>generated html code</returns>
2258 </member> 2024 </member>
2259 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])"> 2025 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
2260 <summary> 2026 <summary>
2261 Hiddens the specified property name. 2027 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
2262 </summary> 2028 </summary>
2263 <param name="propertyName">Name of the property.</param> 2029 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2264 <param name="options">The options.</param> 2030 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
2265 <returns>generated html code</returns>
2266 </member> 2031 </member>
2267 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)"> 2032 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2268 <summary> 2033 <summary>
2269 Labels the specified property name. 2034 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
2270 </summary> 2035 </summary>
2271 <param name="propertyName">property in object.</param> 2036 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2272 <param name="label">caption</param>
2273 <returns>generated html code</returns>
2274 </member> 2037 </member>
2275 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])"> 2038 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])">
2276 <summary> 2039 <summary>
2277 Generate a checkbox 2040 Create a response that can be sent in the WWW-Authenticate header.
2278 </summary> 2041 </summary>
2279 <param name="propertyName">property in object</param> 2042 <param name="realm">Realm that the user should authenticate in</param>
2280 <param name="value">checkbox value</param> 2043 <param name="options">Not used in basic auth</param>
2281 <param name="options">additional html attributes.</param> 2044 <returns>A correct auth request.</returns>
2282 <returns>generated html code</returns>
2283 </member> 2045 </member>
2284 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])"> 2046 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
2285 <summary> 2047 <summary>
2286 Write a html select tag 2048 An authentication response have been received from the web browser.
2049 Check if it's correct
2287 </summary> 2050 </summary>
2288 <param name="propertyName">object property.</param> 2051 <param name="authenticationHeader">Contents from the Authorization header</param>
2289 <param name="idColumn">id column</param> 2052 <param name="realm">Realm that should be authenticated</param>
2290 <param name="titleColumn">The title column.</param> 2053 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2291 <param name="options">The options.</param> 2054 <param name="options">Not used in basic auth</param>
2292 <returns></returns> 2055 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
2056 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
2057 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
2293 </member> 2058 </member>
2294 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])"> 2059 <member name="P:HttpServer.Authentication.BasicAuthentication.Name">
2295 <summary> 2060 <summary>
2296 Selects the specified property name. 2061 name used in http request.
2297 </summary> 2062 </summary>
2298 <param name="propertyName">Name of the property.</param>
2299 <param name="items">The items.</param>
2300 <param name="idColumn">The id column.</param>
2301 <param name="titleColumn">The title column.</param>
2302 <param name="options">The options.</param>
2303 <returns></returns>
2304 </member> 2063 </member>
2305 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)"> 2064 <member name="T:HttpServer.Rules.IRule">
2306 <summary> 2065 <summary>
2307 Write a submit tag. 2066 Rules are used to perform operations before a request is being handled.
2067 Rules can be used to create routing etc.
2308 </summary> 2068 </summary>
2309 <param name="value">button caption</param>
2310 <returns>html submit tag</returns>
2311 </member> 2069 </member>
2312 <member name="M:HttpServer.Helpers.ObjectForm.End"> 2070 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
2313 <summary> 2071 <summary>
2314 html end form tag 2072 Process the incoming request.
2315 </summary> 2073 </summary>
2316 <returns>html</returns> 2074 <param name="request">incoming HTTP request</param>
2075 <param name="response">outgoing HTTP response</param>
2076 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
2077 <remarks>
2078 returning true means that no modules will get the request. Returning true is typically being done
2079 for redirects.
2080 </remarks>
2081 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
2317 </member> 2082 </member>
2318 <member name="T:HttpServer.FormDecoders.FormDecoderProvider"> 2083 <member name="T:HttpServer.Helpers.GetIdTitle">
2319 <summary> 2084 <summary>
2320 This provider is used to let us implement any type of form decoding we want without 2085 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.
2321 having to rewrite anything else in the server.
2322 </summary> 2086 </summary>
2323 </member> 2087 <param name="obj">current object (for instance a User).</param>
2324 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)"> 2088 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
2325 <summary> 2089 <param name="title">Text shown in the select list.</param>
2090 <example>
2091 // Class that is going to be used in a SELECT-tag.
2092 public class User
2093 {
2094 private readonly string _realName;
2095 private readonly int _id;
2096 public User(int id, string realName)
2097 {
2098 _id = id;
2099 _realName = realName;
2100 }
2101 public string RealName
2102 {
2103 get { return _realName; }
2104 }
2326 2105
2327 </summary> 2106 public int Id
2328 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param> 2107 {
2329 <param name="stream">Stream containg form data.</param> 2108 get { return _id; }
2330 <param name="encoding">Encoding used when decoding the stream</param> 2109 }
2331 <returns>HttpInput.EmptyLanguageNode if no parser was found. Must always return something (HttpInput.Empty instead of null)</returns> 2110 }
2332 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
2333 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
2334 </member>
2335 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
2336 <summary>
2337 Add a decoder.
2338 </summary>
2339 <param name="decoder"></param>
2340 <exception cref="T:System.ArgumentNullException"></exception>
2341 </member>
2342 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
2343 <summary>
2344 Number of added decoders.
2345 </summary>
2346 </member>
2347 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
2348 <summary>
2349 Use with care.
2350 </summary>
2351 </member>
2352 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
2353 <summary>
2354 Decoder used for unknown content types.
2355 </summary>
2356 </member>
2357 <member name="T:HttpServer.Rendering.Haml.Rules.AttributesRule">
2358 <summary>
2359 Contains an (html) attribute list.
2360 </summary>
2361 </member>
2362 <member name="T:HttpServer.Rendering.Haml.Rules.Rule">
2363 <summary>
2364 Rules are used during preparse
2365 </summary>
2366 </member>
2367 <member name="M:HttpServer.Rendering.Haml.Rules.Rule.IsMultiLine(HttpServer.Rendering.Haml.LineInfo,System.Boolean)">
2368 <summary>
2369 Determines if this node spans over multiple lines.
2370 </summary>
2371 <param name="line">contains line information (and text)</param>
2372 <param name="isContinued">true if rule have previously inited a multiline.</param>
2373 <returns>true if this line continues onto the next.</returns>///
2374 </member>
2375 <member name="M:HttpServer.Rendering.Haml.Rules.AttributesRule.IsMultiLine(HttpServer.Rendering.Haml.LineInfo,System.Boolean)">
2376 <summary>
2377 Determines if this node spans over multiple lines.
2378 </summary>
2379 <param name="line">contains line information (and text)</param>
2380 <param name="isContinued">true if the previous line was continued.</param>
2381 <returns>true if this line continues onto the next.</returns>
2382 </member>
2383 <member name="T:HttpServer.Rendering.Haml.Nodes.TextNode">
2384 <summary>
2385 A text only node.
2386 </summary>
2387 </member>
2388 <member name="M:HttpServer.Rendering.Haml.Nodes.TextNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node,System.String)">
2389 <summary>
2390 2111
2391 </summary> 2112 // Using an inline delegate to generate the select list
2392 <param name="parent">parent node</param> 2113 public void UserInlineDelegate()
2393 <param name="text">plain text</param> 2114 {
2394 </member> 2115 List&lt;User&gt; items = new List&lt;User&gt;();
2395 <member name="M:HttpServer.Rendering.Haml.Nodes.TextNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 2116 items.Add(new User(1, "adam"));
2396 <summary> 2117 items.Add(new User(2, "bertial"));
2397 Parse node contents add return a fresh node. 2118 items.Add(new User(3, "david"));
2398 </summary> 2119 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
2399 <param name="prototypes">List containing all node types</param> 2120 {
2400 <param name="parent">Node that this is a subnode to. Can be null</param> 2121 User user = (User)o;
2401 <param name="line">Line to parse</param> 2122 id = user.Id;
2402 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param> 2123 value = user.RealName;
2403 <returns>A node corresponding to the bla bla; null if parsing failed.</returns> 2124 }, 2, true);
2404 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception> 2125 }
2405 </member> 2126
2406 <member name="M:HttpServer.Rendering.Haml.Nodes.TextNode.CanHandle(System.String,System.Boolean)"> 2127 // Using an method as delegate to generate the select list.
2407 <summary> 2128 public void UseExternalDelegate()
2408 determines if this node can handle the line (by checking the first word); 2129 {
2409 </summary> 2130 List&lt;User&gt; items = new List&lt;User&gt;();
2410 <param name="word">Controller char (word)</param> 2131 items.Add(new User(1, "adam"));
2411 <returns>true if text belongs to this node type</returns> 2132 items.Add(new User(2, "bertial"));
2412 <param name="firstNode">true if this is the first node on the line.</param> 2133 items.Add(new User(3, "david"));
2413 </member> 2134 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
2414 <member name="M:HttpServer.Rendering.Haml.Nodes.TextNode.ToHtml"> 2135 }
2415 <summary> 2136
2416 Generate HTML for this node. 2137 // delegate returning id and title
2417 </summary> 2138 public static void UserOptions(object o, out object id, out object title)
2418 <returns></returns> 2139 {
2419 </member> 2140 User user = (User)o;
2420 <member name="M:HttpServer.Rendering.Haml.Nodes.TextNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 2141 id = user.Id;
2421 <summary> 2142 value = user.RealName;
2422 Convert the node to c# code 2143 } /// </example>
2423 </summary>
2424 <param name="inString">True if we are inside the internal stringbuilder</param>
2425 <param name="smallEnough">true if all subnodes fit on one line</param>
2426 <param name="smallEnoughIsDefaultValue">todo: add description</param>
2427 <returns>c# code</returns>
2428 </member> 2144 </member>
2429 <member name="P:HttpServer.Rendering.Haml.Nodes.TextNode.Text"> 2145 <member name="T:HttpServer.RequestCookies">
2430 <summary> 2146 <summary>
2431 The text. 2147 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
2148 The framework might switch class in the future and we dont want to have to replace all instances
2432 </summary> 2149 </summary>
2433 </member> 2150 </member>
2434 <member name="P:HttpServer.Rendering.Haml.Nodes.TextNode.IsTextNode"> 2151 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
2435 <summary> 2152 <summary>
2436 Is this a text node (containing plain text)? 2153 Let's copy all the cookies.
2437 </summary> 2154 </summary>
2155 <param name="cookies">value from cookie header.</param>
2438 </member> 2156 </member>
2439 <member name="T:HttpServer.HttpModules.ResourceFileModule"> 2157 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
2440 <summary> 2158 <summary>
2441 Serves files that are stored in embedded resources. 2159 Adds a cookie in the collection.
2442 </summary> 2160 </summary>
2161 <param name="cookie">cookie to add</param>
2162 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
2443 </member> 2163 </member>
2444 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor"> 2164 <member name="M:HttpServer.RequestCookies.GetEnumerator">
2445 <summary> 2165 <summary>
2446 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 2166 Gets a collection enumerator on the cookie list.
2447 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
2448 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
2449 </summary> 2167 </summary>
2168 <returns>collection enumerator</returns>
2450 </member> 2169 </member>
2451 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"> 2170 <member name="M:HttpServer.RequestCookies.Clear">
2452 <summary> 2171 <summary>
2453 Mimtypes that this class can handle per default 2172 Remove all cookies.
2454 </summary> 2173 </summary>
2455 </member> 2174 </member>
2456 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)"> 2175 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
2457 <summary> 2176 <summary>
2458 Loads resources from a namespace in the given assembly to an uri 2177 Returns an enumerator that iterates through the collection.
2459 </summary> 2178 </summary>
2460 <param name="toUri">The uri to map the resources to</param>
2461 <param name="fromAssembly">The assembly in which the resources reside</param>
2462 <param name="fromNamespace">The namespace from which to load the resources</param>
2463 <usage>
2464 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
2465 2179
2466 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css 2180 <returns>
2467 </usage> 2181 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
2468 </member> 2182 </returns>
2469 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)"> 2183 <filterpriority>1</filterpriority>
2470 <summary>
2471 Returns true if the module can handle the request
2472 </summary>
2473 </member>
2474 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
2475 <summary>
2476 Method that process the url
2477 </summary>
2478 <param name="request">Information sent by the browser about the request</param>
2479 <param name="response">Information that is being sent back to the client.</param>
2480 <param name="session">Session used to </param>
2481 <returns>true if this module handled the request.</returns>
2482 </member>
2483 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
2484 <summary>
2485 List with all mime-type that are allowed.
2486 </summary>
2487 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
2488 </member>
2489 <member name="T:HttpServer.FormDecoders.XmlDecoder">
2490 <summary>
2491 This decoder converts XML documents to form items.
2492 Each element becomes a subitem in the form, and each attribute becomes an item.
2493 </summary>
2494 <example>
2495 // xml: <hello id="1">something<world id="2">data</world></hello>
2496 // result:
2497 // form["hello"].Value = "something"
2498 // form["hello"]["id"].Value = 1
2499 // form["hello"]["world]["id"].Value = 1
2500 // form["hello"]["world"].Value = "data"
2501 </example>
2502 <remarks>
2503 The original xml document is stored in form["__xml__"].Value.
2504 </remarks>
2505 </member> 2184 </member>
2506 <member name="T:HttpServer.FormDecoders.IFormDecoder"> 2185 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
2507 <summary> 2186 <summary>
2508 Interface for form content decoders. 2187 Remove a cookie from the collection.
2509 </summary> 2188 </summary>
2189 <param name="cookieName">Name of cookie.</param>
2510 </member> 2190 </member>
2511 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 2191 <member name="P:HttpServer.RequestCookies.Count">
2512 <summary> 2192 <summary>
2513 2193 Gets the count of cookies in the collection.
2514 </summary> 2194 </summary>
2515 <param name="stream">Stream containing the content</param>
2516 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
2517 <param name="encoding">Stream enconding</param>
2518 <returns>A http form, or null if content could not be parsed.</returns>
2519 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
2520 </member> 2195 </member>
2521 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)"> 2196 <member name="P:HttpServer.RequestCookies.Item(System.String)">
2522 <summary> 2197 <summary>
2523 Checks if the decoder can handle the mime type 2198 Gets the cookie of a given identifier (null if not existing).
2524 </summary> 2199 </summary>
2525 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
2526 <returns>True if the decoder can parse the specified content type</returns>
2527 </member> 2200 </member>
2528 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 2201 <member name="T:HttpServer.Exceptions.BadRequestException">
2529 <summary> 2202 <summary>
2203 The request could not be understood by the server due to malformed syntax.
2204 The client SHOULD NOT repeat the request without modifications.
2530 2205
2531 </summary> 2206 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
2532 <param name="stream">Stream containing the content</param>
2533 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
2534 <param name="encoding">Stream encoding</param>
2535 Note: contentType and encoding are not used?
2536 <returns>A http form, or null if content could not be parsed.</returns>
2537 <exception cref="T:System.IO.InvalidDataException"></exception>
2538 </member>
2539 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
2540 <summary>
2541 Recursive function that will go through an xml element and store it's content
2542 to the form item.
2543 </summary>
2544 <param name="item">(parent) Item in form that content should be added to.</param>
2545 <param name="node">Node that should be parsed.</param>
2546 </member>
2547 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
2548 <summary>
2549 Checks if the decoder can handle the mime type
2550 </summary>
2551 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
2552 <returns>True if the decoder can parse the specified content type</returns>
2553 </member>
2554 <member name="T:HttpServer.Controllers.ControllerNameAttribute">
2555 <summary>
2556 This attribute can be used to map a controller to a specific url without using
2557 the class name.
2558 </summary> 2207 </summary>
2559 </member> 2208 </member>
2560 <member name="M:HttpServer.Controllers.ControllerNameAttribute.#ctor(System.String)"> 2209 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)">
2561 <summary> 2210 <summary>
2562 Maps a controller to a url without using the controller name. 2211 Create a new bad request exception.
2563 </summary> 2212 </summary>
2564 <remarks> 2213 <param name="errMsg">reason to why the request was bad.</param>
2565 <para>Per default the class name is used to determine which url to handle.
2566 For instance, "class UserController" or "class User" tells the framework that
2567 the urls that starts with "/user" should be handled by that controller.</para>
2568 <para>This attribute can be used to circumvent that.</para>
2569 </remarks>
2570 <param name="name">The name.</param>
2571 </member> 2214 </member>
2572 <member name="P:HttpServer.Controllers.ControllerNameAttribute.Name"> 2215 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)">
2573 <summary> 2216 <summary>
2574 The name that the controller should use 2217 Create a new bad request exception.
2575 </summary> 2218 </summary>
2219 <param name="errMsg">reason to why the request was bad.</param>
2220 <param name="inner">inner exception</param>
2576 </member> 2221 </member>
2577 <member name="T:HttpServer.Sessions.IHttpSessionStore"> 2222 <member name="T:HttpServer.Sessions.IHttpSessionStore">
2578 <summary> 2223 <summary>
@@ -2641,666 +2286,194 @@
2641 </summary> 2286 </summary>
2642 <value>Default time is 20 minutes.</value> 2287 <value>Default time is 20 minutes.</value>
2643 </member> 2288 </member>
2644 <member name="T:HttpServer.HttpListener"> 2289 <member name="T:HttpServer.IHttpClientContext">
2645 <summary>
2646 HTTP Listener waits for HTTP connections and provide us with <see cref="T:System.Net.HttpListenerContext"/>s using the
2647 <see cref="P:HttpServer.HttpListener.RequestHandler"/> delegate.
2648 </summary>
2649 </member>
2650 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32)">
2651 <summary>
2652 Listen for regular HTTP connections
2653 </summary>
2654 <param name="address">IP Address to accept connections on</param>
2655 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
2656 </member>
2657 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
2658 <summary>
2659 Launch HttpListener in SSL mode
2660 </summary>
2661 <param name="address">IP Address to accept connections on</param>
2662 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
2663 <param name="certificate">Certificate to use</param>
2664 </member>
2665 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2666 <summary>
2667 Launch HttpListener in SSL mode
2668 </summary>
2669 <param name="address">IP Address to accept connections on</param>
2670 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
2671 <param name="certificate">Certificate to use</param>
2672 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
2673 </member>
2674 <member name="M:HttpServer.HttpListener.Start(System.Int32)">
2675 <summary>
2676 Start listen for new connections
2677 </summary>
2678 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
2679 </member>
2680 <member name="M:HttpServer.HttpListener.Stop">
2681 <summary>
2682 Stop the listener
2683 </summary>
2684 <exception cref="T:System.Net.Sockets.SocketException"></exception>
2685 </member>
2686 <member name="E:HttpServer.HttpListener.Accepted">
2687 <summary>
2688 A client have been accepted, but not handled, by the listener.
2689 </summary>
2690 </member>
2691 <member name="P:HttpServer.HttpListener.DisconnectHandler">
2692 <summary>
2693 Invoked when a client disconnects
2694 </summary>
2695 </member>
2696 <member name="P:HttpServer.HttpListener.LogWriter">
2697 <summary>
2698 Gives you a change to receive log entries for all internals of the HTTP library.
2699 </summary>
2700 <remarks>
2701 You may not switch log writer after starting the listener.
2702 </remarks>
2703 </member>
2704 <member name="P:HttpServer.HttpListener.RequestHandler">
2705 <summary>
2706 This handler will be invoked each time a new connection is accepted.
2707 </summary>
2708 </member>
2709 <member name="P:HttpServer.HttpListener.UseTraceLogs">
2710 <summary>
2711 True if we should turn on trace logs.
2712 </summary>
2713 </member>
2714 <member name="E:HttpServer.HttpListener.ExceptionThrown">
2715 <summary>
2716 Let's to receive unhandled exceptions from the threads.
2717 </summary>
2718 <remarks>
2719 Exceptions will be thrown during debug mode if this event is not used,
2720 exceptions will be printed to console and suppressed during release mode.
2721 </remarks>
2722 </member>
2723 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
2724 <summary>
2725 PrototypeJS implementation of the javascript functions.
2726 </summary>
2727 </member>
2728 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
2729 <summary>
2730 Requests a url through ajax
2731 </summary>
2732 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
2733 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
2734 <returns>a link tag</returns>
2735 <remarks>onclick attribute is used by this method.</remarks>
2736 <example>
2737 <code>
2738 // plain text
2739 JSHelper.AjaxRequest("'/user/show/1'");
2740
2741 // ajax request using this.href
2742 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
2743 </code>
2744 </example>
2745 </member>
2746 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)">
2747 <summary>
2748 Determins if a list of strings contains a specific value
2749 </summary>
2750 <param name="options">options to check in</param>
2751 <param name="value">value to find</param>
2752 <returns>true if value was found</returns>
2753 <remarks>case insensitive</remarks>
2754 </member>
2755 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])">
2756 <summary>
2757 Ajax requests that updates an element with
2758 the fetched content
2759 </summary>
2760 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
2761 <param name="targetId">element to update</param>
2762 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
2763 <returns>A link tag.</returns>
2764 <example>
2765 <code>
2766 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
2767 </code>
2768 </example>
2769 </member>
2770 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])">
2771 <summary>
2772 A link that pop ups a Dialog (overlay div)
2773 </summary>
2774 <param name="url">url to contents of dialog</param>
2775 <param name="title">link title</param>
2776 <param name="htmlAttributes">name, value, name, value</param>
2777 <returns>
2778 A "a"-tag that popups a dialog when clicked
2779 </returns>
2780 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
2781 And the following javascript (load it in application.js):
2782 <code>
2783 Event.observe(window, 'load',
2784 function() {
2785 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
2786 }
2787 );
2788 </code>
2789 </remarks>
2790 <example>
2791 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2792 </example>
2793 </member>
2794 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])">
2795 <summary>
2796 create a modal dialog (usually using DIVs)
2797 </summary>
2798 <param name="url">url to fetch</param>
2799 <param name="title">dialog title</param>
2800 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param>
2801 <returns></returns>
2802 </member>
2803 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog">
2804 <summary>
2805 Close a javascript dialog window/div.
2806 </summary>
2807 <returns>javascript for closing a dialog.</returns>
2808 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/>
2809 </member>
2810 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])">
2811 <summary>
2812 javascript action that should be added to the "onsubmit" event in the form tag.
2813 </summary>
2814 <param name="options">remember to encapsulate strings in ''</param>
2815 <returns></returns>
2816 <remarks>All javascript option names should end with colon.</remarks>
2817 <example>
2818 <code>
2819 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
2820 </code>
2821 </example>
2822 </member>
2823 <member name="T:HttpServer.Exceptions.NotFoundException">
2824 <summary>
2825 The requested resource was not found in the web server.
2826 </summary>
2827 </member>
2828 <member name="T:HttpServer.Exceptions.HttpException">
2829 <summary>
2830 All HTTP based exceptions will derive this class.
2831 </summary>
2832 </member>
2833 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
2834 <summary>
2835 Create a new HttpException
2836 </summary>
2837 <param name="code">http status code (sent in the response)</param>
2838 <param name="message">error description</param>
2839 </member>
2840 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
2841 <summary>
2842 Create a new HttpException
2843 </summary>
2844 <param name="code">http status code (sent in the response)</param>
2845 <param name="message">error description</param>
2846 <param name="inner">inner exception</param>
2847 </member>
2848 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
2849 <summary>
2850 status code to use in the response.
2851 </summary>
2852 </member>
2853 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
2854 <summary>
2855 Create a new exception
2856 </summary>
2857 <param name="message">message describing the error</param>
2858 <param name="inner">inner exception</param>
2859 </member>
2860 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
2861 <summary>
2862 Create a new exception
2863 </summary>
2864 <param name="message">message describing the error</param>
2865 </member>
2866 <member name="T:HttpServer.Controllers.RequestController">
2867 <summary>
2868 A controller in the Model-View-Controller pattern.
2869 Derive this class and add method with one of the following signatures:
2870 "public string MethodName()" or "public void MyMethod()".
2871
2872 The first should return a string with the response, the latter
2873 should use SendHeader and SendBody methods to handle the response.
2874 </summary>
2875 <remarks>
2876 Last segment of the path is always broken into the properties Id and RequestedType
2877 Alhtough note that the RequestedType can also be empty if no file extension have
2878 been specified. A typical use of file extensions in controllers is to specify which type of
2879 format to return.
2880 </remarks>
2881 <example>
2882 public class MyController : RequestController
2883 {
2884 public string Hello()
2885 {
2886 if (RequestedType == "xml")
2887 return "&lt;hello&gt;World&lt;hello&gt;";
2888 else
2889 return "Hello " + Request.QueryString["user"].Value + ", welcome to my world";
2890 }
2891
2892 public void File()
2893 {
2894 Response.Headers.ContentType = "text/xml";
2895 Response.SendHeader();
2896 }
2897 }
2898 </example>
2899 <seealso cref="T:HttpServer.Controllers.ControllerNameAttribute"/>
2900 <seealso cref="T:HttpServer.Controllers.AuthRequiredAttribute"/>
2901 <seealso cref="T:HttpServer.Controllers.AuthValidatorAttribute"/>
2902 </member>
2903 <member name="M:HttpServer.Controllers.RequestController.#ctor(HttpServer.Controllers.RequestController)">
2904 <summary>
2905 create a new request controller
2906 </summary>
2907 <param name="controller">prototype to copy information from</param>
2908 </member>
2909 <member name="M:HttpServer.Controllers.RequestController.#ctor">
2910 <summary>
2911 create a new controller
2912 </summary>
2913 </member>
2914 <member name="M:HttpServer.Controllers.RequestController.CanHandle(HttpServer.IHttpRequest)">
2915 <summary>
2916 Method that determines if an url should be handled or not by the module
2917 </summary>
2918 <param name="request">Url requested by the client.</param>
2919 <returns>true if module should handle the url.</returns>
2920 </member>
2921 <member name="M:HttpServer.Controllers.RequestController.GetMethod(HttpServer.IHttpRequest)">
2922 <summary>
2923 Determines which method to use.
2924 </summary>
2925 <param name="request">Requested resource</param>
2926 </member>
2927 <member name="M:HttpServer.Controllers.RequestController.InvokeBeforeFilters">
2928 <summary>
2929 Call all before filters
2930 </summary>
2931 <returns>true if a before filter wants to abort the processing.</returns>
2932 </member>
2933 <member name="M:HttpServer.Controllers.RequestController.InvokeMethod">
2934 <summary> 2290 <summary>
2935 Override this method to be able to process result 2291 Contains a connection to a browser/client.
2936 returned by controller method.
2937 </summary> 2292 </summary>
2938 </member> 2293 </member>
2939 <member name="M:HttpServer.Controllers.RequestController.OnUnhandledException(System.Exception)"> 2294 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
2940 <summary> 2295 <summary>
2941 Override this method if you want to be able to 2296 Disconnect from client
2942 handle unhanded exceptions
2943 </summary> 2297 </summary>
2944 <param name="err">thrown exception</param> 2298 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
2945 <remarks>Don't "eat" exceptions derived from HttpException since
2946 they are handled by the framework,unless your are sure of what you are
2947 doing..</remarks>
2948 </member> 2299 </member>
2949 <member name="M:HttpServer.Controllers.RequestController.MapMethods"> 2300 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
2950 <summary> 2301 <summary>
2951 This method goes through all methods in the controller and 2302 Send a response.
2952 add's them to a dictionary. They are later used to invoke
2953 the correct method depending on the url
2954 </summary> 2303 </summary>
2304 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
2305 <param name="statusCode">HTTP status code</param>
2306 <param name="reason">reason for the status code.</param>
2307 <param name="body">HTML body contents, can be null or empty.</param>
2308 <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>
2309 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
2955 </member> 2310 </member>
2956 <member name="M:HttpServer.Controllers.RequestController.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 2311 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
2957 <summary> 2312 <summary>
2958 Method that process the url 2313 Send a response.
2959 </summary> 2314 </summary>
2960 <param name="request">Uses Uri and QueryString to determine method.</param> 2315 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
2961 <param name="response">Relays response object to invoked method.</param> 2316 <param name="statusCode">HTTP status code</param>
2962 <param name="session">Relays session object to invoked method. </param> 2317 <param name="reason">reason for the status code.</param>
2963 </member> 2318 </member>
2964 <member name="M:HttpServer.Controllers.RequestController.SetupRequest(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 2319 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
2965 <summary> 2320 <summary>
2966 Will assign all variables that are unique for each session 2321 Send a response.
2967 </summary> 2322 </summary>
2968 <param name="request"></param> 2323 <exception cref="T:System.ArgumentNullException"></exception>
2969 <param name="response"></param>
2970 <param name="session"></param>
2971 </member> 2324 </member>
2972 <member name="M:HttpServer.Controllers.RequestController.Clone"> 2325 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
2973 <summary> 2326 <summary>
2974 Make a clone of this controller 2327 send a whole buffer
2975 </summary> 2328 </summary>
2976 <returns>a new controller with the same base information as this one.</returns> 2329 <param name="buffer">buffer to send</param>
2330 <exception cref="T:System.ArgumentNullException"></exception>
2977 </member> 2331 </member>
2978 <member name="P:HttpServer.Controllers.RequestController.AuthenticationTag"> 2332 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
2979 <summary> 2333 <summary>
2980 object that was attached during http authentication process. 2334 Send data using the stream
2981 </summary> 2335 </summary>
2982 <remarks> 2336 <param name="buffer">Contains data to send</param>
2983 You can also assign this tag yourself if you are using regular 2337 <param name="offset">Start position in buffer</param>
2984 http page login. 2338 <param name="size">number of bytes to send</param>
2985 </remarks> 2339 <exception cref="T:System.ArgumentNullException"></exception>
2986 <seealso cref="T:HttpServer.Authentication.AuthModule"/> 2340 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
2987 </member> 2341 </member>
2988 <member name="P:HttpServer.Controllers.RequestController.ControllerName"> 2342 <member name="P:HttpServer.IHttpClientContext.Secured">
2989 <summary> 2343 <summary>
2990 Name of this controller (class name without the "Controller" part) 2344 Using SSL or other encryption method.
2991 </summary> 2345 </summary>
2992 </member> 2346 </member>
2993 <member name="P:HttpServer.Controllers.RequestController.DefaultMethod"> 2347 <member name="P:HttpServer.IHttpClientContext.IsSecured">
2994 <summary> 2348 <summary>
2995 Specifies the method to use if no action have been specified. 2349 Using SSL or other encryption method.
2996 </summary> 2350 </summary>
2997 <exception cref="T:System.ArgumentException">If specified method do not exist.</exception>
2998 </member> 2351 </member>
2999 <member name="P:HttpServer.Controllers.RequestController.Id"> 2352 <member name="E:HttpServer.IHttpClientContext.Disconnected">
3000 <summary> 2353 <summary>
3001 Id is the third part of the uri path. 2354 The context have been disconnected.
3002 </summary> 2355 </summary>
3003 <remarks> 2356 <remarks>
3004 <para>Is extracted as in: /controllername/methodname/id/ 2357 Event can be used to clean up a context, or to reuse it.
3005 </para>
3006 <para>string.Empty if not specified.</para>
3007 </remarks> 2358 </remarks>
3008 <example></example>
3009 </member>
3010 <member name="P:HttpServer.Controllers.RequestController.MethodName">
3011 <summary>
3012 Method currently being invoked.
3013 Always in lower case.
3014 </summary>
3015 </member>
3016 <member name="P:HttpServer.Controllers.RequestController.Request">
3017 <summary>
3018 Request information (like Url, form, querystring etc)
3019 </summary>
3020 </member>
3021 <member name="P:HttpServer.Controllers.RequestController.RequestedExtension">
3022 <summary>
3023 Extension if a filename was specified.
3024 </summary>
3025 </member> 2359 </member>
3026 <member name="P:HttpServer.Controllers.RequestController.Response"> 2360 <member name="E:HttpServer.IHttpClientContext.RequestReceived">
3027 <summary> 2361 <summary>
3028 Response information (that is going to be sent back to the browser/client) 2362 A request have been received in the context.
3029 </summary> 2363 </summary>
3030 </member> 2364 </member>
3031 <member name="P:HttpServer.Controllers.RequestController.Session"> 2365 <member name="T:HttpServer.DisconnectedEventArgs">
3032 <summary> 2366 <summary>
3033 Session information, is stored between requests as long as the session cookie is valid. 2367 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
3034 </summary> 2368 </summary>
3035 </member> 2369 </member>
3036 <member name="T:HttpServer.Controllers.AuthRequiredAttribute"> 2370 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
3037 <summary> 2371 <summary>
3038 Marks methods to let framework know that the method is protected 2372 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
3039 </summary> 2373 </summary>
3040 <seealso cref="T:HttpServer.Controllers.AuthValidatorAttribute"/> 2374 <param name="error">Reason to disconnection.</param>
3041 <seealso cref="T:HttpServer.Controllers.RequestController"/>
3042 </member> 2375 </member>
3043 <member name="M:HttpServer.Controllers.AuthRequiredAttribute.#ctor"> 2376 <member name="P:HttpServer.DisconnectedEventArgs.Error">
3044 <summary> 2377 <summary>
3045 Initializes a new instance of the <see cref="T:HttpServer.Controllers.AuthRequiredAttribute"/> class. 2378 Gets reason to why client disconnected.
3046 </summary> 2379 </summary>
3047 </member> 2380 </member>
3048 <member name="M:HttpServer.Controllers.AuthRequiredAttribute.#ctor(System.Int32)"> 2381 <member name="T:HttpServer.RequestEventArgs">
3049 <summary> 2382 <summary>
3050 2383
3051 </summary> 2384 </summary>
3052 <param name="level">
3053 Level is a value defined by you. It should be used to determine the users
3054 that can access the method tagged with the AuthRequired attribute.
3055 </param>
3056 <example>
3057 <![CDATA[
3058 public enum UserLevel
3059 {
3060 Guest,
3061 User,
3062 Admin,
3063 SuperAdmin
3064 }
3065 public class UserController : RequestController
3066 {
3067 [AuthRequired(UserLevel.User)]
3068 public string View()
3069 {
3070 return "Can also be viewed by users";
3071 }
3072
3073 [AuthValidatorAttribute]
3074 public bool ValidateUser(int level)
3075 {
3076 (User)user = Session["user"];
3077 return user != null && user.Status >= level;
3078 }
3079 }
3080 ]]>
3081 </example>
3082 </member>
3083 <member name="P:HttpServer.Controllers.AuthRequiredAttribute.Level">
3084 <summary>
3085 Level is a value defined by you. It should be used to determine the users
3086 that can access the method tagged with the AuthRequired attribute.
3087 </summary>
3088 </member>
3089 <member name="T:HttpServer.Sessions.MemorySession">
3090 <summary>
3091 A session stored in memory.
3092 </summary>
3093 </member>
3094 <member name="T:HttpServer.Sessions.IHttpSession">
3095 <summary>
3096 Interface for sessions
3097 </summary>
3098 </member>
3099 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
3100 <summary>
3101 Remove everything from the session
3102 </summary>
3103 </member>
3104 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
3105 <summary>
3106 Remove everything from the session
3107 </summary>
3108 <param name="expires">True if the session is cleared due to expiration</param>
3109 </member>
3110 <member name="P:HttpServer.Sessions.IHttpSession.Id">
3111 <summary>
3112 Session id
3113 </summary>
3114 </member>
3115 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
3116 <summary>
3117 Should
3118 </summary>
3119 <param name="name">Name of the session variable</param>
3120 <returns>null if it's not set</returns>
3121 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
3122 </member>
3123 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
3124 <summary>
3125 When the session was last accessed.
3126 This property is touched by the http server each time the
3127 session is requested.
3128 </summary>
3129 </member>
3130 <member name="P:HttpServer.Sessions.IHttpSession.Count">
3131 <summary>
3132 Number of session variables.
3133 </summary>
3134 </member>
3135 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
3136 <summary>
3137 Event triggered upon clearing the session
3138 </summary>
3139 </member>
3140 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
3141 <summary>
3142
3143 </summary>
3144 <param name="id">A unique id used by the sessions store to identify the session</param>
3145 </member>
3146 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
3147 <summary>
3148 Id
3149 </summary>
3150 <param name="id"></param>
3151 </member>
3152 <member name="M:HttpServer.Sessions.MemorySession.Clear">
3153 <summary>
3154 Remove everything from the session
3155 </summary>
3156 </member>
3157 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
3158 <summary>
3159 Clears the specified expire.
3160 </summary>
3161 <param name="expires">True if the session is cleared due to expiration</param>
3162 </member>
3163 <member name="M:HttpServer.Sessions.MemorySession.Dispose">
3164 <summary>
3165 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
3166 </summary>
3167 <filterpriority>2</filterpriority>
3168 </member>
3169 <member name="P:HttpServer.Sessions.MemorySession.Id">
3170 <summary>
3171 Session id
3172 </summary>
3173 </member>
3174 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
3175 <summary>
3176 Should
3177 </summary>
3178 <param name="name">Name of the session variable</param>
3179 <returns>null if it's not set</returns>
3180 </member>
3181 <member name="P:HttpServer.Sessions.MemorySession.Accessed">
3182 <summary>
3183 when the session was last accessed.
3184 </summary>
3185 <remarks>
3186 Used to determine when the session should be removed.
3187 </remarks>
3188 </member>
3189 <member name="P:HttpServer.Sessions.MemorySession.Count">
3190 <summary>
3191 Number of values in the session
3192 </summary>
3193 </member> 2385 </member>
3194 <member name="P:HttpServer.Sessions.MemorySession.Changed"> 2386 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
3195 <summary> 2387 <summary>
3196 Flag to indicate that the session have been changed 2388 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
3197 and should be saved into the session store.
3198 </summary>
3199 </member>
3200 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
3201 <summary>
3202 Event triggered upon clearing the session
3203 </summary>
3204 </member>
3205 <member name="T:HttpServer.Rendering.Haml.Rules.NewLineRule">
3206 <summary>
3207 IRule that says that something :)
3208 </summary> 2389 </summary>
2390 <param name="request">The request.</param>
3209 </member> 2391 </member>
3210 <member name="M:HttpServer.Rendering.Haml.Rules.NewLineRule.IsMultiLine(HttpServer.Rendering.Haml.LineInfo,System.Boolean)"> 2392 <member name="P:HttpServer.RequestEventArgs.Request">
3211 <summary> 2393 <summary>
3212 Determines if this node spans over multiple lines. 2394 Gets received request.
3213 </summary> 2395 </summary>
3214 <param name="line">contains line information (and text)</param>
3215 <param name="isContinued">true if the previous line was continued.</param>
3216 <returns>true if this line continues onto the next.</returns>
3217 </member> 2396 </member>
3218 <member name="T:HttpServer.Rendering.Haml.Nodes.TagNode"> 2397 <member name="T:HttpServer.ResponseCookie">
3219 <summary> 2398 <summary>
3220 Represents a HTML tag. 2399 cookie being sent back to the browser.
3221 </summary> 2400 </summary>
2401 <seealso cref="T:HttpServer.ResponseCookie"/>
3222 </member> 2402 </member>
3223 <member name="M:HttpServer.Rendering.Haml.Nodes.TagNode.#ctor(HttpServer.Rendering.Haml.Nodes.Node)"> 2403 <member name="T:HttpServer.RequestCookie">
3224 <summary> 2404 <summary>
3225 Create a new HTML tag node. 2405 cookie sent by the client/browser
3226 </summary> 2406 </summary>
3227 <param name="parent">parent node</param> 2407 <seealso cref="T:HttpServer.ResponseCookie"/>
3228 </member> 2408 </member>
3229 <member name="M:HttpServer.Rendering.Haml.Nodes.TagNode.CanHandle(System.String,System.Boolean)"> 2409 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)">
3230 <summary> 2410 <summary>
3231 determines if this node can handle the line (by checking the first word); 2411 Constructor.
3232 </summary> 2412 </summary>
3233 <param name="word">Controller char (word)</param> 2413 <param name="id">cookie identifier</param>
3234 <returns>true if text belongs to this node type</returns> 2414 <param name="content">cookie content</param>
3235 <param name="firstNode">first node on line.</param> 2415 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
2416 <exception cref="T:System.ArgumentException">id is empty</exception>
3236 </member> 2417 </member>
3237 <member name="M:HttpServer.Rendering.Haml.Nodes.TagNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 2418 <member name="M:HttpServer.RequestCookie.ToString">
3238 <summary> 2419 <summary>
3239 Parse node contents add return a fresh node. 2420 Gets the cookie HTML representation.
3240 </summary> 2421 </summary>
3241 <param name="parent">Node that this is a subnode to. Can be null</param> 2422 <returns>cookie string</returns>
3242 <param name="prototypes">A list with node types</param>
3243 <param name="line">Line to parse</param>
3244 <param name="offset">Where to start the parsing. Will be set to where the next node should start parsing</param>
3245 <returns>A node corresponding to the bla bla; null if parsing failed.</returns>
3246 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
3247 </member> 2423 </member>
3248 <member name="M:HttpServer.Rendering.Haml.Nodes.TagNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 2424 <member name="P:HttpServer.RequestCookie.Name">
3249 <summary> 2425 <summary>
3250 Convert the node to c# code 2426 Gets the cookie identifier.
3251 </summary> 2427 </summary>
3252 <param name="inString">True if we are inside the internal stringbuilder</param>
3253 <param name="smallEnough">true if all subnodes fit on one line</param>
3254 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param>
3255 <returns>c# code</returns>
3256 </member> 2428 </member>
3257 <member name="M:HttpServer.Rendering.Haml.Nodes.TagNode.ToHtml"> 2429 <member name="P:HttpServer.RequestCookie.Value">
3258 <summary> 2430 <summary>
3259 Convert node to HTML (with ASP-tags) 2431 Cookie value. Set to null to remove cookie.
3260 </summary> 2432 </summary>
3261 <returns>HTML string</returns>
3262 </member> 2433 </member>
3263 <member name="P:HttpServer.Rendering.Haml.Nodes.TagNode.IsTextNode"> 2434 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
3264 <summary> 2435 <summary>
3265 This is a plain text node 2436 Constructor.
3266 </summary> 2437 </summary>
2438 <param name="id">cookie identifier</param>
2439 <param name="content">cookie content</param>
2440 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
2441 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
2442 <exception cref="T:System.ArgumentException">id is empty</exception>
3267 </member> 2443 </member>
3268 <member name="P:HttpServer.Rendering.Haml.Nodes.TagNode.Name"> 2444 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
3269 <summary> 2445 <summary>
3270 tag name 2446 Create a new cookie
3271 </summary> 2447 </summary>
2448 <param name="name">name identifying the cookie</param>
2449 <param name="value">cookie value</param>
2450 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
2451 <param name="path">Path to where the cookie is valid</param>
2452 <param name="domain">Domain that the cookie is valid for.</param>
3272 </member> 2453 </member>
3273 <member name="T:HttpServer.Rendering.TemplateException"> 2454 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
3274 <summary> 2455 <summary>
3275 Thrown when a template cannot be compiled. 2456 Create a new cookie
3276 </summary> 2457 </summary>
2458 <param name="cookie">Name and value will be used</param>
2459 <param name="expires">when the cookie expires.</param>
3277 </member> 2460 </member>
3278 <member name="M:HttpServer.Rendering.TemplateException.#ctor(System.String,Fadd.CompilerException)"> 2461 <member name="M:HttpServer.ResponseCookie.ToString">
3279 <summary> 2462 <summary>
3280 Initializes a new instance of the <see cref="T:HttpServer.Rendering.TemplateException"/> class. 2463 Gets the cookie HTML representation.
3281 </summary> 2464 </summary>
3282 <param name="templateName">Template that failed compilation.</param> 2465 <returns>cookie string</returns>
3283 <param name="err">Exception thrown by the compiler.</param>
3284 </member> 2466 </member>
3285 <member name="M:HttpServer.Rendering.TemplateException.ToString"> 2467 <member name="P:HttpServer.ResponseCookie.Expires">
3286 <summary> 2468 <summary>
3287 Creates and returns a string representation of the current exception. 2469 When the cookie expires.
2470 DateTime.MinValue means that the cookie expires when the session do so.
3288 </summary> 2471 </summary>
3289 <returns>
3290 A string representation of the current exception.
3291 </returns>
3292 <PermissionSet>
3293 <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="*AllFiles*"/>
3294 </PermissionSet>
3295 </member> 2472 </member>
3296 <member name="P:HttpServer.Rendering.TemplateException.Message"> 2473 <member name="P:HttpServer.ResponseCookie.Path">
3297 <summary> 2474 <summary>
3298 Gets a message that describes the current exception. 2475 Cookie is only valid under this path.
3299 </summary> 2476 </summary>
3300 <value></value>
3301 <returns>
3302 The error message that explains the reason for the exception, or an empty string("").
3303 </returns>
3304 </member> 2477 </member>
3305 <member name="T:HttpServer.Method"> 2478 <member name="T:HttpServer.Method">
3306 <summary> 2479 <summary>
@@ -3359,8 +2532,8 @@
3359 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 2532 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
3360 </summary> 2533 </summary>
3361 <remarks> 2534 <remarks>
3362 The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 2535 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
3363 information sent in response to a GET request. This method can be used for obtaining metainformation about 2536 information sent in response to a GET request. This method can be used for obtaining meta information about
3364 the entity implied by the request without transferring the entity-body itself. 2537 the entity implied by the request without transferring the entity-body itself.
3365 2538
3366 This method is often used for testing hypertext links for validity, accessibility, and recent modification. 2539 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
@@ -3498,8 +2671,8 @@
3498 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 2671 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
3499 </summary> 2672 </summary>
3500 <remarks> 2673 <remarks>
3501 The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 2674 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
3502 information sent in response to a GET request. This method can be used for obtaining metainformation about 2675 information sent in response to a GET request. This method can be used for obtaining meta information about
3503 the entity implied by the request without transferring the entity-body itself. 2676 the entity implied by the request without transferring the entity-body itself.
3504 2677
3505 This method is often used for testing hypertext links for validity, accessibility, and recent modification. 2678 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
@@ -3580,1150 +2753,921 @@
3580 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 2753 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
3581 </summary> 2754 </summary>
3582 </member> 2755 </member>
3583 <member name="T:HttpServer.IHttpRequest"> 2756 <member name="T:HttpServer.HttpHelper">
3584 <summary>
3585 Contains serverside http request information.
3586 </summary>
3587 </member>
3588 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
3589 <summary>
3590 Decode body into a form.
3591 </summary>
3592 <param name="providers">A list with form decoders.</param>
3593 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
3594 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
3595 </member>
3596 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
3597 <summary>
3598 Sets the cookies.
3599 </summary>
3600 <param name="cookies">The cookies.</param>
3601 </member>
3602 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
3603 <summary>
3604 Called during parsing of a IHttpRequest.
3605 </summary>
3606 <param name="name">Name of the header, should not be url encoded</param>
3607 <param name="value">Value of the header, should not be url encoded</param>
3608 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
3609 </member>
3610 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
3611 <summary>
3612 Add bytes to the body
3613 </summary>
3614 <param name="bytes">buffer to read bytes from</param>
3615 <param name="offset">where to start read</param>
3616 <param name="length">number of bytes to read</param>
3617 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
3618 <exception cref="T:System.ArgumentException"></exception>
3619 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
3620 </member>
3621 <member name="M:HttpServer.IHttpRequest.Clear">
3622 <summary> 2757 <summary>
3623 Clear everything in the request 2758 Generic helper functions for HTTP
3624 </summary> 2759 </summary>
3625 </member> 2760 </member>
3626 <member name="P:HttpServer.IHttpRequest.BodyIsComplete"> 2761 <member name="F:HttpServer.HttpHelper.HTTP10">
3627 <summary> 2762 <summary>
3628 Have all body content bytes been received? 2763 Version string for HTTP v1.0
3629 </summary> 2764 </summary>
3630 </member> 2765 </member>
3631 <member name="P:HttpServer.IHttpRequest.AcceptTypes"> 2766 <member name="F:HttpServer.HttpHelper.HTTP11">
3632 <summary> 2767 <summary>
3633 Kind of types accepted by the client. 2768 Version string for HTTP v1.1
3634 </summary> 2769 </summary>
3635 </member> 2770 </member>
3636 <member name="P:HttpServer.IHttpRequest.Body"> 2771 <member name="F:HttpServer.HttpHelper.EmptyUri">
3637 <summary> 2772 <summary>
3638 Submitted body contents 2773 An empty URI
3639 </summary> 2774 </summary>
3640 </member> 2775 </member>
3641 <member name="P:HttpServer.IHttpRequest.Connection"> 2776 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)">
3642 <summary> 2777 <summary>
3643 Kind of connection used for the session. 2778 Parses a query string.
3644 </summary> 2779 </summary>
2780 <param name="queryString">Query string (URI encoded)</param>
2781 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
2782 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
2783 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
3645 </member> 2784 </member>
3646 <member name="P:HttpServer.IHttpRequest.ContentLength"> 2785 <member name="T:HttpServer.Helpers.ObjectForm">
3647 <summary> 2786 <summary>
3648 Number of bytes in the body 2787 The object form class takes an object and creates form items for it.
3649 </summary> 2788 </summary>
3650 </member> 2789 </member>
3651 <member name="P:HttpServer.IHttpRequest.Headers"> 2790 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)">
3652 <summary> 2791 <summary>
3653 Headers sent by the client. All names are in lower case. 2792 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
3654 </summary> 2793 </summary>
2794 <param name="method"></param>
2795 <param name="name">form name *and* id.</param>
2796 <param name="action">action to do when form is posted.</param>
2797 <param name="obj"></param>
3655 </member> 2798 </member>
3656 <member name="P:HttpServer.IHttpRequest.HttpVersion"> 2799 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)">
3657 <summary> 2800 <summary>
3658 Version of http. 2801 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
3659 Probably HttpHelper.HTTP10 or HttpHelper.HTTP11
3660 </summary> 2802 </summary>
3661 <seealso cref="T:HttpServer.HttpHelper"/> 2803 <param name="name">form name *and* id.</param>
2804 <param name="action">action to do when form is posted.</param>
2805 <param name="obj">object to get values from</param>
3662 </member> 2806 </member>
3663 <member name="P:HttpServer.IHttpRequest.Method"> 2807 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)">
3664 <summary> 2808 <summary>
3665 Requested method, always upper case. 2809 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
3666 </summary> 2810 </summary>
3667 <see cref="P:HttpServer.IHttpRequest.Method"/> 2811 <param name="action">form action.</param>
2812 <param name="obj">object to get values from.</param>
3668 </member> 2813 </member>
3669 <member name="P:HttpServer.IHttpRequest.QueryString"> 2814 <member name="M:HttpServer.Helpers.ObjectForm.Begin">
3670 <summary> 2815 <summary>
3671 Variables sent in the query string 2816 write out the FORM-tag.
3672 </summary> 2817 </summary>
2818 <returns>generated html code</returns>
3673 </member> 2819 </member>
3674 <member name="P:HttpServer.IHttpRequest.Uri"> 2820 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)">
3675 <summary> 2821 <summary>
3676 Requested URI (url) 2822 Writeout the form tag
3677 </summary> 2823 </summary>
2824 <param name="isAjax">form should be posted through ajax.</param>
2825 <returns>generated html code</returns>
3678 </member> 2826 </member>
3679 <member name="P:HttpServer.IHttpRequest.UriParts"> 2827 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])">
3680 <summary> 2828 <summary>
3681 Uri absolute path splitted into parts. 2829 Generates a text box.
3682 </summary> 2830 </summary>
3683 <example> 2831 <param name="propertyName"></param>
3684 // uri is: http://gauffin.com/code/tiny/ 2832 <param name="options"></param>
3685 Console.WriteLine(request.UriParts[0]); // result: code 2833 <returns>generated html code</returns>
3686 Console.WriteLine(request.UriParts[1]); // result: tiny
3687 </example>
3688 <remarks>
3689 If you're using controllers than the first part is controller name,
3690 the second part is method name and the third part is Id property.
3691 </remarks>
3692 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
3693 </member> 2834 </member>
3694 <member name="P:HttpServer.IHttpRequest.Param"> 2835 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])">
3695 <summary> 2836 <summary>
3696 Check's both QueryString and Form after the parameter. 2837 password box
3697 </summary> 2838 </summary>
2839 <param name="propertyName"></param>
2840 <param name="options"></param>
2841 <returns>generated html code</returns>
3698 </member> 2842 </member>
3699 <member name="P:HttpServer.IHttpRequest.Form"> 2843 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])">
3700 <summary> 2844 <summary>
3701 Form parameters. 2845 Hiddens the specified property name.
3702 </summary> 2846 </summary>
2847 <param name="propertyName">Name of the property.</param>
2848 <param name="options">The options.</param>
2849 <returns>generated html code</returns>
3703 </member> 2850 </member>
3704 <member name="P:HttpServer.IHttpRequest.IsAjax"> 2851 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)">
3705 <summary>Returns true if the request was made by Ajax (Asyncronous Javascript)</summary>
3706 </member>
3707 <member name="P:HttpServer.IHttpRequest.Cookies">
3708 <summary>Returns set cookies for the request</summary>
3709 </member>
3710 <member name="T:HttpServer.HttpRequestParser">
3711 <summary> 2852 <summary>
3712 Parses a HTTP request directly from a stream 2853 Labels the specified property name.
3713 </summary> 2854 </summary>
2855 <param name="propertyName">property in object.</param>
2856 <param name="label">caption</param>
2857 <returns>generated html code</returns>
3714 </member> 2858 </member>
3715 <member name="M:HttpServer.HttpRequestParser.#ctor(HttpServer.HttpRequestParser.RequestCompletedHandler,HttpServer.ILogWriter)"> 2859 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])">
3716 <summary> 2860 <summary>
3717 Create a new request parser 2861 Generate a checkbox
3718 </summary> 2862 </summary>
3719 <param name="requestCompleted">delegate called when a complete request have been generated</param> 2863 <param name="propertyName">property in object</param>
3720 <param name="logWriter">delegate receiving log entries.</param> 2864 <param name="value">checkbox value</param>
2865 <param name="options">additional html attributes.</param>
2866 <returns>generated html code</returns>
3721 </member> 2867 </member>
3722 <member name="M:HttpServer.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)"> 2868 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])">
3723 <summary> 2869 <summary>
3724 Add a number of bytes to the body 2870 Write a html select tag
3725 </summary> 2871 </summary>
3726 <param name="buffer"></param> 2872 <param name="propertyName">object property.</param>
3727 <param name="offset"></param> 2873 <param name="idColumn">id column</param>
3728 <param name="count"></param> 2874 <param name="titleColumn">The title column.</param>
2875 <param name="options">The options.</param>
3729 <returns></returns> 2876 <returns></returns>
3730 </member> 2877 </member>
3731 <member name="M:HttpServer.HttpRequestParser.Clear"> 2878 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])">
3732 <summary>
3733 Remove all state information for the request.
3734 </summary>
3735 </member>
3736 <member name="M:HttpServer.HttpRequestParser.OnFirstLine(System.String)">
3737 <summary>
3738 Parse request line
3739 </summary>
3740 <param name="value"></param>
3741 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
3742 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
3743 </member>
3744 <member name="M:HttpServer.HttpRequestParser.OnHeader(System.String,System.String)">
3745 <summary>
3746 We've parsed a new header.
3747 </summary>
3748 <param name="name">Name in lower case</param>
3749 <param name="value">Value, unmodified.</param>
3750 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
3751 </member>
3752 <member name="M:HttpServer.HttpRequestParser.ParseMessage(System.Byte[],System.Int32,System.Int32)">
3753 <summary>
3754 Parse a message
3755 </summary>
3756 <param name="buffer"></param>
3757 <param name="offset">where in buffer that parsing should start</param>
3758 <param name="size">number of bytes to parse</param>
3759 <returns>Unparsed bytes left in buffer.</returns>
3760 </member>
3761 <member name="P:HttpServer.HttpRequestParser.CurrentState">
3762 <summary>
3763 Current state in parser.
3764 </summary>
3765 </member>
3766 <member name="T:HttpServer.HttpRequestParser.RequestCompletedHandler">
3767 <summary>
3768 Invoked when a request have been completed.
3769 </summary>
3770 <param name="request"></param>
3771 </member>
3772 <member name="T:HttpServer.HttpRequestParser.State">
3773 <summary>
3774 Current state in the parsing.
3775 </summary>
3776 </member>
3777 <member name="F:HttpServer.HttpRequestParser.State.FirstLine">
3778 <summary> 2879 <summary>
3779 Should parse the request line 2880 Selects the specified property name.
3780 </summary> 2881 </summary>
2882 <param name="propertyName">Name of the property.</param>
2883 <param name="items">The items.</param>
2884 <param name="idColumn">The id column.</param>
2885 <param name="titleColumn">The title column.</param>
2886 <param name="options">The options.</param>
2887 <returns></returns>
3781 </member> 2888 </member>
3782 <member name="F:HttpServer.HttpRequestParser.State.HeaderName"> 2889 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)">
3783 <summary> 2890 <summary>
3784 Searching for a complete header name 2891 Write a submit tag.
3785 </summary> 2892 </summary>
2893 <param name="value">button caption</param>
2894 <returns>html submit tag</returns>
3786 </member> 2895 </member>
3787 <member name="F:HttpServer.HttpRequestParser.State.AfterName"> 2896 <member name="M:HttpServer.Helpers.ObjectForm.End">
3788 <summary> 2897 <summary>
3789 Searching for colon after header name (ignoring white spaces) 2898 html end form tag
3790 </summary> 2899 </summary>
2900 <returns>html</returns>
3791 </member> 2901 </member>
3792 <member name="F:HttpServer.HttpRequestParser.State.Between"> 2902 <member name="T:HttpServer.FormDecoders.UrlDecoder">
3793 <summary> 2903 <summary>
3794 Searching for start of header value (ignoring white spaces) 2904 Can handle application/x-www-form-urlencoded
3795 </summary> 2905 </summary>
3796 </member> 2906 </member>
3797 <member name="F:HttpServer.HttpRequestParser.State.HeaderValue"> 2907 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
3798 <summary> 2908 <summary>
3799 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
3800 </summary> 2909 </summary>
2910 <param name="stream">Stream containing the content</param>
2911 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
2912 <param name="encoding">Stream encoding</param>
2913 <returns>
2914 A HTTP form, or null if content could not be parsed.
2915 </returns>
2916 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
3801 </member> 2917 </member>
3802 <member name="F:HttpServer.HttpRequestParser.State.Body"> 2918 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
3803 <summary> 2919 <summary>
3804 Adding bytes to body 2920 Checks if the decoder can handle the mime type
3805 </summary> 2921 </summary>
2922 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
2923 <returns>True if the decoder can parse the specified content type</returns>
3806 </member> 2924 </member>
3807 <member name="T:HttpServer.HttpRequest"> 2925 <member name="T:HttpServer.Exceptions.NotFoundException">
3808 <summary> 2926 <summary>
3809 Contains serverside http request information. 2927 The requested resource was not found in the web server.
3810 </summary> 2928 </summary>
3811 </member> 2929 </member>
3812 <member name="F:HttpServer.HttpRequest.UriSplitters"> 2930 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
3813 <summary> 2931 <summary>
3814 Chars used to split an url path into multiple parts. 2932 Create a new exception
3815 </summary> 2933 </summary>
2934 <param name="message">message describing the error</param>
2935 <param name="inner">inner exception</param>
3816 </member> 2936 </member>
3817 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)"> 2937 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
3818 <summary> 2938 <summary>
3819 Assign a form. 2939 Create a new exception
3820 </summary> 2940 </summary>
3821 <param name="form"></param> 2941 <param name="message">message describing the error</param>
3822 </member> 2942 </member>
3823 <member name="M:HttpServer.HttpRequest.Clone"> 2943 <member name="T:HttpServer.ClientAcceptedEventArgs">
3824 <summary> 2944 <summary>
3825 Creates a new object that is a copy of the current instance. 2945 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
3826 </summary> 2946 </summary>
3827 2947 <remarks>
3828 <returns> 2948 Can be used to revoke incoming connections
3829 A new object that is a copy of this instance. 2949 </remarks>
3830 </returns>
3831 <filterpriority>2</filterpriority>
3832 </member> 2950 </member>
3833 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 2951 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
3834 <summary> 2952 <summary>
3835 Decode body into a form. 2953 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
3836 </summary> 2954 </summary>
3837 <param name="providers">A list with form decoders.</param> 2955 <param name="socket">The socket.</param>
3838 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
3839 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
3840 </member> 2956 </member>
3841 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)"> 2957 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
3842 <summary> 2958 <summary>
3843 Cookies 2959 Client may not be handled.
3844 </summary> 2960 </summary>
3845 <param name="cookies">the cookies</param>
3846 </member> 2961 </member>
3847 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)"> 2962 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
3848 <summary> 2963 <summary>
3849 Called during parsing of a IHttpRequest. 2964 Accepted socket.
3850 </summary> 2965 </summary>
3851 <param name="name">Name of the header, should not be url encoded</param>
3852 <param name="value">Value of the header, should not be url encoded</param>
3853 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
3854 </member> 2966 </member>
3855 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)"> 2967 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
3856 <summary> 2968 <summary>
3857 Add bytes to the body 2969 Client should be revoked.
3858 </summary> 2970 </summary>
3859 <param name="bytes">buffer to read bytes from</param>
3860 <param name="offset">where to start read</param>
3861 <param name="length">number of bytes to read</param>
3862 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
3863 <exception cref="T:System.ArgumentException"></exception>
3864 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
3865 </member> 2971 </member>
3866 <member name="M:HttpServer.HttpRequest.Clear"> 2972 <member name="T:HttpServer.RequestQueue">
3867 <summary> 2973 <summary>
3868 Clear everything in the request 2974 Used to queue incoming requests.
3869 </summary> 2975 </summary>
3870 </member> 2976 </member>
3871 <member name="P:HttpServer.HttpRequest.BodyIsComplete"> 2977 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
3872 <summary> 2978 <summary>
3873 Have all body content bytes been received? 2979 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
3874 </summary> 2980 </summary>
2981 <param name="handler">Called when a request should be processed.</param>
3875 </member> 2982 </member>
3876 <member name="P:HttpServer.HttpRequest.AcceptTypes"> 2983 <member name="M:HttpServer.RequestQueue.QueueThread">
3877 <summary> 2984 <summary>
3878 Kind of types accepted by the client. 2985 Used to process queued requests.
3879 </summary> 2986 </summary>
3880 </member> 2987 </member>
3881 <member name="P:HttpServer.HttpRequest.Body"> 2988 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
3882 <summary> 2989 <summary>
3883 Submitted body contents 2990 Gets or sets maximum number of allowed simultaneous requests.
3884 </summary> 2991 </summary>
3885 </member> 2992 </member>
3886 <member name="P:HttpServer.HttpRequest.Connection"> 2993 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
3887 <summary> 2994 <summary>
3888 Kind of connection used for the session. 2995 Gets or sets maximum number of requests queuing to be handled.
3889 </summary> 2996 </summary>
3890 </member> 2997 </member>
3891 <member name="P:HttpServer.HttpRequest.ContentLength"> 2998 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
3892 <summary> 2999 <summary>
3893 Number of bytes in the body 3000 Specifies how many requests the HTTP server is currently processing.
3894 </summary> 3001 </summary>
3895 </member> 3002 </member>
3896 <member name="P:HttpServer.HttpRequest.Headers"> 3003 <member name="T:HttpServer.RequestQueue.QueueItem">
3897 <summary> 3004 <summary>
3898 Headers sent by the client. All names are in lower case. 3005 Used two queue incoming requests to avoid
3006 thread starvation.
3899 </summary> 3007 </summary>
3900 </member> 3008 </member>
3901 <member name="P:HttpServer.HttpRequest.HttpVersion"> 3009 <member name="T:HttpServer.ProcessRequestHandler">
3902 <summary> 3010 <summary>
3903 Version of http. 3011 Method used to process a queued request
3904 Probably HttpHelper.HTTP10 or HttpHelper.HTTP11
3905 </summary> 3012 </summary>
3906 <seealso cref="T:HttpServer.HttpHelper"/> 3013 <param name="context">Context that the request was received from.</param>
3014 <param name="request">Request to process.</param>
3907 </member> 3015 </member>
3908 <member name="P:HttpServer.HttpRequest.Method"> 3016 <member name="T:HttpServer.Parser.RequestLineEventArgs">
3909 <summary> 3017 <summary>
3910 Requested method, always upper case. 3018 Used when the request line have been successfully parsed.
3911 </summary> 3019 </summary>
3912 <see cref="P:HttpServer.HttpRequest.Method"/>
3913 </member> 3020 </member>
3914 <member name="P:HttpServer.HttpRequest.QueryString"> 3021 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)">
3915 <summary> 3022 <summary>
3916 Variables sent in the query string 3023 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3917 </summary> 3024 </summary>
3025 <param name="httpMethod">The HTTP method.</param>
3026 <param name="uriPath">The URI path.</param>
3027 <param name="httpVersion">The HTTP version.</param>
3918 </member> 3028 </member>
3919 <member name="P:HttpServer.HttpRequest.Uri"> 3029 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor">
3920 <summary> 3030 <summary>
3921 Requested URI (url) 3031 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3922 </summary> 3032 </summary>
3923 <seealso cref="P:HttpServer.HttpRequest.UriPath"/>
3924 </member> 3033 </member>
3925 <member name="P:HttpServer.HttpRequest.UriParts"> 3034 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod">
3926 <summary> 3035 <summary>
3927 Uri absolute path splitted into parts. 3036 Gets or sets http method.
3928 </summary> 3037 </summary>
3929 <example>
3930 // uri is: http://gauffin.com/code/tiny/
3931 Console.WriteLine(request.UriParts[0]); // result: code
3932 Console.WriteLine(request.UriParts[1]); // result: tiny
3933 </example>
3934 <remarks> 3038 <remarks>
3935 If you're using controllers than the first part is controller name, 3039 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
3936 the second part is method name and the third part is Id property.
3937 </remarks> 3040 </remarks>
3938 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
3939 </member> 3041 </member>
3940 <member name="P:HttpServer.HttpRequest.UriPath"> 3042 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion">
3941 <summary> 3043 <summary>
3942 Path and query (will be merged with the host header) and put in Uri 3044 Gets or sets the version of the HTTP protocol that the client want to use.
3943 </summary> 3045 </summary>
3944 <see cref="P:HttpServer.HttpRequest.Uri"/>
3945 </member> 3046 </member>
3946 <member name="P:HttpServer.HttpRequest.Param"> 3047 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath">
3947 <summary> 3048 <summary>
3948 Check's both QueryString and Form after the parameter. 3049 Gets or sets requested URI path.
3949 </summary> 3050 </summary>
3950 </member> 3051 </member>
3951 <member name="P:HttpServer.HttpRequest.Form"> 3052 <member name="T:HttpServer.IComponentProvider">
3952 <summary> 3053 <summary>
3953 Form parameters. 3054 Inversion of control interface.
3954 </summary> 3055 </summary>
3955 </member> 3056 </member>
3956 <member name="P:HttpServer.HttpRequest.IsAjax"> 3057 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
3957 <summary>Returns true if the request was made by Ajax (Asyncronous Javascript)</summary>
3958 </member>
3959 <member name="P:HttpServer.HttpRequest.Cookies">
3960 <summary>Returns set cookies for the request</summary>
3961 </member>
3962 <member name="P:HttpServer.HttpRequest.Secure">
3963 <summary> 3058 <summary>
3964 Current request is sent over secure protocol 3059 Add a component instance
3965 </summary> 3060 </summary>
3061 <typeparam name="T">Interface type</typeparam>
3062 <param name="instance">Instance to add</param>
3966 </member> 3063 </member>
3967 <member name="T:HttpServer.HttpModules.WebSiteModule"> 3064 <member name="M:HttpServer.IComponentProvider.Get``1">
3968 <summary> 3065 <summary>
3969 The website module let's you handle multiple websites in the same server. 3066 Get a component.
3970 It uses the "Host" header to check which site you want.
3971 </summary>
3972 <remarks>It's recommended that you do not
3973 add any other modules to HttpServer if you are using the website module. Instead,
3974 add all wanted modules to each website.</remarks>
3975 </member>
3976 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
3977 <summary>
3978
3979 </summary>
3980 <param name="host">domain name that should be handled.</param>
3981 <param name="name"></param>
3982 </member>
3983 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3984 <summary>
3985 Method that process the url
3986 </summary>
3987 <param name="request">Information sent by the browser about the request</param>
3988 <param name="response">Information that is being sent back to the client.</param>
3989 <param name="session">Session used to </param>
3990 </member>
3991 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
3992 <summary>
3993 Name of site.
3994 </summary> 3067 </summary>
3068 <typeparam name="T">Interface type</typeparam>
3069 <returns>Component if registered, otherwise null.</returns>
3070 <remarks>
3071 Component will get created if needed.
3072 </remarks>
3995 </member> 3073 </member>
3996 <member name="T:HttpServer.Helpers.FormHelper"> 3074 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
3997 <summary> 3075 <summary>
3998 Helpers making it easier to work with forms. 3076 Checks if the specified component interface have been added.
3999 </summary> 3077 </summary>
4000 <seealso cref="T:HttpServer.Helpers.ObjectForm"/> 3078 <param name="interfaceType"></param>
3079 <returns>true if found; otherwise false.</returns>
4001 </member> 3080 </member>
4002 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation"> 3081 <member name="M:HttpServer.IComponentProvider.Add``2">
4003 <summary> 3082 <summary>
4004 Used to let the website use different javascript libraries. 3083 Add a component.
4005 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
4006 </summary> 3084 </summary>
3085 <typeparam name="InterfaceType">Type being requested.</typeparam>
3086 <typeparam name="InstanceType">Type being created.</typeparam>
4007 </member> 3087 </member>
4008 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])"> 3088 <member name="T:HttpServer.HttpResponse">
4009 <summary> 3089 <summary>
4010 Create a &lt;form&gt; tag. 3090 Response that is sent back to the web browser / client.
4011 </summary> 3091 </summary>
4012 <param name="name">name of form</param> 3092 <remarks>
4013 <param name="action">action to invoke on submit</param> 3093 <para>
4014 <param name="isAjax">form should be posted as ajax</param> 3094 A response can be sent if different ways. The easiest one is
4015 <returns>html code</returns> 3095 to just fill the Body stream with content, everything else
3096 will then be taken care of by the framework. The default content-type
3097 is text/html, you should change it if you send anything else.
3098 </para><para>
3099 The second and slightly more complex way is to send the response
3100 as parts. Start with sending the header using the SendHeaders method and
3101 then you can send the body using SendBody method, but do not forget
3102 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
3103 </para>
3104 </remarks>
4016 <example> 3105 <example>
4017 <code> 3106 <code>
4018 // without options 3107 // Example using response body.
4019 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); 3108 class MyModule : HttpModule
3109 {
3110 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
3111 {
3112 StreamWriter writer = new StreamWriter(response.Body);
3113 writer.WriteLine("Hello dear World!");
3114 writer.Flush();
4020 3115
4021 // with options 3116 // return true to tell webserver that we've handled the url
4022 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm"); 3117 return true;
3118 }
3119 }
4023 </code> 3120 </code>
4024 </example> 3121 </example>
4025 <param name="options">html attributes or javscript options.</param> 3122 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
4026 <remarks>Method will ALWAYS be POST.</remarks>
4027 </member>
4028 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4029 <summary>
4030 Creates a select list with the values in a collection.
4031 </summary>
4032 <param name="name">Name of the SELECT-tag</param>
4033 <param name="collection">collection used to generate options.</param>
4034 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4035 <param name="selectedValue">value that should be marked as selected.</param>
4036 <param name="firstEmpty">First row should contain an empty value.</param>
4037 <returns>string containtain a SELECT-tag.</returns>
4038 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4039 </member> 3123 </member>
4040 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 3124 <member name="T:HttpServer.IHttpResponse">
4041 <summary> 3125 <summary>
4042 Creates a select list with the values in a collection. 3126 Response that is sent back to the web browser / client.
4043 </summary>
4044 <param name="name">Name of the SELECT-tag</param>
4045 <param name="id">Id of the SELECT-tag</param>
4046 <param name="collection">collection used to generate options.</param>
4047 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4048 <param name="selectedValue">value that should be marked as selected.</param>
4049 <param name="firstEmpty">First row should contain an empty value.</param>
4050 <returns>string containtain a SELECT-tag.</returns>
4051 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4052 <example>
4053 <code>
4054 // Class that is going to be used in a SELECT-tag.
4055 public class User
4056 {
4057 private readonly string _realName;
4058 private readonly int _id;
4059 public User(int id, string realName)
4060 {
4061 _id = id;
4062 _realName = realName;
4063 }
4064 public string RealName
4065 {
4066 get { return _realName; }
4067 }
4068
4069 public int Id
4070 {
4071 get { return _id; }
4072 }
4073 }
4074
4075 // Using an inline delegate to generate the select list
4076 public void UserInlineDelegate()
4077 {
4078 List&lt;User&gt; items = new List&lt;User&gt;();
4079 items.Add(new User(1, "adam"));
4080 items.Add(new User(2, "bertial"));
4081 items.Add(new User(3, "david"));
4082 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
4083 {
4084 User user = (User)o;
4085 id = user.Id;
4086 value = user.RealName;
4087 }, 2, true);
4088 }
4089 3127
4090 // Using an method as delegate to generate the select list. 3128 A response can be sent if different ways. The easiest one is
4091 public void UseExternalDelegate() 3129 to just fill the Body stream with content, everything else
4092 { 3130 will then be taken care of by the framework. The default content-type
4093 List&lt;User&gt; items = new List&lt;User&gt;(); 3131 is text/html, you should change it if you send anything else.
4094 items.Add(new User(1, "adam"));
4095 items.Add(new User(2, "bertial"));
4096 items.Add(new User(3, "david"));
4097 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
4098 }
4099 3132
4100 // delegate returning id and title 3133 The second and slighty more complex way is to send the response
4101 public static void UserOptions(object o, out object id, out object title) 3134 as parts. Start with sending the header using the SendHeaders method and
3135 then you can send the body using SendBody method, but do not forget
3136 to set ContentType and ContentLength before doing so.
3137 </summary>
3138 <example>
3139 public void MyHandler(IHttpRequest request, IHttpResponse response)
4102 { 3140 {
4103 User user = (User)o; 3141
4104 id = user.Id;
4105 value = user.RealName;
4106 } 3142 }
4107 </code>
4108 </example> 3143 </example>
4109 </member> 3144 </member>
4110 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])"> 3145 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)">
4111 <summary>
4112 Creates a select list with the values in a collection.
4113 </summary>
4114 <param name="name">Name of the SELECT-tag</param>
4115 <param name="id">Id of the SELECT-tag</param>
4116 <param name="collection">collection used to generate options.</param>
4117 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4118 <param name="selectedValue">value that should be marked as selected.</param>
4119 <param name="firstEmpty">First row should contain an empty value.</param>
4120 <param name="htmlAttributes">name, value collection of extra html attributes.</param>
4121 <returns>string containtain a SELECT-tag.</returns>
4122 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4123 </member>
4124 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4125 <summary>
4126 Generate a list of HTML options
4127 </summary>
4128 <param name="collection">collection used to generate options.</param>
4129 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4130 <param name="selectedValue">value that should be marked as selected.</param>
4131 <param name="firstEmpty">First row should contain an empty value.</param>
4132 <returns></returns>
4133 </member>
4134 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
4135 <summary>
4136 Creates a checkbox.
4137 </summary>
4138 <param name="name">element name</param>
4139 <param name="value">element value</param>
4140 <param name="isChecked">determines if the check box is selected or not. This is done diffrently depending on the
4141 type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
4142 the box is checked or not. </param>
4143 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4144 <returns>a generated radio button</returns>
4145 </member>
4146 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
4147 <summary>
4148 Creates a checkbox.
4149 </summary>
4150 <param name="name">element name</param>
4151 <param name="id">element id</param>
4152 <param name="value">element value</param>
4153 <param name="isChecked">determines if the check box is selected or not. This is done diffrently depending on the
4154 type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
4155 the box is checked or not. </param>
4156 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4157 <returns>a generated radio button</returns>
4158 <remarks>
4159 value in your business object. (check box will be selected if it matches the element value)
4160 </remarks>
4161 </member>
4162 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
4163 <summary> 3146 <summary>
4164 Creates a checkbox. 3147 Add another header to the document.
4165 </summary> 3148 </summary>
4166 <param name="name">element name</param> 3149 <param name="name">Name of the header, case sensitive, use lower cases.</param>
4167 <param name="id">element id</param> 3150 <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>
4168 <param name="isChecked">determines if the check box is selected or not. This is done diffrently depending on the 3151 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4169 type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if 3152 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
4170 the box is checked or not. </param> 3153 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
4171 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4172 <returns>a generated radio button</returns>
4173 <remarks>will set value to "1".</remarks>
4174 </member> 3154 </member>
4175 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])"> 3155 <member name="M:HttpServer.IHttpResponse.Send">
4176 <summary> 3156 <summary>
4177 Creates a RadioButton. 3157 Send headers and body to the browser.
4178 </summary> 3158 </summary>
4179 <param name="name">element name</param> 3159 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
4180 <param name="value">element value</param>
4181 <param name="isSelected">determines if the radio button is selected or not. This is done diffrently depending on the
4182 type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
4183 the box is checked or not. </param>
4184 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4185 <returns>a generated radio button</returns>
4186 </member> 3160 </member>
4187 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])"> 3161 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
4188 <summary> 3162 <summary>
4189 Creates a RadioButton. 3163 Make sure that you have specified ContentLength and sent the headers first.
4190 </summary> 3164 </summary>
4191 <param name="name">element name</param> 3165 <param name="buffer"></param>
4192 <param name="id">element id</param> 3166 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
4193 <param name="value">element value</param> 3167 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
4194 <param name="isSelected">determines if the radio button is selected or not. This is done diffrently depending on the 3168 <param name="offset">offest of first byte to send</param>
4195 type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if 3169 <param name="count">number of bytes to send.</param>
4196 the box is checked or not. </param> 3170 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
4197 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 3171 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
4198 <returns>a generated radio button</returns> 3172 <remarks>This method can be used if you want to send body contents without caching them first. This
3173 is recommended for larger files to keep the memory usage low.</remarks>
4199 </member> 3174 </member>
4200 <member name="M:HttpServer.Helpers.FormHelper.End"> 3175 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])">
4201 <summary> 3176 <summary>
4202 form close tag 3177 Make sure that you have specified ContentLength and sent the headers first.
4203 </summary> 3178 </summary>
4204 <returns></returns> 3179 <param name="buffer"></param>
3180 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3181 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3182 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3183 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3184 <remarks>This method can be used if you want to send body contents without caching them first. This
3185 is recommended for larger files to keep the memory usage low.</remarks>
4205 </member> 3186 </member>
4206 <member name="T:HttpServer.Exceptions.BadRequestException"> 3187 <member name="M:HttpServer.IHttpResponse.SendHeaders">
4207 <summary> 3188 <summary>
4208 The request could not be understood by the server due to malformed syntax. 3189 Send headers to the client.
4209 The client SHOULD NOT repeat the request without modifications.
4210
4211 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
4212 </summary> 3190 </summary>
3191 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3192 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/>
3193 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3194 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/>
4213 </member> 3195 </member>
4214 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)"> 3196 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)">
4215 <summary> 3197 <summary>
4216 Create a new bad request exception. 3198 Redirect client to somewhere else using the 302 status code.
4217 </summary> 3199 </summary>
4218 <param name="errMsg">reason to why the request was bad.</param> 3200 <param name="uri">Destination of the redirect</param>
3201 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3202 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
3203 action.</remarks>
4219 </member> 3204 </member>
4220 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)"> 3205 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)">
4221 <summary> 3206 <summary>
4222 Create a new bad request exception. 3207 redirect to somewhere
4223 </summary> 3208 </summary>
4224 <param name="errMsg">reason to why the request was bad.</param> 3209 <param name="url">where the redirect should go</param>
4225 <param name="inner">inner exception</param> 3210 <remarks>
3211 No body are allowed when doing redirects.
3212 </remarks>
4226 </member> 3213 </member>
4227 <member name="T:HttpServer.Authentication.DigestAuthentication"> 3214 <member name="P:HttpServer.IHttpResponse.Body">
4228 <summary> 3215 <summary>
4229 Implements HTTP Digest authentication. It's more secure than Basic auth since password is 3216 The body stream is used to cache the body contents
4230 encrypted with a "key" from the server. 3217 before sending everything to the client. It's the simplest
3218 way to serve documents.
4231 </summary> 3219 </summary>
4232 <remarks>
4233 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
4234 </remarks>
4235 </member> 3220 </member>
4236 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthRequiredDelegate)"> 3221 <member name="P:HttpServer.IHttpResponse.ProtocolVersion">
4237 <summary> 3222 <summary>
4238 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class. 3223 Defines the version of the HTTP Response for applications where it's required
3224 for this to be forced.
4239 </summary> 3225 </summary>
4240 <param name="authenticator">Delegate used to provide information used during authentication.</param>
4241 <param name="authRequiredDelegate">Delegate used to determine if authentication is required (may be null).</param>
4242 </member> 3226 </member>
4243 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 3227 <member name="P:HttpServer.IHttpResponse.Chunked">
4244 <summary> 3228 <summary>
4245 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class. 3229 The chunked encoding modifies the body of a message in order to
3230 transfer it as a series of chunks, each with its own size indicator,
3231 followed by an OPTIONAL trailer containing entity-header fields. This
3232 allows dynamically produced content to be transferred along with the
3233 information necessary for the recipient to verify that it has
3234 received the full message.
4246 </summary> 3235 </summary>
4247 <param name="authenticator">Delegate used to provide information used during authentication.</param>
4248 </member> 3236 </member>
4249 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck"> 3237 <member name="P:HttpServer.IHttpResponse.Connection">
4250 <summary> 3238 <summary>
4251 Used by test classes to be able to use hardcoded values 3239 Kind of connection
4252 </summary> 3240 </summary>
4253 </member> 3241 </member>
4254 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])"> 3242 <member name="P:HttpServer.IHttpResponse.Encoding">
4255 <summary> 3243 <summary>
4256 An authentication response have been received from the web browser. 3244 Encoding to use when sending stuff to the client.
4257 Check if it's correct
4258 </summary> 3245 </summary>
4259 <param name="authenticationHeader">Contents from the Authorization header</param> 3246 <remarks>Default is UTF8</remarks>
4260 <param name="realm">Realm that should be authenticated</param>
4261 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
4262 <param name="options">First option: true if username/password is correct but not cnonce</param>
4263 <returns>
4264 Authentication object that is stored for the request. A user class or something like that.
4265 </returns>
4266 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
4267 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
4268 </member> 3247 </member>
4269 <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)"> 3248 <member name="P:HttpServer.IHttpResponse.KeepAlive">
4270 <summary> 3249 <summary>
4271 Encrypts parameters into a Digest string 3250 Number of seconds to keep connection alive
4272 </summary> 3251 </summary>
4273 <param name="realm">Realm that the user want's to log into.</param> 3252 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
4274 <param name="userName">User logging in</param>
4275 <param name="password">Users password.</param>
4276 <param name="method">HTTP metod.</param>
4277 <param name="uri">Uri/domain that generated the login prompt.</param>
4278 <param name="qop">The qop.</param>
4279 <param name="nonce">The nonce.</param>
4280 <param name="nc">The nc.</param>
4281 <param name="cnonce">The cnonce.</param>
4282 <returns>Digest enrypted string</returns>
4283 </member> 3253 </member>
4284 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])"> 3254 <member name="P:HttpServer.IHttpResponse.Status">
4285 <summary> 3255 <summary>
4286 Create a response that can be sent in the WWW-Authenticate header. 3256 Status code that is sent to the client.
4287 </summary> 3257 </summary>
4288 <param name="realm">Realm that the user should authenticate in</param> 3258 <remarks>Default is HttpStatusCode.Ok</remarks>
4289 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
4290 <returns>A correct auth request.</returns>
4291 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
4292 </member> 3259 </member>
4293 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)"> 3260 <member name="P:HttpServer.IHttpResponse.Reason">
4294 <summary> 3261 <summary>
4295 Decodes authorization header value 3262 Information about why a specific status code was used.
4296 </summary> 3263 </summary>
4297 <param name="buffer">header value</param>
4298 <param name="encoding">Encoding that the buffer is in</param>
4299 <returns>All headers and their values if successful; otherwise null</returns>
4300 <example>
4301 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
4302 </example>
4303 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
4304 </member> 3264 </member>
4305 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce"> 3265 <member name="P:HttpServer.IHttpResponse.ContentLength">
4306 <summary> 3266 <summary>
4307 Gets the current nonce. 3267 Size of the body. MUST be specified before sending the header,
3268 unless property Chunked is set to true.
4308 </summary> 3269 </summary>
4309 <returns></returns>
4310 </member> 3270 </member>
4311 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)"> 3271 <member name="P:HttpServer.IHttpResponse.ContentType">
4312 <summary> 3272 <summary>
4313 Gets the Md5 hash bin hex2. 3273 Kind of content in the body
4314 </summary> 3274 </summary>
4315 <param name="toBeHashed">To be hashed.</param> 3275 <remarks>Default is text/html</remarks>
4316 <returns></returns>
4317 </member> 3276 </member>
4318 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)"> 3277 <member name="P:HttpServer.IHttpResponse.HeadersSent">
4319 <summary> 3278 <summary>
4320 determines if the nonce is valid or has expired. 3279 Headers have been sent to the client-
4321 </summary> 3280 </summary>
4322 <param name="nonce">nonce value (check wikipedia for info)</param> 3281 <remarks>You can not send any additional headers if they have already been sent.</remarks>
4323 <returns>true if the nonce has not expired.</returns>
4324 </member> 3282 </member>
4325 <member name="P:HttpServer.Authentication.DigestAuthentication.Name"> 3283 <member name="P:HttpServer.IHttpResponse.Sent">
4326 <summary> 3284 <summary>
4327 name used in http request. 3285 The whole response have been sent.
4328 </summary> 3286 </summary>
4329 </member> 3287 </member>
4330 <member name="T:HttpServer.Sessions.MemorySessionStore"> 3288 <member name="P:HttpServer.IHttpResponse.Cookies">
4331 <summary> 3289 <summary>
4332 Session store using memory for each session. 3290 Cookies that should be created/changed.
4333 </summary> 3291 </summary>
4334 </member> 3292 </member>
4335 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor"> 3293 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
4336 <summary> 3294 <summary>
4337 Initializes the class setting the expirationtimer to clean the session every minute 3295 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
4338 </summary> 3296 </summary>
3297 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
3298 <param name="request">Contains information of what the client want to receive.</param>
3299 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
4339 </member> 3300 </member>
4340 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)"> 3301 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)">
4341 <summary> 3302 <summary>
4342 Delegate for the cleanup timer 3303 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
4343 </summary> 3304 </summary>
3305 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
3306 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
3307 <param name="connectionType">Type of HTTP connection used.</param>
4344 </member> 3308 </member>
4345 <member name="M:HttpServer.Sessions.MemorySessionStore.Create"> 3309 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)">
4346 <summary> 3310 <summary>
4347 Creates a new http session 3311 Add another header to the document.
4348 </summary> 3312 </summary>
4349 <returns></returns> 3313 <param name="name">Name of the header, case sensitive, use lower cases.</param>
3314 <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>
3315 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3316 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
3317 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
4350 </member> 3318 </member>
4351 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)"> 3319 <member name="M:HttpServer.HttpResponse.Send">
4352 <summary> 3320 <summary>
4353 Creates a new http session with a specific id 3321 Send headers and body to the browser.
4354 </summary> 3322 </summary>
4355 <param name="id">Id used to identify the new cookie..</param> 3323 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
4356 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4357 <remarks>
4358 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4359 </remarks>
4360 </member> 3324 </member>
4361 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)"> 3325 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
4362 <summary> 3326 <summary>
4363 Load an existing session. 3327 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
4364 </summary> 3328 </summary>
4365 <param name="sessionId"></param> 3329 <param name="buffer"></param>
4366 <returns></returns> 3330 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3331 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
3332 <param name="offset">offset of first byte to send</param>
3333 <param name="count">number of bytes to send.</param>
3334 <seealso cref="M:HttpServer.HttpResponse.Send"/>
3335 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
3336 <remarks>This method can be used if you want to send body contents without caching them first. This
3337 is recommended for larger files to keep the memory usage low.</remarks>
4367 </member> 3338 </member>
4368 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)"> 3339 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])">
4369 <summary> 3340 <summary>
4370 Save an updated session to the store. 3341 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
4371 </summary> 3342 </summary>
4372 <param name="session"></param> 3343 <param name="buffer"></param>
3344 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3345 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
3346 <seealso cref="M:HttpServer.HttpResponse.Send"/>
3347 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
3348 <remarks>This method can be used if you want to send body contents without caching them first. This
3349 is recommended for larger files to keep the memory usage low.</remarks>
4373 </member> 3350 </member>
4374 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 3351 <member name="M:HttpServer.HttpResponse.SendHeaders">
4375 <summary> 3352 <summary>
4376 We use the flyweight pattern which reuses small objects 3353 Send headers to the client.
4377 instead of creating new each time.
4378 </summary> 3354 </summary>
4379 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param> 3355 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3356 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
3357 <seealso cref="M:HttpServer.HttpResponse.Send"/>
3358 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
4380 </member> 3359 </member>
4381 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup"> 3360 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)">
4382 <summary> 3361 <summary>
4383 Remove expired sessions 3362 Redirect client to somewhere else using the 302 status code.
4384 </summary> 3363 </summary>
3364 <param name="uri">Destination of the redirect</param>
3365 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3366 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
3367 action.</remarks>
4385 </member> 3368 </member>
4386 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)"> 3369 <member name="M:HttpServer.HttpResponse.Redirect(System.String)">
4387 <summary> 3370 <summary>
4388 Remove a session 3371 redirect to somewhere
4389 </summary> 3372 </summary>
4390 <param name="sessionId">id of the session.</param> 3373 <param name="url">where the redirect should go</param>
3374 <remarks>
3375 No body are allowed when doing redirects.
3376 </remarks>
4391 </member> 3377 </member>
4392 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)"> 3378 <member name="P:HttpServer.HttpResponse.Body">
4393 <summary> 3379 <summary>
4394 Load a session from the store 3380 The body stream is used to cache the body contents
3381 before sending everything to the client. It's the simplest
3382 way to serve documents.
4395 </summary> 3383 </summary>
4396 <param name="sessionId"></param>
4397 <returns>null if session is not found.</returns>
4398 </member> 3384 </member>
4399 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime"> 3385 <member name="P:HttpServer.HttpResponse.Chunked">
4400 <summary> 3386 <summary>
4401 Number of minutes before a session expires. 3387 The chunked encoding modifies the body of a message in order to
4402 Default is 20 minutes. 3388 transfer it as a series of chunks, each with its own size indicator,
3389 followed by an OPTIONAL trailer containing entity-header fields. This
3390 allows dynamically produced content to be transferred along with the
3391 information necessary for the recipient to verify that it has
3392 received the full message.
4403 </summary> 3393 </summary>
4404 </member> 3394 </member>
4405 <member name="T:HttpServer.Rendering.ITemplateInfo"> 3395 <member name="P:HttpServer.HttpResponse.ProtocolVersion">
4406 <summary> 3396 <summary>
4407 Keeps information about templates, so we know when to regenerate it. 3397 Defines the version of the HTTP Response for applications where it's required
3398 for this to be forced.
4408 </summary> 3399 </summary>
4409 </member> 3400 </member>
4410 <member name="P:HttpServer.Rendering.ITemplateInfo.CompiledWhen"> 3401 <member name="P:HttpServer.HttpResponse.Connection">
4411 <summary> 3402 <summary>
4412 When the template was compiled. 3403 Kind of connection
4413 </summary> 3404 </summary>
4414 <remarks>Use this date to determine if the template is old and needs to be recompiled.</remarks>
4415 </member> 3405 </member>
4416 <member name="P:HttpServer.Rendering.ITemplateInfo.Filename"> 3406 <member name="P:HttpServer.HttpResponse.Encoding">
4417 <summary> 3407 <summary>
4418 Template file name. 3408 Encoding to use when sending stuff to the client.
4419 </summary> 3409 </summary>
3410 <remarks>Default is UTF8</remarks>
4420 </member> 3411 </member>
4421 <member name="P:HttpServer.Rendering.ITemplateInfo.Template"> 3412 <member name="P:HttpServer.HttpResponse.KeepAlive">
4422 <summary> 3413 <summary>
4423 The actual template. 3414 Number of seconds to keep connection alive
4424 </summary> 3415 </summary>
3416 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks>
4425 </member> 3417 </member>
4426 <member name="T:HttpServer.Helpers.FormValidator"> 3418 <member name="P:HttpServer.HttpResponse.Status">
4427 <summary> 3419 <summary>
4428 Validator is used to validate all input items in a form. 3420 Status code that is sent to the client.
4429 </summary> 3421 </summary>
3422 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks>
4430 </member> 3423 </member>
4431 <member name="M:HttpServer.Helpers.FormValidator.#ctor(System.Collections.Specialized.NameValueCollection)"> 3424 <member name="P:HttpServer.HttpResponse.Reason">
4432 <summary> 3425 <summary>
4433 Initializes a new instance of the <see cref="T:HttpServer.Helpers.FormValidator"/> class. 3426 Information about why a specific status code was used.
4434 </summary> 3427 </summary>
4435 <param name="errors">collection to be filled with errors</param>
4436 </member> 3428 </member>
4437 <member name="M:HttpServer.Helpers.FormValidator.#ctor(System.Collections.Specialized.NameValueCollection,Fadd.Globalization.LanguageNode)"> 3429 <member name="P:HttpServer.HttpResponse.ContentLength">
4438 <summary> 3430 <summary>
4439 Initializes a new instance of the <see cref="T:HttpServer.Helpers.FormValidator"/> class. 3431 Size of the body. MUST be specified before sending the header,
3432 unless property Chunked is set to true.
4440 </summary> 3433 </summary>
4441 <param name="errors">collection to be filled with errors</param>
4442 <param name="modelLanguage">Translation used to translate the "name" parameters in all validation methods.</param>
4443 </member> 3434 </member>
4444 <member name="M:HttpServer.Helpers.FormValidator.#ctor(Fadd.Globalization.LanguageNode)"> 3435 <member name="P:HttpServer.HttpResponse.ContentType">
4445 <summary> 3436 <summary>
4446 Initializes a new instance of the <see cref="T:HttpServer.Helpers.FormValidator"/> class. 3437 Kind of content in the body
4447 </summary> 3438 </summary>
4448 <param name="modelLanguage">Translation used to translate the "name" parameters in all validation methods.</param> 3439 <remarks>Default type is "text/html"</remarks>
4449 </member> 3440 </member>
4450 <member name="M:HttpServer.Helpers.FormValidator.#ctor(HttpServer.IHttpInput)"> 3441 <member name="P:HttpServer.HttpResponse.HeadersSent">
4451 <summary> 3442 <summary>
4452 3443 Headers have been sent to the client-
4453 </summary> 3444 </summary>
4454 <param name="form">form that validation should be made on.</param> 3445 <remarks>You can not send any additional headers if they have already been sent.</remarks>
4455 </member> 3446 </member>
4456 <member name="M:HttpServer.Helpers.FormValidator.#ctor(HttpServer.IHttpInput,System.Collections.Specialized.NameValueCollection)"> 3447 <member name="P:HttpServer.HttpResponse.Sent">
4457 <summary> 3448 <summary>
4458 3449 The whole response have been sent.
4459 </summary> 3450 </summary>
4460 <param name="errors">collection that all validation errors are added to.</param>
4461 <param name="form">form that validation should be made on.</param>
4462 </member> 3451 </member>
4463 <member name="M:HttpServer.Helpers.FormValidator.#ctor(HttpServer.IHttpInput,System.Collections.Specialized.NameValueCollection,Fadd.Globalization.LanguageNode)"> 3452 <member name="P:HttpServer.HttpResponse.Cookies">
4464 <summary> 3453 <summary>
4465 3454 Cookies that should be created/changed.
4466 </summary> 3455 </summary>
4467 <param name="errors">collection that all validation errors are added to.</param>
4468 <param name="form">form that validation should be made on.</param>
4469 <param name="modelLanguage">Language category used to translate field names.</param>
4470 </member> 3456 </member>
4471 <member name="M:HttpServer.Helpers.FormValidator.SetForm(HttpServer.IHttpInput)"> 3457 <member name="T:HttpServer.HttpRequest">
4472 <summary> 3458 <summary>
4473 Switch to a new http input. 3459 Contains server side HTTP request information.
4474 </summary> 3460 </summary>
4475 <param name="form">form to use validation for now</param>
4476 </member> 3461 </member>
4477 <member name="M:HttpServer.Helpers.FormValidator.SetForm(HttpServer.IHttpInput,Fadd.Globalization.LanguageNode)"> 3462 <member name="F:HttpServer.HttpRequest.UriSplitters">
4478 <summary> 3463 <summary>
4479 Switch to a new http input. 3464 Chars used to split an URL path into multiple parts.
4480 </summary> 3465 </summary>
4481 <param name="form">form to use validation for now</param>
4482 <param name="modelLanguage">language for the validation</param>
4483 </member> 3466 </member>
4484 <member name="M:HttpServer.Helpers.FormValidator.Digits(System.String,System.Boolean)"> 3467 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)">
4485 <summary> 3468 <summary>
4486 Check if a value is digits only 3469 Assign a form.
4487 </summary> 3470 </summary>
4488 <param name="name">Field name.</param> 3471 <param name="form"></param>
4489 <param name="required">true if field is required (may not be empty)</param>
4490 <returns>string if validated, otherwise string.Empty</returns>
4491 </member> 3472 </member>
4492 <member name="M:HttpServer.Helpers.FormValidator.Digits(System.String,System.Boolean,System.String)"> 3473 <member name="M:HttpServer.HttpRequest.Clone">
4493 <summary> 3474 <summary>
4494 Check if a value is digits only 3475 Creates a new object that is a copy of the current instance.
4495 </summary> 3476 </summary>
4496 <param name="name">Field name.</param> 3477
4497 <param name="extraAllowedCharacters">extra characters that is allowed.</param> 3478 <returns>
4498 <param name="required">true if field is required (may not be empty)</param> 3479 A new object that is a copy of this instance.
4499 <returns>string if validated, otherwise string.Empty</returns> 3480 </returns>
3481 <filterpriority>2</filterpriority>
4500 </member> 3482 </member>
4501 <member name="M:HttpServer.Helpers.FormValidator.Integer(System.String)"> 3483 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
4502 <summary> 3484 <summary>
4503 Check whether the specified form item is an integer. 3485 Decode body into a form.
4504 </summary> 3486 </summary>
4505 <param name="name">Form parameter to validate</param> 3487 <param name="providers">A list with form decoders.</param>
4506 <returns>value if parameter is an int; 0 if not.</returns> 3488 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
3489 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
4507 </member> 3490 </member>
4508 <member name="M:HttpServer.Helpers.FormValidator.Integer(System.String,System.Boolean)"> 3491 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)">
4509 <summary> 3492 <summary>
4510 Check whether the specified form item is an integer. 3493 Cookies
4511 </summary> 3494 </summary>
4512 <param name="name">Form parameter to validate</param> 3495 <param name="cookies">the cookies</param>
4513 <param name="required">Paramater is required (adds an error if it's not specified)</param>
4514 <returns>value if parameter is an int; 0 if not.</returns>
4515 </member> 3496 </member>
4516 <member name="M:HttpServer.Helpers.FormValidator.Double(System.String,System.Boolean)"> 3497 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
4517 <summary> 3498 <summary>
4518 Check whether the specified value is a double. 3499 Create a response object.
4519 </summary> 3500 </summary>
4520 <param name="name">Name of the parameter</param> 3501 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
4521 <param name="required">Paramater is required (adds an error if it's not specified)</param>
4522 <returns>value if parameter is a double; 0 if not.</returns>
4523 </member> 3502 </member>
4524 <member name="M:HttpServer.Helpers.FormValidator.Currency(System.String,System.Boolean)"> 3503 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)">
4525 <summary> 3504 <summary>
4526 Check whether the specified value is a currency amount. 3505 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
4527 </summary> 3506 </summary>
4528 <param name="name">Name of the parameter</param> 3507 <param name="name">Name of the header, should not be URL encoded</param>
4529 <param name="required">Paramater is required (adds an error if it's not specified)</param> 3508 <param name="value">Value of the header, should not be URL encoded</param>
4530 <returns>value if parameter is a currency amount; 0 if not.</returns> 3509 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
4531 </member> 3510 </member>
4532 <member name="M:HttpServer.Helpers.FormValidator.Hex(System.String,System.Boolean)"> 3511 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
4533 <summary> 3512 <summary>
4534 Validates a string to hex 3513 Add bytes to the body
4535 </summary> 3514 </summary>
4536 <param name="name">The name of the field to validate</param> 3515 <param name="bytes">buffer to read bytes from</param>
4537 <param name="required">If the field must be set</param> 3516 <param name="offset">where to start read</param>
4538 <returns>The value if validated otherwise string.Empty</returns> 3517 <param name="length">number of bytes to read</param>
3518 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
3519 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
3520 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
3521 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
4539 </member> 3522 </member>
4540 <member name="M:HttpServer.Helpers.FormValidator.LettersOrDigits(System.String,System.Boolean)"> 3523 <member name="M:HttpServer.HttpRequest.Clear">
4541 <summary> 3524 <summary>
4542 Validate that a string only contains letters or digits. 3525 Clear everything in the request
4543 </summary> 3526 </summary>
4544 <param name="name">Name of form parameter to validate.</param>
4545 <param name="required">Value is required.</param>
4546 <returns>value if valid; otherwise string.EmptyLanguageNode.</returns>
4547 </member> 3527 </member>
4548 <member name="M:HttpServer.Helpers.FormValidator.LettersOrDigits(System.String)"> 3528 <member name="P:HttpServer.HttpRequest.Secure">
4549 <summary> 3529 <summary>
4550 Validate that a string only contains letters or digits. 3530 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure.
4551 </summary> 3531 </summary>
4552 <param name="name">Form parameter name.</param>
4553 <returns>vaue if found; otherwise string.Empty</returns>
4554 </member> 3532 </member>
4555 <member name="M:HttpServer.Helpers.FormValidator.LettersOrDigits(System.String,System.Boolean,System.String)"> 3533 <member name="P:HttpServer.HttpRequest.UriPath">
4556 <summary> 3534 <summary>
4557 Validate that a string only contains letters, digits or the specified characters 3535 Path and query (will be merged with the host header) and put in Uri
4558 </summary> 3536 </summary>
4559 <param name="name">Form parameter name.</param> 3537 <see cref="P:HttpServer.HttpRequest.Uri"/>
4560 <param name="required">may not be null or empty if true.</param>
4561 <param name="extraCharacters">any other allowed characters.</param>
4562 <returns>value if valid; otherwise string.Empty</returns>
4563 </member> 3538 </member>
4564 <member name="M:HttpServer.Helpers.FormValidator.Letters(System.String,System.Boolean)"> 3539 <member name="P:HttpServer.HttpRequest.BodyIsComplete">
4565 <summary> 3540 <summary>
4566 Validate that a string consists of only letters (including special letters) 3541 Gets whether the body is complete.
4567 </summary> 3542 </summary>
4568 <param name="name"></param>
4569 <param name="required">If a value must be passed</param>
4570 <returns></returns>
4571 </member> 3543 </member>
4572 <member name="M:HttpServer.Helpers.FormValidator.Letters(System.String,System.Boolean,System.String)"> 3544 <member name="P:HttpServer.HttpRequest.AcceptTypes">
4573 <summary> 3545 <summary>
4574 Validate that a string consists of only letters (a-z and A-Z) 3546 Gets kind of types accepted by the client.
4575 </summary> 3547 </summary>
4576 <param name="name"></param>
4577 <param name="required">If a value must be passed</param>
4578 <param name="extraCharacters">A string of extra character to test against, dont forget language specific characters and spaces if wished for</param>
4579 <returns></returns>
4580 </member> 3548 </member>
4581 <member name="M:HttpServer.Helpers.FormValidator.AlphaNumeric(System.String)"> 3549 <member name="P:HttpServer.HttpRequest.Body">
4582 <summary> 3550 <summary>
4583 Check whether the specified value is an integer. 3551 Gets or sets body stream.
4584 </summary> 3552 </summary>
4585 <param name="name">Name of the parameter</param>
4586 <returns>value if parameter contains valid characters; string.Empty if not.</returns>
4587 </member> 3553 </member>
4588 <member name="M:HttpServer.Helpers.FormValidator.AlphaNumeric(System.String,System.Boolean)"> 3554 <member name="P:HttpServer.HttpRequest.Connection">
4589 <summary> 3555 <summary>
4590 Check whether the specified value is an integer. 3556 Gets or sets kind of connection used for the session.
4591 </summary> 3557 </summary>
4592 <param name="name">Name of the parameter</param>
4593 <param name="required">Paramater is required (adds an error if it's not specified)</param>
4594 <returns>value if parameter contains valid characters; string.Empty if not.</returns>
4595 </member> 3558 </member>
4596 <member name="M:HttpServer.Helpers.FormValidator.Password(System.String,System.Boolean)"> 3559 <member name="P:HttpServer.HttpRequest.ContentLength">
4597 <summary> 3560 <summary>
4598 Validate that a string only contains letters or digits or any of the <see cref="F:Fadd.Validator.PasswordChars"/>. 3561 Gets or sets number of bytes in the body.
4599 </summary> 3562 </summary>
4600 <param name="name">Name of form parameter to validate.</param>
4601 <param name="required">Value is required.</param>
4602 <returns>value if valid; otherwise string.Empty.</returns>
4603 </member> 3563 </member>
4604 <member name="M:HttpServer.Helpers.FormValidator.Password(System.String)"> 3564 <member name="P:HttpServer.HttpRequest.Headers">
4605 <summary> 3565 <summary>
4606 Validate that a string only contains letters or digits or any of the <see cref="F:Fadd.Validator.PasswordChars"/>. 3566 Gets headers sent by the client.
4607 </summary> 3567 </summary>
4608 <param name="name">Form parameter name.</param>
4609 <returns>vaue if found; otherwise string.Empty</returns>
4610 </member> 3568 </member>
4611 <member name="M:HttpServer.Helpers.FormValidator.Required(System.String)"> 3569 <member name="P:HttpServer.HttpRequest.HttpVersion">
4612 <summary> 3570 <summary>
4613 Check's weather a parameter is null or not. 3571 Gets or sets version of HTTP protocol that's used.
4614 </summary> 3572 </summary>
4615 <param name="name">Parameter in form</param> 3573 <remarks>
4616 <returns>true if value is not null; otherwise false.</returns> 3574 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
3575 </remarks>
3576 <seealso cref="T:HttpServer.HttpHelper"/>
4617 </member> 3577 </member>
4618 <member name="M:HttpServer.Helpers.FormValidator.String(System.String,System.Boolean)"> 3578 <member name="P:HttpServer.HttpRequest.Method">
4619 <summary> 3579 <summary>
4620 Validate a string value 3580 Gets or sets requested method.
4621 </summary> 3581 </summary>
4622 <param name="name">Name of form parameter to validate.</param> 3582 <value></value>
4623 <param name="required">Value is required.</param> 3583 <remarks>
4624 <returns>value if valid; otherwise string.Empty.</returns> 3584 Will always be in upper case.
3585 </remarks>
3586 <see cref="!:HttpServer.Method"/>
4625 </member> 3587 </member>
4626 <member name="M:HttpServer.Helpers.FormValidator.String(System.String)"> 3588 <member name="P:HttpServer.HttpRequest.QueryString">
4627 <summary> 3589 <summary>
4628 Validate a string parameter in the form 3590 Gets variables sent in the query string
4629 </summary> 3591 </summary>
4630 <param name="name">Form parameter name.</param>
4631 <returns>vaue if found; otherwise string.Empty</returns>
4632 </member> 3592 </member>
4633 <member name="M:HttpServer.Helpers.FormValidator.Email(System.String,System.Boolean)"> 3593 <member name="P:HttpServer.HttpRequest.Uri">
4634 <summary> 3594 <summary>
4635 validates email address using a regexp. 3595 Gets or sets requested URI.
4636 </summary> 3596 </summary>
4637 <param name="name">field name</param>
4638 <param name="required">field is required (may not be null or empty).</param>
4639 <returns>value if validation is ok; otherwise string.Empty.</returns>
4640 </member> 3597 </member>
4641 <member name="M:HttpServer.Helpers.FormValidator.Char(System.String,System.Boolean)"> 3598 <member name="P:HttpServer.HttpRequest.UriParts">
4642 <summary> 3599 <summary>
4643 Check whether the specified value is an character. 3600 Uri absolute path splitted into parts.
4644 </summary> 3601 </summary>
4645 <param name="name">Name of the parameter</param> 3602 <example>
4646 <param name="required">Paramater is required (adds an error if it's not specified)</param> 3603 // uri is: http://gauffin.com/code/tiny/
4647 <returns>value if parameter is an int; char.MinValue if not.</returns> 3604 Console.WriteLine(request.UriParts[0]); // result: code
3605 Console.WriteLine(request.UriParts[1]); // result: tiny
3606 </example>
3607 <remarks>
3608 If you're using controllers than the first part is controller name,
3609 the second part is method name and the third part is Id property.
3610 </remarks>
3611 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
4648 </member> 3612 </member>
4649 <member name="M:HttpServer.Helpers.FormValidator.Char(System.String)"> 3613 <member name="P:HttpServer.HttpRequest.Param">
4650 <summary> 3614 <summary>
4651 Check whether the specified value is an character. 3615 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>.
4652 </summary> 3616 </summary>
4653 <param name="name">Name of the parameter</param>
4654 <returns>value if parameter is an int; char.MinValue if not.</returns>
4655 </member> 3617 </member>
4656 <member name="M:HttpServer.Helpers.FormValidator.Boolean(System.String,System.Boolean)"> 3618 <member name="P:HttpServer.HttpRequest.Form">
4657 <summary> 3619 <summary>
4658 Checks whether a field is true (can also be in native language). 3620 Gets form parameters.
4659 </summary> 3621 </summary>
4660 <param name="name">field name</param>
4661 <param name="required">field is required (may not be null or empty).</param>
4662 <returns>true if value is true; false if value is false or if validation failed.</returns>
4663 <remarks>Check validation errors to see if error ocurred.</remarks>
4664 </member> 3622 </member>
4665 <member name="M:HttpServer.Helpers.FormValidator.Boolean(System.String)"> 3623 <member name="P:HttpServer.HttpRequest.IsAjax">
4666 <summary> 3624 <summary>
4667 Checks whether a field is true (can also be in native language). 3625 Gets whether the request was made by Ajax (Asynchronous JavaScript)
4668 </summary> 3626 </summary>
4669 <param name="name">field name</param>
4670 <returns>true if value is true; false if value is false or if validation failed.</returns>
4671 <remarks>Check validation errors to see if error ocurred.</remarks>
4672 </member> 3627 </member>
4673 <member name="T:HttpServer.Rendering.ResourceManager"> 3628 <member name="P:HttpServer.HttpRequest.Cookies">
4674 <summary> 3629 <summary>
4675 Class to handle loading of resource files 3630 Gets cookies that was sent with the request.
4676 </summary> 3631 </summary>
4677 </member> 3632 </member>
4678 <member name="F:HttpServer.Rendering.ResourceManager._loadedResources"> 3633 <member name="T:HttpServer.Helpers.ResourceManager">
4679 <summary><![CDATA[ 3634 <summary>Class to handle loading of resource files</summary>
4680 Maps uri's to resources, Dictionary<uri, resource>
4681 ]]></summary>
4682 </member> 3635 </member>
4683 <member name="M:HttpServer.Rendering.ResourceManager.ParseName(System.String@,System.String@)"> 3636 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
4684 <summary> 3637 <summary>
4685 Parses a filename and sets it to the extensionless name in lowercase. The extension is cut out without the dot. 3638 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
4686 </summary> 3639 </summary>
4687 <param name="filename"></param>
4688 <param name="extension"></param>
4689 <usage>
4690 string ext;
4691 string filename = "/uSeR/teSt.haMl";
4692 ParseName(ref filename, out ext);
4693 Console.WriteLine("File: " + filename);
4694 Console.WriteLine("Ext: " + ext);
4695 -> user/test
4696 -> haml
4697 </usage>
4698 </member> 3640 </member>
4699 <member name="M:HttpServer.Rendering.ResourceManager.AddResource(System.String,HttpServer.Rendering.ResourceInfo)"> 3641 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
4700 <summary> 3642 <summary>
4701 Add a resource to a specified uri without extension, ie user/test 3643 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
4702 </summary> 3644 </summary>
4703 <param name="uri">The uri to add the resource to</param> 3645 <param name="writer">logger.</param>
4704 <param name="info">The <see cref="T:HttpServer.Rendering.ResourceInfo"/> instance describing the resource</param>
4705 </member> 3646 </member>
4706 <member name="M:HttpServer.Rendering.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)"> 3647 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
4707 <summary> 3648 <summary>
4708 Loads resources from a namespace in the given assembly to an uri 3649 Loads resources from a namespace in the given assembly to an URI
4709 </summary> 3650 </summary>
4710 <param name="toUri">The uri to map the resources to</param> 3651 <param name="toUri">The URI to map the resources to</param>
4711 <param name="fromAssembly">The assembly in which the resources reside</param> 3652 <param name="fromAssembly">The assembly in which the resources reside</param>
4712 <param name="fromNamespace">The namespace from which to load the resources</param> 3653 <param name="fromNamespace">The namespace from which to load the resources</param>
4713 <usage> 3654 <usage>
3655 <code>
4714 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 3656 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
4715 3657 </code>
4716 will make ie the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/ 3658 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
4717 </usage> 3659 </usage>
3660 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3661 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
4718 </member> 3662 </member>
4719 <member name="M:HttpServer.Rendering.ResourceManager.GetResourceStream(System.String)"> 3663 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
4720 <summary> 3664 <summary>
4721 Retrieves a stream for the specified resource path if loaded otherwise null 3665 Retrieves a stream for the specified resource path if loaded otherwise null
4722 </summary> 3666 </summary>
4723 <param name="path">Path to the resource to retrieve a stream for</param> 3667 <param name="path">Path to the resource to retrieve a stream for</param>
4724 <returns>A stream or null if the resource couldn't be found</returns> 3668 <returns>A stream or null if the resource couldn't be found</returns>
4725 </member> 3669 </member>
4726 <member name="M:HttpServer.Rendering.ResourceManager.GetFiles(System.String)"> 3670 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
4727 <summary> 3671 <summary>
4728 Fetch all files from the resource that matches the specified arguments. 3672 Fetch all files from the resource that matches the specified arguments.
4729 </summary> 3673 </summary>
@@ -4731,8 +3675,9 @@
4731 <returns> 3675 <returns>
4732 a list of files if found; or an empty array if no files are found. 3676 a list of files if found; or an empty array if no files are found.
4733 </returns> 3677 </returns>
3678 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
4734 </member> 3679 </member>
4735 <member name="M:HttpServer.Rendering.ResourceManager.GetFiles(System.String,System.String)"> 3680 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
4736 <summary> 3681 <summary>
4737 Fetch all files from the resource that matches the specified arguments. 3682 Fetch all files from the resource that matches the specified arguments.
4738 </summary> 3683 </summary>
@@ -4742,836 +3687,103 @@
4742 a list of files if found; or an empty array if no files are found. 3687 a list of files if found; or an empty array if no files are found.
4743 </returns> 3688 </returns>
4744 </member> 3689 </member>
4745 <member name="M:HttpServer.Rendering.ResourceManager.ContainsResource(System.String)"> 3690 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
4746 <summary> 3691 <summary>
4747 Returns whether or not the loader has an instance of the file requested 3692 Returns whether or not the loader has an instance of the file requested
4748 </summary> 3693 </summary>
4749 <param name="filename">The name of the template/file</param> 3694 <param name="filename">The name of the template/file</param>
4750 <returns>True if the loader can provide the file</returns> 3695 <returns>True if the loader can provide the file</returns>
4751 </member> 3696 </member>
4752 <member name="T:HttpServer.ExceptionHandler"> 3697 <member name="T:HttpServer.Helpers.JSHelper">
4753 <summary>
4754 We dont want to let the server to die due to exceptions thrown in worker threads.
4755 therefore we use this delegate to give you a change to handle uncaught exceptions.
4756 </summary>
4757 <param name="source">Class that the exception was thrown in.</param>
4758 <param name="exception">Exception</param>
4759 <remarks>
4760 Server will throw a InternalServerException in release version if you dont
4761 handle this delegate.
4762 </remarks>
4763 </member>
4764 <member name="T:HttpServer.Controllers.AuthValidatorAttribute">
4765 <summary>
4766 Method marked with this attribute determines if authentication is required.
4767 </summary>
4768 <seealso cref="T:HttpServer.HttpModules.ControllerModule"/>
4769 <seealso cref="T:HttpServer.HttpServer"/>
4770 <seealso cref="T:HttpServer.Controllers.AuthRequiredAttribute"/>
4771 <seealso cref="T:HttpServer.HttpModules.WebSiteModule"/>
4772 <remarks>
4773 <para>The method should take one parameter (int level), return a bool and be protected/private.</para>
4774 <para>You should throw UnauthorizedException if you are using HTTP authentication.</para>
4775 </remarks>
4776 <example>
4777 <![CDATA[
4778 public enum UserLevel
4779 {
4780 Guest,
4781 User,
4782 Admin,
4783 SuperAdmin
4784 }
4785 public class UserController : RequestController
4786 {
4787 [AuthRequired(UserLevel.User)]
4788 public string View()
4789 {
4790 return "Can also be viewed by users";
4791 }
4792
4793 [AuthValidatorAttribute]
4794 public bool ValidateUser(int level)
4795 {
4796 (User)user = Session["user"];
4797 return user != null && user.Status >= level;
4798 }
4799 }
4800 ]]>
4801 </example>
4802 </member>
4803 <member name="T:HttpServer.RequestCookies">
4804 <summary>
4805 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
4806 The framework might switch class in the future and we dont want to have to replace all instances
4807 </summary>
4808 </member>
4809 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
4810 <summary>
4811 Let's copy all the cookies.
4812 </summary>
4813 <param name="cookies">value from cookie header.</param>
4814 </member>
4815 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
4816 <summary>
4817 Adds a cookie in the collection.
4818 </summary>
4819 <param name="cookie">cookie to add</param>
4820 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
4821 </member>
4822 <member name="M:HttpServer.RequestCookies.GetEnumerator">
4823 <summary>
4824 Gets a collection enumerator on the cookie list.
4825 </summary>
4826 <returns>collection enumerator</returns>
4827 </member>
4828 <member name="M:HttpServer.RequestCookies.Clear">
4829 <summary>
4830 Remove all cookies.
4831 </summary>
4832 </member>
4833 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
4834 <summary>
4835 Returns an enumerator that iterates through the collection.
4836 </summary>
4837
4838 <returns>
4839 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
4840 </returns>
4841 <filterpriority>1</filterpriority>
4842 </member>
4843 <member name="P:HttpServer.RequestCookies.Count">
4844 <summary>
4845 Gets the count of cookies in the collection.
4846 </summary>
4847 </member>
4848 <member name="P:HttpServer.RequestCookies.Item(System.String)">
4849 <summary>
4850 Gets the cookie of a given identifier (null if not existing).
4851 </summary>
4852 </member>
4853 <member name="T:HttpServer.RealmHandler">
4854 <summary> 3698 <summary>
4855 Delegate used to find a realm/domain. 3699 Will contain helper functions for javascript.
4856 </summary> 3700 </summary>
4857 <param name="domain"></param>
4858 <returns></returns>
4859 <remarks>
4860 Realms are used during HTTP Authentication
4861 </remarks>
4862 <seealso cref="T:HttpServer.Authentication.AuthModule"/>
4863 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
4864 </member> 3701 </member>
4865 <member name="T:HttpServer.HttpServer"> 3702 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])">
4866 <summary> 3703 <summary>
4867 A complete HTTP server, you need to add a module to it to be able to handle incoming requests. 3704 Requests a url through ajax
4868 </summary> 3705 </summary>
3706 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
3707 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
3708 <returns>a link tag</returns>
3709 <remarks>onclick attribute is used by this method.</remarks>
4869 <example> 3710 <example>
4870 <code> 3711 <code>
4871 // this small example will add two web site modules, thus handling 3712 // plain text
4872 // two different sites. In reality you should add Controller modules or something 3713 JSHelper.AjaxRequest("'/user/show/1'");
4873 // two the website modules to be able to handle different requests.
4874 HttpServer server = new HttpServer();
4875 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
4876 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
4877
4878 // start regular http
4879 server.Start(IPAddress.Any, 80);
4880
4881 // start https
4882 server.Start(IPAddress.Any, 443, myCertificate);
4883 </code>
4884 </example>
4885 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
4886 <seealso cref="T:HttpServer.HttpModules.ControllerModule"/>
4887 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
4888 <seealso cref="T:HttpServer.HttpListener"/>
4889 </member>
4890 <member name="M:HttpServer.HttpServer.#ctor">
4891 <summary>
4892 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4893 </summary>
4894 </member>
4895 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
4896 <summary>
4897 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4898 </summary>
4899 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
4900 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
4901 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
4902 </member>
4903 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
4904 <summary>
4905 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4906 </summary>
4907 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
4908 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
4909 </member>
4910 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
4911 <summary>
4912 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4913 </summary>
4914 <param name="logWriter">The log writer.</param>
4915 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4916 </member>
4917 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
4918 <summary>
4919 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4920 </summary>
4921 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
4922 <param name="logWriter">The log writer.</param>
4923 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
4924 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
4925 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4926 </member>
4927 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
4928 <summary>
4929 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4930 </summary>
4931 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
4932 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
4933 <param name="logWriter">The log writer.</param>
4934 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
4935 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
4936 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4937 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
4938 </member>
4939 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.RedirectRule)">
4940 <summary>
4941 Adds the specified rule.
4942 </summary>
4943 <param name="rule">The rule.</param>
4944 </member>
4945 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
4946 <summary>
4947 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
4948 </summary>
4949 <param name="module">mode to add</param>
4950 </member>
4951 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
4952 <summary>
4953 Decodes the request body.
4954 </summary>
4955 <param name="request">The request.</param>
4956 </member>
4957 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
4958 <summary>
4959 Generate a HTTP error page (that will be added to the response body).
4960 response status code is also set.
4961 </summary>
4962 <param name="response">Response that the page will be generated in.</param>
4963 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
4964 <param name="body">response body contents.</param>
4965 </member>
4966 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
4967 <summary>
4968 Generate a HTTP error page (that will be added to the response body).
4969 response status code is also set.
4970 </summary>
4971 <param name="response">Response that the page will be generated in.</param>
4972 <param name="err">exception.</param>
4973 </member>
4974 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
4975 <summary>
4976 Realms are used by the <see cref="T:HttpServer.Authentication.AuthModule"/>s.
4977 </summary>
4978 <param name="request">HTTP request</param>
4979 <returns>domain/realm.</returns>
4980 </member>
4981 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
4982 <summary>
4983 Process an incoming request.
4984 </summary>
4985 <param name="context">connection to client</param>
4986 <param name="request">request information</param>
4987 <param name="response">response that should be filled</param>
4988 <param name="session">session information</param>
4989 </member>
4990 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
4991 <summary>
4992 Can be overloaded to implement stuff when a client have been connected.
4993 </summary>
4994 <remarks>
4995 Default implementation does nothing.
4996 </remarks>
4997 <param name="client">client that disconnected</param>
4998 <param name="error">disconnect reason</param>
4999 </member>
5000 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
5001 <summary>
5002 Handle authentication
5003 </summary>
5004 <param name="request"></param>
5005 <param name="response"></param>
5006 <param name="session"></param>
5007 <returns>true if request can be handled; false if not.</returns>
5008 </member>
5009 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
5010 <summary>
5011 Will request authentication.
5012 </summary>
5013 <remarks>
5014 Sends respond to client, nothing else can be done with the response after this.
5015 </remarks>
5016 <param name="mod"></param>
5017 <param name="request"></param>
5018 <param name="response"></param>
5019 </member>
5020 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
5021 <summary>
5022 Start the web server using regular HTTP.
5023 </summary>
5024 <param name="address">IP Address to listen on, use IpAddress.Any to accept connections on all ip addresses/network cards.</param>
5025 <param name="port">Port to listen on. 80 can be a good idea =)</param>
5026 </member>
5027 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
5028 <summary>
5029 Accept secure connections.
5030 </summary>
5031 <param name="address">IP Address to listen on, use IpAddress.Any to accept connections on all ipaddresses/network cards.</param>
5032 <param name="port">Port to listen on. 80 can be a good idea =)</param>
5033 <param name="certificate">Certificate to use</param>
5034 </member>
5035 <member name="M:HttpServer.HttpServer.Stop">
5036 <summary>
5037 shut down the server and listeners
5038 </summary>
5039 </member>
5040 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
5041 <summary>
5042 write an entry to the log file
5043 </summary>
5044 <param name="prio">importance of the message</param>
5045 <param name="message">log message</param>
5046 </member>
5047 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
5048 <summary>
5049 write an entry to the log file
5050 </summary>
5051 <param name="source">object that wrote the message</param>
5052 <param name="prio">importance of the message</param>
5053 <param name="message">log message</param>
5054 </member>
5055 <member name="P:HttpServer.HttpServer.AuthenticationModules">
5056 <summary>
5057 Modules used for authentication. The module that is is added first is used as
5058 the default authentication module.
5059 </summary>
5060 <remarks>Use the corresponding property
5061 in the WebSiteModule if you are using multiple websites.</remarks>
5062 </member>
5063 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
5064 <summary>
5065 Form decoder providers are used to decode request body (which normally contains form data).
5066 </summary>
5067 </member>
5068 <member name="P:HttpServer.HttpServer.ServerName">
5069 <summary>
5070 Server name sent in HTTP responses.
5071 </summary>
5072 <remarks>
5073 Do NOT include version in name, since it makes it
5074 easier for hackers.
5075 </remarks>
5076 </member>
5077 <member name="P:HttpServer.HttpServer.SessionCookieName">
5078 <summary>
5079 Name of cookie where session id is stored.
5080 </summary>
5081 </member>
5082 <member name="P:HttpServer.HttpServer.LogWriter">
5083 <summary>
5084 Specified where logging should go.
5085 </summary>
5086 <seealso cref="T:HttpServer.NullLogWriter"/>
5087 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
5088 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
5089 </member>
5090 <member name="P:HttpServer.HttpServer.BackLog">
5091 <summary>
5092 Number of connections that can wait to be accepted by the server.
5093 </summary>
5094 <remarks>Default is 10.</remarks>
5095 </member>
5096 <member name="E:HttpServer.HttpServer.RealmWanted">
5097 <summary>
5098 Realms are used during HTTP authentication.
5099 Default realm is same as server name.
5100 </summary>
5101 </member>
5102 <member name="E:HttpServer.HttpServer.ExceptionThrown">
5103 <summary>
5104 Let's to receive unhandled exceptions from the threads.
5105 </summary>
5106 <remarks>
5107 Exceptions will be thrown during debug mode if this event is not used,
5108 exceptions will be printed to console and suppressed during release mode.
5109 </remarks>
5110 </member>
5111 <member name="T:HttpServer.Exceptions.UnauthorizedException">
5112 <summary>
5113 The request requires user authentication. The response MUST include a
5114 WWW-Authenticate header field (section 14.47) containing a challenge
5115 applicable to the requested resource.
5116
5117 The client MAY repeat the request with a suitable Authorization header
5118 field (section 14.8). If the request already included Authorization
5119 credentials, then the 401 response indicates that authorization has been
5120 refused for those credentials. If the 401 response contains the same challenge
5121 as the prior response, and the user agent has already attempted authentication
5122 at least once, then the user SHOULD be presented the entity that was given in the response,
5123 since that entity might include relevant diagnostic information.
5124
5125 HTTP access authentication is explained in rfc2617:
5126 http://www.ietf.org/rfc/rfc2617.txt
5127 3714
5128 (description is taken from 3715 // ajax request using this.href
5129 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2) 3716 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
5130 </summary>
5131 </member>
5132 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
5133 <summary>
5134 Create a new unauhtorized exception.
5135 </summary>
5136 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
5137 </member>
5138 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
5139 <summary>
5140 Create a new unauhtorized exception.
5141 </summary>
5142 <param name="message">reason to why the request was unauthorized.</param>
5143 <param name="inner">inner exception</param>
5144 </member>
5145 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
5146 <summary>
5147 Create a new unauhtorized exception.
5148 </summary>
5149 <param name="message">reason to why the request was unauthorized.</param>
5150 </member>
5151 <member name="T:HttpServer.Rendering.Tiny.TinyGenerator">
5152 <summary>
5153 Generates C# rendering object using ASP similiar tags in the HTML code.
5154 </summary>
5155 </member>
5156 <member name="M:HttpServer.Rendering.Tiny.TinyGenerator.GenerateCode(System.IO.TextWriter)">
5157 <summary>
5158 Generate C# code from the template.
5159 </summary>
5160 <param name="writer">A textwriter that the generated code will be written to.</param>
5161 <exception cref="T:System.InvalidOperationException">If the template have not been parsed first.</exception>
5162 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If template is incorrect</exception>
5163 </member>
5164 <member name="M:HttpServer.Rendering.Tiny.TinyGenerator.Parse(System.String)">
5165 <summary>
5166 Parse a file and convert into to our own template object code.
5167 </summary>
5168 <param name="fullPath">Path and filename to a template</param>
5169 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If something is incorrect in the template.</exception>
5170 <exception cref="T:System.IO.FileNotFoundException"></exception>
5171 <exception cref="T:System.IO.DirectoryNotFoundException"></exception>
5172 <exception cref="T:System.UnauthorizedAccessException"></exception>
5173 <exception cref="T:System.IO.PathTooLongException"></exception>
5174 <exception cref="T:System.NotSupportedException"></exception>
5175 </member>
5176 <member name="M:HttpServer.Rendering.Tiny.TinyGenerator.Parse(System.IO.TextReader)">
5177 <summary>
5178 Parse a file and convert into to our own template object code.
5179 </summary>
5180 <param name="reader">A textreader containing our template</param>
5181 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If something is incorrect in the template.</exception>
5182 </member>
5183 <member name="T:HttpServer.Rendering.TemplateManager">
5184 <summary>
5185 Purpose if this class is to take template objects and keep them in
5186 memory. It will also take a filename and the code generator to use
5187 if when the template have been changed on disk.
5188 </summary>
5189 </member>
5190 <member name="M:HttpServer.Rendering.TemplateManager.#ctor(HttpServer.Rendering.ITemplateLoader[])">
5191 <summary>
5192 Initializes a new instance of the <see cref="T:HttpServer.Rendering.TemplateManager"/> class.
5193 </summary>
5194 <param name="loaders">
5195 Template loaders used to load templates from any source.
5196 The loaders will be invoked in the order they are given, that is the first loader will always be asked to give a template
5197 first.
5198 </param>
5199 </member>
5200 <member name="M:HttpServer.Rendering.TemplateManager.#ctor">
5201 <summary>
5202 Initializes a new instance of the <see cref="T:HttpServer.Rendering.TemplateManager"/> class.
5203 </summary>
5204 <remarks>Uses the file template loader.</remarks>
5205 </member>
5206 <member name="M:HttpServer.Rendering.TemplateManager.Add(System.String,HttpServer.Rendering.ITemplateGenerator)">
5207 <summary>
5208 Add a template generator
5209 </summary>
5210 <param name="fileExtension">File extension without the dot.</param>
5211 <param name="generator">Generator to handle the extension</param>
5212 <exception cref="T:System.InvalidOperationException">If the generator already exists.</exception>
5213 <exception cref="T:System.ArgumentException">If file extension is incorrect</exception>
5214 <exception cref="T:System.ArgumentNullException">If generator is not specified.</exception>
5215 <example>
5216 <code>
5217 cache.Add("haml", new HamlGenerator());
5218 </code> 3717 </code>
5219 </example> 3718 </example>
5220 </member> 3719 </member>
5221 <member name="M:HttpServer.Rendering.TemplateManager.AddType(System.Type)"> 3720 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])">
5222 <summary>
5223 This type should be included, so it may be called from the scripts (name space and assembly).
5224 </summary>
5225 <param name="type"></param>
5226 </member>
5227 <member name="M:HttpServer.Rendering.TemplateManager.CheckTemplate(HttpServer.Rendering.ITemplateInfo)">
5228 <summary>
5229 Checks the template.
5230 </summary>
5231 <param name="info">Template information, filename must be set.</param>
5232 <returns>true if template exists and have been compiled.</returns>
5233 </member>
5234 <member name="M:HttpServer.Rendering.TemplateManager.Compile(System.String,System.String,HttpServer.Rendering.TemplateArguments,System.String)">
5235 <summary>
5236 Compiles the specified code.
5237 </summary>
5238 <param name="fileName">Name of template.</param>
5239 <param name="code">c# code generated from a template.</param>
5240 <param name="arguments">Arguments as in name, value, name, value, name, value</param>
5241 <param name="templateId">
5242 An id to specify the exact instance of a template. Made from joining the 'TemplateClass' with the hashcode of the filename
5243 and the hashcode of the supplied arguments
5244 </param>
5245 <returns>Template</returns>
5246 <exception cref="T:HttpServer.Rendering.TemplateException">If compilation fails</exception>
5247 </member>
5248 <member name="M:HttpServer.Rendering.TemplateManager.GenerateCode(System.String@)">
5249 <summary>
5250 Will generate code from the template.
5251 Next step is to compile the code.
5252 </summary>
5253 <param name="path">Path and filename to template.</param>
5254 <exception cref="T:System.ArgumentException"></exception>
5255 <exception cref="T:System.InvalidOperationException">If no template generator exists for the specified extension.</exception>
5256 <exception cref="T:HttpServer.Rendering.CodeGeneratorException">If parsing/compiling fails</exception>
5257 <see cref="M:HttpServer.Rendering.TemplateManager.Render(System.String,HttpServer.Rendering.TemplateArguments)"/>
5258 </member>
5259 <member name="M:HttpServer.Rendering.TemplateManager.GetGeneratorForWildCard(System.String@)">
5260 <summary>
5261 Find a template using wildcards in filename.
5262 </summary>
5263 <param name="filePath">Full path (including wildcards in filename) to where we should find a template.</param>
5264 <returns>First found generator if an extension was matched; otherwise null.</returns>
5265 <remarks>method is not thread safe</remarks>
5266 </member>
5267 <member name="M:HttpServer.Rendering.TemplateManager.RenderPartial(System.String,HttpServer.Rendering.TemplateArguments,HttpServer.Rendering.TemplateArguments)">
5268 <summary>
5269 Render a partial
5270 </summary>
5271 <param name="filename">Path and filename</param>
5272 <param name="args">Variables used in the template. Should be specified as "name, value, name, value" where name is variable name and value is variable contents.</param>
5273 <param name="arguments">Arguments passed from parent template</param>
5274 <returns></returns>
5275 <exception cref="T:System.InvalidOperationException"></exception>
5276 <exception cref="T:HttpServer.Rendering.TemplateException"></exception>
5277 <exception cref="T:System.ArgumentException"></exception>
5278 </member>
5279 <member name="M:HttpServer.Rendering.TemplateManager.Render(System.String,HttpServer.Rendering.TemplateArguments)">
5280 <summary> 3721 <summary>
5281 Generate HTML from a template. 3722 Ajax requests that updates an element with
3723 the fetched content
5282 </summary> 3724 </summary>
5283 <param name="filename">Path and filename</param> 3725 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5284 <param name="args">Variables used in the template. Should be specified as "name, value, name, value" where name is variable name and value is variable contents.</param> 3726 <param name="targetId">element to update</param>
5285 <exception cref="T:System.InvalidOperationException"></exception> 3727 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
5286 <exception cref="T:Fadd.CompilerException"></exception> 3728 <returns>A link tag.</returns>
5287 <exception cref="T:System.ArgumentException"></exception>
5288 <example> 3729 <example>
5289 <code> 3730 <code>
5290 string html = cache.Generate("views\\users\\view.haml", new TemplateArguments("user", dbUser, "isAdmin", dbUser.IsAdmin), null); 3731 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
5291 </code> 3732 </code>
5292 </example> 3733 </example>
5293 </member> 3734 </member>
5294 <member name="T:HttpServer.Rendering.TemplateManager.TemplateInfoImp"> 3735 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])">
5295 <summary>
5296 Keeps information about templates, so we know when to regenerate it.
5297 </summary>
5298 </member>
5299 <member name="T:HttpServer.Rendering.ResourceInfo">
5300 <summary>
5301 Container to bind resource names to assemblies
5302 </summary>
5303 </member>
5304 <member name="M:HttpServer.Rendering.ResourceInfo.#ctor(System.String,System.Reflection.Assembly)">
5305 <summary>
5306 Instantiates an instance of <see cref="T:HttpServer.Rendering.ResourceInfo"/>
5307 </summary>
5308 <param name="fullname">The full name/path of the resource</param>
5309 <param name="assembly">The assembly the resource exists in</param>
5310 </member>
5311 <member name="M:HttpServer.Rendering.ResourceInfo.GetStream">
5312 <summary>
5313 Retrieves a stream to the resouce
5314 </summary>
5315 <returns>Null if the resource couldn't be located somehow</returns>
5316 </member>
5317 <member name="P:HttpServer.Rendering.ResourceInfo.Assembly">
5318 <summary>
5319 Retrieves the assembly the resource resides in
5320 </summary>
5321 </member>
5322 <member name="P:HttpServer.Rendering.ResourceInfo.Name">
5323 <summary>
5324 Retrieves the full name/path of the assembly
5325 </summary>
5326 </member>
5327 <member name="P:HttpServer.Rendering.ResourceInfo.Extension">
5328 <summary>
5329 Retrieves the extension of the resource
5330 </summary>
5331 </member>
5332 <member name="T:HttpServer.Rendering.FileTemplateLoader">
5333 <summary>
5334 This template loader loads all templates from a folder on the hard drive.
5335 </summary>
5336 </member>
5337 <member name="M:HttpServer.Rendering.FileTemplateLoader.#ctor(System.String)">
5338 <summary>
5339 Initializes a new instance of the <see cref="T:HttpServer.Rendering.FileTemplateLoader"/> class.
5340 </summary>
5341 <param name="pathPrefix">A prefix that is prepended to all requested files.</param>
5342 <seealso cref="P:HttpServer.Rendering.FileTemplateLoader.PathPrefix"/>
5343 </member>
5344 <member name="M:HttpServer.Rendering.FileTemplateLoader.#ctor">
5345 <summary>
5346 Initializes a new instance of the <see cref="T:HttpServer.Rendering.FileTemplateLoader"/> class.
5347 </summary>
5348 </member>
5349 <member name="M:HttpServer.Rendering.FileTemplateLoader.LoadTemplate(System.String)">
5350 <summary>
5351 Load a template into a <see cref="T:System.IO.TextReader"/> and return it.
5352 </summary>
5353 <param name="path">Relative path (and filename) to template.</param>
5354 <returns>
5355 a <see cref="T:System.IO.TextReader"/> if file was found; otherwise null.
5356 </returns>
5357 </member>
5358 <member name="M:HttpServer.Rendering.FileTemplateLoader.GetFiles(System.String,System.String)">
5359 <summary>
5360 Fetch all files from the resource that matches the specified arguments.
5361 </summary>
5362 <param name="path">Where the file should reside.</param>
5363 <param name="filename">Files to check</param>
5364 <returns>
5365 a list of files if found; or an empty array if no files are found.
5366 </returns>
5367 </member>
5368 <member name="M:HttpServer.Rendering.FileTemplateLoader.HasTemplate(System.String)">
5369 <summary>
5370 Returns whether or not the loader has an instance of the file requested
5371 </summary>
5372 <param name="filename">The name of the template/file</param>
5373 <returns>True if the loader can provide the file</returns>
5374 </member>
5375 <member name="M:HttpServer.Rendering.FileTemplateLoader.CheckTemplate(HttpServer.Rendering.ITemplateInfo)">
5376 <summary>
5377 Check's whether a template should be reloaded or not.
5378 </summary>
5379 <param name="info">template information</param>
5380 <returns>
5381 true if template is OK; false if it do not exist or are old.
5382 </returns>
5383 </member>
5384 <member name="P:HttpServer.Rendering.FileTemplateLoader.PathPrefix">
5385 <summary> 3736 <summary>
5386 A prefix that is prepended to all requested files. 3737 Opens contents in a dialog window.
5387 </summary> 3738 </summary>
5388 <example> 3739 <param name="url">url to contents of dialog</param>
5389 <code> 3740 <param name="title">link title</param>
5390 <![CDATA[ 3741 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
5391 // will look after template in Environment.CurrentDirectory + "views\\<ControllerName>\\templateName.*"
5392 mgr.PathPrefix = "views\\";
5393 ]]>
5394 </code>
5395 </example>
5396 <remarks>PathPrefix may not be null, only string.Empty
5397 </remarks>
5398 </member> 3742 </member>
5399 <member name="T:HttpServer.Helpers.XmlHelper"> 3743 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog">
5400 <summary> 3744 <summary>
5401 Helpers to make XML handling easier 3745 Close a javascript dialog window/div.
5402 </summary> 3746 </summary>
3747 <returns>javascript for closing a dialog.</returns>
3748 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
5403 </member> 3749 </member>
5404 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)"> 3750 <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
5405 <summary> 3751 <summary>
5406 Serializes object to XML. 3752 This provider is used to let us implement any type of form decoding we want without
3753 having to rewrite anything else in the server.
5407 </summary> 3754 </summary>
5408 <param name="value">object to serialize.</param>
5409 <returns>xml</returns>
5410 <remarks>
5411 Removes namespaces and adds intendation
5412 </remarks>
5413 </member> 3755 </member>
5414 <member name="T:HttpServer.IHttpResponse"> 3756 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
5415 <summary> 3757 <summary>
5416 Response that is sent back to the web browser / client.
5417
5418 A response can be sent if different ways. The easiest one is
5419 to just fill the Body stream with content, everything else
5420 will then be taken care of by the framework. The default content-type
5421 is text/html, you should change it if you send anything else.
5422 3758
5423 The second and slighty more complex way is to send the response
5424 as parts. Start with sending the header using the SendHeaders method and
5425 then you can send the body using SendBody method, but do not forget
5426 to set ContentType and ContentLength before doing so.
5427 </summary>
5428 <example>
5429 public void MyHandler(IHttpRequest request, IHttpResponse response)
5430 {
5431
5432 }
5433 </example>
5434 </member>
5435 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)">
5436 <summary>
5437 Add another header to the document.
5438 </summary>
5439 <param name="name">Name of the header, case sensitive, use lower cases.</param>
5440 <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>
5441 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
5442 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
5443 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
5444 </member>
5445 <member name="M:HttpServer.IHttpResponse.Send">
5446 <summary>
5447 Send headers and body to the browser.
5448 </summary>
5449 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
5450 </member>
5451 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
5452 <summary>
5453 Make sure that you have specified ContentLength and sent the headers first.
5454 </summary>
5455 <param name="buffer"></param>
5456 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
5457 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
5458 <param name="offset">offest of first byte to send</param>
5459 <param name="count">number of bytes to send.</param>
5460 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
5461 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
5462 <remarks>This method can be used if you want to send body contents without caching them first. This
5463 is recommended for larger files to keep the memory usage low.</remarks>
5464 </member>
5465 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])">
5466 <summary>
5467 Make sure that you have specified ContentLength and sent the headers first.
5468 </summary>
5469 <param name="buffer"></param>
5470 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
5471 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
5472 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
5473 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
5474 <remarks>This method can be used if you want to send body contents without caching them first. This
5475 is recommended for larger files to keep the memory usage low.</remarks>
5476 </member>
5477 <member name="M:HttpServer.IHttpResponse.SendHeaders">
5478 <summary>
5479 Send headers to the client.
5480 </summary>
5481 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
5482 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/>
5483 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
5484 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/>
5485 </member>
5486 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)">
5487 <summary>
5488 Redirect client to somewhere else using the 302 status code.
5489 </summary>
5490 <param name="uri">Destination of the redirect</param>
5491 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
5492 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
5493 action.</remarks>
5494 </member>
5495 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)">
5496 <summary>
5497 redirect to somewhere
5498 </summary>
5499 <param name="url">where the redirect should go</param>
5500 <remarks>
5501 No body are allowed when doing redirects.
5502 </remarks>
5503 </member>
5504 <member name="P:HttpServer.IHttpResponse.Body">
5505 <summary>
5506 The body stream is used to cache the body contents
5507 before sending everything to the client. It's the simplest
5508 way to serve documents.
5509 </summary>
5510 </member>
5511 <member name="P:HttpServer.IHttpResponse.Chunked">
5512 <summary>
5513 The chunked encoding modifies the body of a message in order to
5514 transfer it as a series of chunks, each with its own size indicator,
5515 followed by an OPTIONAL trailer containing entity-header fields. This
5516 allows dynamically produced content to be transferred along with the
5517 information necessary for the recipient to verify that it has
5518 received the full message.
5519 </summary>
5520 </member>
5521 <member name="P:HttpServer.IHttpResponse.Connection">
5522 <summary>
5523 Kind of connection
5524 </summary>
5525 </member>
5526 <member name="P:HttpServer.IHttpResponse.Encoding">
5527 <summary>
5528 Encoding to use when sending stuff to the client.
5529 </summary>
5530 <remarks>Default is UTF8</remarks>
5531 </member>
5532 <member name="P:HttpServer.IHttpResponse.KeepAlive">
5533 <summary>
5534 Number of seconds to keep connection alive
5535 </summary>
5536 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
5537 </member>
5538 <member name="P:HttpServer.IHttpResponse.Status">
5539 <summary>
5540 Status code that is sent to the client.
5541 </summary>
5542 <remarks>Default is HttpStatusCode.Ok</remarks>
5543 </member>
5544 <member name="P:HttpServer.IHttpResponse.Reason">
5545 <summary>
5546 Information about why a specific status code was used.
5547 </summary>
5548 </member>
5549 <member name="P:HttpServer.IHttpResponse.ContentLength">
5550 <summary>
5551 Size of the body. MUST be specified before sending the header,
5552 unless property Chunked is set to true.
5553 </summary> 3759 </summary>
3760 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
3761 <param name="stream">Stream containing form data.</param>
3762 <param name="encoding">Encoding used when decoding the stream</param>
3763 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
3764 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
3765 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
5554 </member> 3766 </member>
5555 <member name="P:HttpServer.IHttpResponse.ContentType"> 3767 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
5556 <summary> 3768 <summary>
5557 Kind of content in the body 3769 Add a decoder.
5558 </summary> 3770 </summary>
5559 <remarks>Default is text/html</remarks> 3771 <param name="decoder"></param>
3772 <exception cref="T:System.ArgumentNullException"></exception>
5560 </member> 3773 </member>
5561 <member name="P:HttpServer.IHttpResponse.HeadersSent"> 3774 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
5562 <summary> 3775 <summary>
5563 Headers have been sent to the client- 3776 Number of added decoders.
5564 </summary> 3777 </summary>
5565 <remarks>You can not send any additional headers if they have already been sent.</remarks>
5566 </member> 3778 </member>
5567 <member name="P:HttpServer.IHttpResponse.Sent"> 3779 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
5568 <summary> 3780 <summary>
5569 The whole response have been sent. 3781 Use with care.
5570 </summary> 3782 </summary>
5571 </member> 3783 </member>
5572 <member name="P:HttpServer.IHttpResponse.Cookies"> 3784 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
5573 <summary> 3785 <summary>
5574 Cookies that should be created/changed. 3786 Decoder used for unknown content types.
5575 </summary> 3787 </summary>
5576 </member> 3788 </member>
5577 <member name="T:HttpServer.ConnectionType"> 3789 <member name="T:HttpServer.ConnectionType">
@@ -5591,8 +3803,8 @@
5591 </member> 3803 </member>
5592 <member name="T:HttpServer.HttpInputItem"> 3804 <member name="T:HttpServer.HttpInputItem">
5593 <summary> 3805 <summary>
5594 represents a http input item. Each item can have multiple sub items, a sub item 3806 represents a HTTP input item. Each item can have multiple sub items, a sub item
5595 is made in a html form by using square brackets 3807 is made in a HTML form by using square brackets
5596 </summary> 3808 </summary>
5597 <example> 3809 <example>
5598 // <input type="text" name="user[FirstName]" value="jonas" /> becomes: 3810 // <input type="text" name="user[FirstName]" value="jonas" /> becomes:
@@ -5603,7 +3815,7 @@
5603 </remarks> 3815 </remarks>
5604 </member> 3816 </member>
5605 <member name="F:HttpServer.HttpInputItem.Empty"> 3817 <member name="F:HttpServer.HttpInputItem.Empty">
5606 <summary> Representation of a non-initialized HttpInputItem </summary> 3818 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
5607 </member> 3819 </member>
5608 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)"> 3820 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)">
5609 <summary> 3821 <summary>
@@ -5621,14 +3833,15 @@
5621 <summary> 3833 <summary>
5622 Add another value to this item 3834 Add another value to this item
5623 </summary> 3835 </summary>
5624 <param name="value"></param> 3836 <param name="value">Value to add.</param>
3837 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
5625 </member> 3838 </member>
5626 <member name="M:HttpServer.HttpInputItem.Contains(System.String)"> 3839 <member name="M:HttpServer.HttpInputItem.Contains(System.String)">
5627 <summary> 3840 <summary>
5628 checks if a subitem exists (and has a value). 3841 checks if a sub-item exists (and has a value).
5629 </summary> 3842 </summary>
5630 <param name="name">name in lower case</param> 3843 <param name="name">name in lower case</param>
5631 <returns>true if the subitem exists and has a value; otherwise false.</returns> 3844 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
5632 </member> 3845 </member>
5633 <member name="M:HttpServer.HttpInputItem.ToString"> 3846 <member name="M:HttpServer.HttpInputItem.ToString">
5634 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary> 3847 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
@@ -5642,10 +3855,12 @@
5642 </member> 3855 </member>
5643 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)"> 3856 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)">
5644 <summary> 3857 <summary>
5645 Add a sub item 3858 Add a sub item.
5646 </summary> 3859 </summary>
5647 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param> 3860 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param>
5648 <param name="value"></param> 3861 <param name="value">Value to add.</param>
3862 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
3863 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
5649 </member> 3864 </member>
5650 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 3865 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
5651 <summary> 3866 <summary>
@@ -5684,7 +3899,7 @@
5684 Get a sub item 3899 Get a sub item
5685 </summary> 3900 </summary>
5686 <param name="name">name in lower case.</param> 3901 <param name="name">name in lower case.</param>
5687 <returns>HttpInputItem.Empty if no item was found.</returns> 3902 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
5688 </member> 3903 </member>
5689 <member name="P:HttpServer.HttpInputItem.Name"> 3904 <member name="P:HttpServer.HttpInputItem.Name">
5690 <summary> 3905 <summary>
@@ -5704,7 +3919,6 @@
5704 <member name="P:HttpServer.HttpInputItem.Values"> 3919 <member name="P:HttpServer.HttpInputItem.Values">
5705 <summary> 3920 <summary>
5706 Returns the list with values. 3921 Returns the list with values.
5707 todo: Return a readonly collection
5708 </summary> 3922 </summary>
5709 </member> 3923 </member>
5710 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)"> 3924 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)">
@@ -5714,514 +3928,509 @@
5714 <param name="name">name in lower case</param> 3928 <param name="name">name in lower case</param>
5715 <returns></returns> 3929 <returns></returns>
5716 </member> 3930 </member>
5717 <member name="T:HttpServer.FormDecoders.UrlDecoder"> 3931 <member name="T:HttpServer.Sessions.MemorySessionStore">
5718 <summary>
5719 Can handle application/x-www-form-urlencoded
5720 </summary>
5721 </member>
5722 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
5723 <summary>
5724 </summary>
5725 <param name="stream">Stream containing the content</param>
5726 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
5727 <param name="encoding">Stream enconding</param>
5728 <returns>
5729 A http form, or null if content could not be parsed.
5730 </returns>
5731 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
5732 </member>
5733 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
5734 <summary>
5735 Checks if the decoder can handle the mime type
5736 </summary>
5737 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
5738 <returns>True if the decoder can parse the specified content type</returns>
5739 </member>
5740 <member name="T:HttpServer.Controllers.ControllerTester">
5741 <summary> 3932 <summary>
5742 Used to simply testing of controls. 3933 Session store using memory for each session.
5743 </summary> 3934 </summary>
5744 </member> 3935 </member>
5745 <member name="F:HttpServer.Controllers.ControllerTester.HostName"> 3936 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor">
5746 <summary> 3937 <summary>
5747 Fake host name, default is "http://localhost" 3938 Initializes the class setting the expirationtimer to clean the session every minute
5748 </summary> 3939 </summary>
5749 </member> 3940 </member>
5750 <member name="F:HttpServer.Controllers.ControllerTester.DefaultSession"> 3941 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)">
5751 <summary> 3942 <summary>
5752 Session used if null have been specified as argument to one of the class methods. 3943 Delegate for the cleanup timer
5753 </summary> 3944 </summary>
5754 </member> 3945 </member>
5755 <member name="M:HttpServer.Controllers.ControllerTester.Get(HttpServer.Controllers.RequestController,System.String,HttpServer.IHttpResponse@,HttpServer.Sessions.IHttpSession)"> 3946 <member name="M:HttpServer.Sessions.MemorySessionStore.Create">
5756 <summary> 3947 <summary>
5757 Send a GET request to a controller. 3948 Creates a new http session
5758 </summary> 3949 </summary>
5759 <param name="controller">Controller receiving the post request.</param> 3950 <returns></returns>
5760 <param name="uri">Uri visited.</param>
5761 <param name="response">Response from the controller.</param>
5762 <param name="session">Session used during the test. null = <see cref="F:HttpServer.Controllers.ControllerTester.DefaultSession"/> is used.</param>
5763 <returns>body posted by the response object</returns>
5764 <example>
5765 <code>
5766 void MyTest()
5767 {
5768 ControllerTester tester = new ControllerTester();
5769
5770 MyController controller = new MyController();
5771 IHttpResponse response;
5772 string text = Get(controller, "/my/hello/1?hello=world", out response, null);
5773 Assert.Equal("world|1", text);
5774 }
5775 </code>
5776 </example>
5777 </member>
5778 <member name="M:HttpServer.Controllers.ControllerTester.Post(HttpServer.Controllers.RequestController,System.String,HttpServer.HttpForm,HttpServer.IHttpResponse@,HttpServer.Sessions.IHttpSession)">
5779 <summary>
5780 Send a POST request to a controller.
5781 </summary>
5782 <param name="controller">Controller receiving the post request.</param>
5783 <param name="uri">Uri visited.</param>
5784 <param name="form">Form being processed by controller.</param>
5785 <param name="response">Response from the controller.</param>
5786 <param name="session">Session used during the test. null = <see cref="F:HttpServer.Controllers.ControllerTester.DefaultSession"/> is used.</param>
5787 <returns>body posted by the response object</returns>
5788 <example>
5789 <code>
5790 void MyTest()
5791 {
5792 // Create a controller.
5793 MyController controller = new MyController();
5794
5795 // build up a form that is used by the controller.
5796 HttpForm form = new HttpForm();
5797 form.Add("user[firstName]", "Jonas");
5798
5799 // Invoke the request
5800 ControllerTester tester = new ControllerTester();
5801 IHttpResponse response;
5802 string text = tester.Get(controller, "/user/create/", form, out response, null);
5803
5804 // validate response back from controller.
5805 Assert.Equal("User 'Jonas' has been created.", text);
5806 }
5807 </code>
5808 </example>
5809 </member> 3951 </member>
5810 <member name="T:HttpServer.ClientAcceptedEventArgs"> 3952 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)">
5811 <summary> 3953 <summary>
5812 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/> 3954 Creates a new http session with a specific id
5813 </summary> 3955 </summary>
3956 <param name="id">Id used to identify the new cookie..</param>
3957 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
5814 <remarks> 3958 <remarks>
5815 Can be used to revoke incoming connections 3959 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
5816 </remarks> 3960 </remarks>
5817 </member> 3961 </member>
5818 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)"> 3962 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)">
5819 <summary>
5820 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
5821 </summary>
5822 <param name="socket">The socket.</param>
5823 </member>
5824 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
5825 <summary>
5826 Client may not be handled.
5827 </summary>
5828 </member>
5829 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
5830 <summary> 3963 <summary>
5831 Accepted socket. 3964 Load an existing session.
5832 </summary> 3965 </summary>
3966 <param name="sessionId"></param>
3967 <returns></returns>
5833 </member> 3968 </member>
5834 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked"> 3969 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)">
5835 <summary> 3970 <summary>
5836 Client should be revoked. 3971 Save an updated session to the store.
5837 </summary> 3972 </summary>
3973 <param name="session"></param>
5838 </member> 3974 </member>
5839 <member name="T:HttpServer.ResponseCookie"> 3975 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
5840 <summary> 3976 <summary>
5841 cookie being sent back to the browser. 3977 We use the flyweight pattern which reuses small objects
3978 instead of creating new each time.
5842 </summary> 3979 </summary>
5843 <seealso cref="T:HttpServer.ResponseCookie"/> 3980 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
5844 </member> 3981 </member>
5845 <member name="T:HttpServer.RequestCookie"> 3982 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup">
5846 <summary> 3983 <summary>
5847 cookie sent by the client/browser 3984 Remove expired sessions
5848 </summary> 3985 </summary>
5849 <seealso cref="T:HttpServer.ResponseCookie"/>
5850 </member> 3986 </member>
5851 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)"> 3987 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)">
5852 <summary>
5853 Constructor.
5854 </summary>
5855 <param name="id">cookie identifier</param>
5856 <param name="content">cookie content</param>
5857 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
5858 <exception cref="T:System.ArgumentException">id is empty</exception>
5859 </member>
5860 <member name="M:HttpServer.RequestCookie.ToString">
5861 <summary> 3988 <summary>
5862 Gets the cookie HTML representation. 3989 Remove a session
5863 </summary> 3990 </summary>
5864 <returns>cookie string</returns> 3991 <param name="sessionId">id of the session.</param>
5865 </member> 3992 </member>
5866 <member name="P:HttpServer.RequestCookie.Name"> 3993 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)">
5867 <summary> 3994 <summary>
5868 Gets the cookie identifier. 3995 Load a session from the store
5869 </summary> 3996 </summary>
3997 <param name="sessionId"></param>
3998 <returns>null if session is not found.</returns>
5870 </member> 3999 </member>
5871 <member name="P:HttpServer.RequestCookie.Value"> 4000 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime">
5872 <summary> 4001 <summary>
5873 Cookie value. Set to null to remove cookie. 4002 Number of minutes before a session expires.
4003 Default is 20 minutes.
5874 </summary> 4004 </summary>
5875 </member> 4005 </member>
5876 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)"> 4006 <member name="T:HttpServer.Rules.RedirectRule">
5877 <summary> 4007 <summary>
5878 Constructor. 4008 redirects from one URL to another.
5879 </summary> 4009 </summary>
5880 <param name="id">cookie identifier</param>
5881 <param name="content">cookie content</param>
5882 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
5883 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
5884 <exception cref="T:System.ArgumentException">id is empty</exception>
5885 </member> 4010 </member>
5886 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)"> 4011 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)">
5887 <summary> 4012 <summary>
5888 Create a new cookie 4013 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
5889 </summary> 4014 </summary>
5890 <param name="name">name identifying the cookie</param> 4015 <param name="fromUrl">Absolute path (no server name)</param>
5891 <param name="value">cookie value</param> 4016 <param name="toUrl">Absolute path (no server name)</param>
5892 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param> 4017 <example>
5893 <param name="path">Path to where the cookie is valid</param> 4018 server.Add(new RedirectRule("/", "/user/index"));
5894 <param name="domain">Domain that the cookie is valid for.</param> 4019 </example>
5895 </member> 4020 </member>
5896 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)"> 4021 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)">
5897 <summary> 4022 <summary>
5898 Create a new cookie 4023 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
5899 </summary> 4024 </summary>
5900 <param name="cookie">Name and value will be used</param> 4025 <param name="fromUrl">Absolute path (no server name)</param>
5901 <param name="expires">when the cookie expires.</param> 4026 <param name="toUrl">Absolute path (no server name)</param>
4027 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
4028 <example>
4029 server.Add(new RedirectRule("/", "/user/index"));
4030 </example>
5902 </member> 4031 </member>
5903 <member name="M:HttpServer.ResponseCookie.ToString"> 4032 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
5904 <summary> 4033 <summary>
5905 Gets the cookie HTML representation. 4034 Process the incoming request.
5906 </summary> 4035 </summary>
5907 <returns>cookie string</returns> 4036 <param name="request">incoming HTTP request</param>
4037 <param name="response">outgoing HTTP response</param>
4038 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
4039 <remarks>
4040 returning true means that no modules will get the request. Returning true is typically being done
4041 for redirects.
4042 </remarks>
5908 </member> 4043 </member>
5909 <member name="P:HttpServer.ResponseCookie.Expires"> 4044 <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
5910 <summary> 4045 <summary>
5911 When the cookie expires. 4046 Gets string to match request URI with.
5912 DateTime.MinValue means that the cookie expires when the session do so.
5913 </summary> 4047 </summary>
4048 <remarks>Is compared to request.Uri.AbsolutePath</remarks>
5914 </member> 4049 </member>
5915 <member name="P:HttpServer.ResponseCookie.Path"> 4050 <member name="P:HttpServer.Rules.RedirectRule.ToUrl">
5916 <summary> 4051 <summary>
5917 Cookie is only valid under this path. 4052 Gets where to redirect.
5918 </summary> 4053 </summary>
5919 </member> 4054 </member>
5920 <member name="T:HttpServer.Rendering.ITinyTemplate"> 4055 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect">
5921 <summary> 4056 <summary>
5922 Interface for dynamically generated templates. 4057 Gets whether server should redirect client.
5923 </summary> 4058 </summary>
5924 <seealso cref="T:HttpServer.Rendering.TemplateManager"/> 4059 <remarks>
4060 <c>false</c> means that the rule will replace
4061 the current request URI with the new one from this class.
4062 <c>true</c> means that a redirect response is sent to the client.
4063 </remarks>
5925 </member> 4064 </member>
5926 <member name="M:HttpServer.Rendering.ITinyTemplate.Invoke(HttpServer.Rendering.TemplateArguments,HttpServer.Rendering.TemplateManager)"> 4065 <member name="T:HttpServer.Parser.BodyEventArgs">
5927 <summary> 4066 <summary>
5928 Run the template to generate HTML code. 4067 Arguments used when more body bytes have come.
5929 </summary> 4068 </summary>
5930 <param name="args">arguments passed to the template</param>
5931 <param name="hiddenTemplateManager">template manager (a manager is used to generate templates)</param>
5932 <returns>HTML code.</returns>
5933 </member> 4069 </member>
5934 <member name="T:HttpServer.Rendering.CodeGeneratorException"> 4070 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)">
5935 <summary> 4071 <summary>
5936 Contains information on where in the template the error occurred, and what the error was. 4072 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
5937 </summary> 4073 </summary>
4074 <param name="buffer">buffer that contains the received bytes.</param>
4075 <param name="offset">offset in buffer where to start processing.</param>
4076 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param>
5938 </member> 4077 </member>
5939 <member name="M:HttpServer.Rendering.CodeGeneratorException.#ctor(System.Int32,System.String)"> 4078 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor">
5940 <summary> 4079 <summary>
5941 Initializes a new instance of the <see cref="T:HttpServer.Rendering.CodeGeneratorException"/> class. 4080 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
5942 </summary> 4081 </summary>
5943 <param name="lineNumber">Line that the error appeared on.</param>
5944 <param name="error">error description.</param>
5945 </member> 4082 </member>
5946 <member name="M:HttpServer.Rendering.CodeGeneratorException.#ctor(System.Int32,System.String,System.String)"> 4083 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer">
5947 <summary> 4084 <summary>
5948 Initializes a new instance of the <see cref="T:HttpServer.Rendering.CodeGeneratorException"/> class. 4085 Gets or sets buffer that contains the received bytes.
5949 </summary> 4086 </summary>
5950 <param name="lineNumber">Line that the error appeared on.</param>
5951 <param name="error">error description.</param>
5952 <param name="line">line contents.</param>
5953 </member> 4087 </member>
5954 <member name="P:HttpServer.Rendering.CodeGeneratorException.Line"> 4088 <member name="P:HttpServer.Parser.BodyEventArgs.Count">
5955 <summary> 4089 <summary>
5956 Returns the actual line where the error originated 4090 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed.
5957 </summary> 4091 </summary>
5958 </member> 4092 </member>
5959 <member name="P:HttpServer.Rendering.CodeGeneratorException.LineNumber"> 4093 <member name="P:HttpServer.Parser.BodyEventArgs.Offset">
5960 <summary> 4094 <summary>
5961 Line number in template 4095 Gets or sets offset in buffer where to start processing.
5962 </summary> 4096 </summary>
5963 </member> 4097 </member>
5964 <member name="T:HttpServer.Rendering.Haml.Nodes.SilentCodeNode"> 4098 <member name="T:HttpServer.HttpModules.WebSiteModule">
5965 <summary>
5966 The ’-’ character makes the text following it into “silent” code: C# code that is evaluated, but not output.
5967 It is not recommended that you use this widely; almost all processing code and logic should be restricted to the Controller, Helpers, or partials.
5968
5969 For example
5970 <code>
5971 - string foo = "hello"
5972 - foo += " there"
5973 - foo += " you!"
5974 %p= foo
5975 </code>
5976
5977 Is compiled to
5978 <example>
5979 <p>
5980 hello there you!
5981 </p>
5982 </example>
5983 </summary>
5984 </member>
5985 <member name="M:HttpServer.Rendering.Haml.Nodes.SilentCodeNode.CanHandle(System.String,System.Boolean)">
5986 <summary> 4099 <summary>
5987 determines if this node can handle the line (by checking the first word); 4100 The website module let's you handle multiple websites in the same server.
4101 It uses the "Host" header to check which site you want.
5988 </summary> 4102 </summary>
5989 <param name="word">Controller char (word)</param> 4103 <remarks>It's recommended that you do not
5990 <returns>true if text belongs to this node type</returns> 4104 add any other modules to HttpServer if you are using the website module. Instead,
5991 <param name="firstNode">first node on line</param> 4105 add all wanted modules to each website.</remarks>
5992 </member> 4106 </member>
5993 <member name="M:HttpServer.Rendering.Haml.Nodes.SilentCodeNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 4107 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
5994 <summary> 4108 <summary>
5995 Parse node contents add return a fresh node. 4109
5996 </summary> 4110 </summary>
5997 <param name="prototypes">List containing all node types</param> 4111 <param name="host">domain name that should be handled.</param>
5998 <param name="parent">Node that this is a subnode to. Can be null</param> 4112 <param name="name"></param>
5999 <param name="line">Line to parse</param>
6000 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param>
6001 <returns>A node corresponding to the bla bla; null if parsing failed.</returns>
6002 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
6003 </member> 4113 </member>
6004 <member name="M:HttpServer.Rendering.Haml.Nodes.SilentCodeNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 4114 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
6005 <summary> 4115 <summary>
6006 Convert the node to c# code 4116 Method that process the url
6007 </summary> 4117 </summary>
6008 <param name="inString">True if we are inside the internal stringbuilder</param> 4118 <param name="request">Information sent by the browser about the request</param>
6009 <param name="smallEnough">true if all subnodes fit on one line</param> 4119 <param name="response">Information that is being sent back to the client.</param>
6010 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param> 4120 <param name="session">Session used to </param>
6011 <returns>c# code</returns>
6012 </member> 4121 </member>
6013 <member name="M:HttpServer.Rendering.Haml.Nodes.SilentCodeNode.ToHtml"> 4122 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
6014 <summary> 4123 <summary>
6015 Convert node to HTML (with ASP-tags) 4124 Name of site.
6016 </summary> 4125 </summary>
6017 <returns>HTML string</returns>
6018 </member> 4126 </member>
6019 <member name="T:HttpServer.Rendering.TemplateCompiler"> 4127 <member name="T:HttpServer.Helpers.FormHelper">
6020 <summary> 4128 <summary>
6021 The compiler is responsible of creating a render object which can be 4129 Helpers making it easier to work with forms.
6022 cached and used over and over again.
6023 </summary> 4130 </summary>
6024 <seealso cref="T:HttpServer.Rendering.TemplateManager"/> 4131 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
6025 <seealso cref="T:HttpServer.Rendering.ITemplateGenerator"/>
6026 </member> 4132 </member>
6027 <member name="F:HttpServer.Rendering.TemplateCompiler.TemplateBase"> 4133 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation">
6028 <summary> 4134 <summary>
6029 Base c# code for a template object. 4135 Used to let the website use different JavaScript libraries.
4136 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
6030 </summary> 4137 </summary>
6031 </member> 4138 </member>
6032 <member name="M:HttpServer.Rendering.TemplateCompiler.#ctor"> 4139 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])">
6033 <summary> 4140 <summary>
6034 Create a new template compiler 4141 Create a &lt;form&gt; tag.
6035 </summary> 4142 </summary>
4143 <param name="id">name of form</param>
4144 <param name="action">action to invoke on submit</param>
4145 <param name="isAjax">form should be posted as Ajax</param>
4146 <returns>HTML code</returns>
4147 <example>
4148 <code>
4149 // without options
4150 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4151
4152 // with options
4153 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
4154 </code>
4155 </example>
4156 <param name="options">HTML attributes or JavaScript options.</param>
4157 <remarks>Method will ALWAYS be POST.</remarks>
4158 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception>
6036 </member> 4159 </member>
6037 <member name="M:HttpServer.Rendering.TemplateCompiler.Add(System.Type)"> 4160 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
6038 <summary> 4161 <summary>
6039 Adds the specified type. 4162 Creates a select list with the values in a collection.
6040 </summary> 4163 </summary>
6041 <param name="type">The type.</param> 4164 <param name="name">Name of the SELECT-tag</param>
4165 <param name="collection">collection used to generate options.</param>
4166 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4167 <param name="selectedValue">value that should be marked as selected.</param>
4168 <param name="firstEmpty">First row should contain an empty value.</param>
4169 <returns>string containing a SELECT-tag.</returns>
4170 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
6042 </member> 4171 </member>
6043 <member name="M:HttpServer.Rendering.TemplateCompiler.Compile(HttpServer.Rendering.TemplateArguments,System.String,System.String)"> 4172 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
6044 <summary> 4173 <summary>
6045 Compiles the specified args. 4174 Creates a select list with the values in a collection.
6046 </summary> 4175 </summary>
6047 <param name="args">Arguments, should contain "name, value, name, value" etc.</param> 4176 <param name="name">Name of the SELECT-tag</param>
6048 <param name="template">c# code that will be included in the generated template class</param> 4177 <param name="id">Id of the SELECT-tag</param>
6049 <param name="templateId">Id of the template class</param> 4178 <param name="collection">collection used to generate options.</param>
6050 <returns>Tiny template if successful; otherwise null.</returns> 4179 <param name="getIdTitle">delegate used to return id and title from objects.</param>
6051 <exception cref="T:Fadd.CompilerException">If compilation fails</exception> 4180 <param name="selectedValue">value that should be marked as selected.</param>
6052 <exception cref="T:System.ArgumentException">If args are incorrect</exception> 4181 <param name="firstEmpty">First row should contain an empty value.</param>
6053 </member> 4182 <returns>string containing a SELECT-tag.</returns>
6054 <member name="T:HttpServer.HttpResponse"> 4183 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
6055 <summary> 4184 <example>
6056 Response that is sent back to the web browser / client. 4185 <code>
4186 // Class that is going to be used in a SELECT-tag.
4187 public class User
4188 {
4189 private readonly string _realName;
4190 private readonly int _id;
4191 public User(int id, string realName)
4192 {
4193 _id = id;
4194 _realName = realName;
4195 }
4196 public string RealName
4197 {
4198 get { return _realName; }
4199 }
6057 4200
6058 A response can be sent if different ways. The easiest one is 4201 public int Id
6059 to just fill the Body stream with content, everything else 4202 {
6060 will then be taken care of by the framework. The default content-type 4203 get { return _id; }
6061 is text/html, you should change it if you send anything else. 4204 }
4205 }
6062 4206
6063 The second and slighty more complex way is to send the response 4207 // Using an inline delegate to generate the select list
6064 as parts. Start with sending the header using the SendHeaders method and 4208 public void UserInlineDelegate()
6065 then you can send the body using SendBody method, but do not forget
6066 to set ContentType and ContentLength before doing so.
6067 </summary>
6068 <example>
6069 public void MyHandler(IHttpRequest request, IHttpResponse response)
6070 { 4209 {
6071 4210 List&lt;User&gt; items = new List&lt;User&gt;();
4211 items.Add(new User(1, "adam"));
4212 items.Add(new User(2, "bertial"));
4213 items.Add(new User(3, "david"));
4214 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
4215 {
4216 User user = (User)o;
4217 id = user.Id;
4218 value = user.RealName;
4219 }, 2, true);
6072 } 4220 }
4221
4222 // Using an method as delegate to generate the select list.
4223 public void UseExternalDelegate()
4224 {
4225 List&lt;User&gt; items = new List&lt;User&gt;();
4226 items.Add(new User(1, "adam"));
4227 items.Add(new User(2, "bertial"));
4228 items.Add(new User(3, "david"));
4229 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
4230 }
4231
4232 // delegate returning id and title
4233 public static void UserOptions(object o, out object id, out object title)
4234 {
4235 User user = (User)o;
4236 id = user.Id;
4237 value = user.RealName;
4238 }
4239 </code>
6073 </example> 4240 </example>
6074 todo: add two examples, using SendHeaders/SendBody and just the Body stream. 4241 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
6075 </member> 4242 </member>
6076 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 4243 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])">
6077 <summary> 4244 <summary>
6078 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 4245 Creates a select list with the values in a collection.
6079 </summary> 4246 </summary>
6080 <param name="context">The context.</param> 4247 <param name="name">Name of the SELECT-tag</param>
6081 <param name="request">The request.</param> 4248 <param name="id">Id of the SELECT-tag</param>
4249 <param name="collection">collection used to generate options.</param>
4250 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4251 <param name="selectedValue">value that should be marked as selected.</param>
4252 <param name="firstEmpty">First row should contain an empty value.</param>
4253 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param>
4254 <returns>string containing a SELECT-tag.</returns>
4255 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4256 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
4257 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception>
6082 </member> 4258 </member>
6083 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"> 4259 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
6084 <summary> 4260 <summary>
6085 Add another header to the document. 4261 Generate a list of HTML options
6086 </summary> 4262 </summary>
6087 <param name="name">Name of the header, case sensitive, use lower cases.</param> 4263 <param name="collection">collection used to generate options.</param>
6088 <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> 4264 <param name="getIdTitle">delegate used to return id and title from objects.</param>
6089 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 4265 <param name="selectedValue">value that should be marked as selected.</param>
6090 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception> 4266 <param name="firstEmpty">First row should contain an empty value.</param>
6091 <remarks>Adding any header will override the default ones and those specified by properties.</remarks> 4267 <returns></returns>
4268 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
6092 </member> 4269 </member>
6093 <member name="M:HttpServer.HttpResponse.Send"> 4270 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4271 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception>
4272 </member>
4273 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
6094 <summary> 4274 <summary>
6095 Send headers and body to the browser. 4275 Creates a check box.
6096 </summary> 4276 </summary>
6097 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception> 4277 <param name="name">element name</param>
4278 <param name="value">element value</param>
4279 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
4280 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4281 the box is checked or not. </param>
4282 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4283 <returns>a generated radio button</returns>
6098 </member> 4284 </member>
6099 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)"> 4285 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
6100 <summary> 4286 <summary>
6101 Make sure that you have specified ContentLength and sent the headers first. 4287 Creates a check box.
6102 </summary> 4288 </summary>
6103 <param name="buffer"></param> 4289 <param name="name">element name</param>
6104 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 4290 <param name="id">element id</param>
6105 <see cref="M:HttpServer.HttpResponse.SendHeaders"/> 4291 <param name="value">element value</param>
6106 <param name="offset">offest of first byte to send</param> 4292 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
6107 <param name="count">number of bytes to send.</param> 4293 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
6108 <seealso cref="M:HttpServer.HttpResponse.Send"/> 4294 the box is checked or not. </param>
6109 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/> 4295 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
6110 <remarks>This method can be used if you want to send body contents without caching them first. This 4296 <returns>a generated radio button</returns>
6111 is recommended for larger files to keep the memory usage low.</remarks> 4297 <remarks>
4298 value in your business object. (check box will be selected if it matches the element value)
4299 </remarks>
6112 </member> 4300 </member>
6113 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])"> 4301 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
6114 <summary> 4302 <summary>
6115 Make sure that you have specified ContentLength and sent the headers first. 4303 Creates a check box.
6116 </summary> 4304 </summary>
6117 <param name="buffer"></param> 4305 <param name="name">element name</param>
6118 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 4306 <param name="id">element id</param>
6119 <see cref="M:HttpServer.HttpResponse.SendHeaders"/> 4307 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
6120 <seealso cref="M:HttpServer.HttpResponse.Send"/> 4308 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
6121 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/> 4309 the box is checked or not. </param>
6122 <remarks>This method can be used if you want to send body contents without caching them first. This 4310 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
6123 is recommended for larger files to keep the memory usage low.</remarks> 4311 <returns>a generated radio button</returns>
4312 <remarks>will set value to "1".</remarks>
6124 </member> 4313 </member>
6125 <member name="M:HttpServer.HttpResponse.SendHeaders"> 4314 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])">
6126 <summary> 4315 <summary>
6127 Send headers to the client. 4316 Creates a RadioButton.
6128 </summary> 4317 </summary>
6129 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 4318 <param name="name">element name</param>
6130 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/> 4319 <param name="value">element value</param>
6131 <seealso cref="M:HttpServer.HttpResponse.Send"/> 4320 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
6132 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/> 4321 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4322 the box is checked or not. </param>
4323 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4324 <returns>a generated radio button</returns>
6133 </member> 4325 </member>
6134 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)"> 4326 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])">
6135 <summary> 4327 <summary>
6136 Redirect client to somewhere else using the 302 status code. 4328 Creates a RadioButton.
6137 </summary> 4329 </summary>
6138 <param name="uri">Destination of the redirect</param> 4330 <param name="name">element name</param>
6139 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 4331 <param name="id">element id</param>
6140 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last 4332 <param name="value">element value</param>
6141 action.</remarks> 4333 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
4334 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4335 the box is checked or not. </param>
4336 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4337 <returns>a generated radio button</returns>
6142 </member> 4338 </member>
6143 <member name="M:HttpServer.HttpResponse.Redirect(System.String)"> 4339 <member name="M:HttpServer.Helpers.FormHelper.End">
6144 <summary> 4340 <summary>
6145 redirect to somewhere 4341 form close tag
6146 </summary> 4342 </summary>
6147 <param name="url">where the redirect should go</param> 4343 <returns></returns>
6148 <remarks>
6149 No body are allowed when doing redirects.
6150 </remarks>
6151 </member> 4344 </member>
6152 <member name="P:HttpServer.HttpResponse.Body"> 4345 <member name="T:HttpServer.Exceptions.ForbiddenException">
6153 <summary> 4346 <summary>
6154 The body stream is used to cache the body contents 4347 The server understood the request, but is refusing to fulfill it.
6155 before sending everything to the client. It's the simplest 4348 Authorization will not help and the request SHOULD NOT be repeated.
6156 way to serve documents. 4349 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
4350 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
4351 available to the client, the status code 404 (Not Found) can be used instead.
4352
4353 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
6157 </summary> 4354 </summary>
6158 </member> 4355 </member>
6159 <member name="P:HttpServer.HttpResponse.Chunked"> 4356 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
6160 <summary> 4357 <summary>
6161 The chunked encoding modifies the body of a message in order to 4358 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
6162 transfer it as a series of chunks, each with its own size indicator,
6163 followed by an OPTIONAL trailer containing entity-header fields. This
6164 allows dynamically produced content to be transferred along with the
6165 information necessary for the recipient to verify that it has
6166 received the full message.
6167 </summary> 4359 </summary>
4360 <param name="errorMsg">error message</param>
6168 </member> 4361 </member>
6169 <member name="P:HttpServer.HttpResponse.Connection"> 4362 <member name="T:HttpServer.ContentType">
6170 <summary> 4363 <summary>
6171 Kind of connection 4364 Lists content type mime types.
6172 </summary> 4365 </summary>
6173 </member> 4366 </member>
6174 <member name="P:HttpServer.HttpResponse.Encoding"> 4367 <member name="F:HttpServer.ContentType.Text">
6175 <summary> 4368 <summary>
6176 Encoding to use when sending stuff to the client. 4369 text/plain
6177 </summary> 4370 </summary>
6178 <remarks>Default is UTF8</remarks>
6179 </member> 4371 </member>
6180 <member name="P:HttpServer.HttpResponse.KeepAlive"> 4372 <member name="F:HttpServer.ContentType.Html">
6181 <summary> 4373 <summary>
6182 Number of seconds to keep connection alive 4374 text/haml
6183 </summary> 4375 </summary>
6184 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
6185 </member> 4376 </member>
6186 <member name="P:HttpServer.HttpResponse.Status"> 4377 <member name="F:HttpServer.ContentType.Javascript">
6187 <summary> 4378 <summary>
6188 Status code that is sent to the client. 4379 content type for javascript documents = application/javascript
6189 </summary> 4380 </summary>
6190 <remarks>Default is HttpStatusCode.Ok</remarks> 4381 <remarks>
4382 <para>
4383 RFC 4329 states that text/javascript have been superseeded by
4384 application/javascript. You might still want to check browser versions
4385 since older ones do not support application/javascript.
4386 </para>
4387 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
4388 </remarks>
6191 </member> 4389 </member>
6192 <member name="P:HttpServer.HttpResponse.Reason"> 4390 <member name="F:HttpServer.ContentType.Xml">
6193 <summary> 4391 <summary>
6194 Information about why a specific status code was used. 4392 text/xml
6195 </summary> 4393 </summary>
6196 </member> 4394 </member>
6197 <member name="P:HttpServer.HttpResponse.ContentLength"> 4395 <member name="T:HttpServer.ContentTypes">
6198 <summary> 4396 <summary>
6199 Size of the body. MUST be specified before sending the header, 4397 A list of content types
6200 unless property Chunked is set to true.
6201 </summary> 4398 </summary>
6202 </member> 4399 </member>
6203 <member name="P:HttpServer.HttpResponse.ContentType"> 4400 <member name="M:HttpServer.ContentTypes.#ctor(System.String)">
6204 <summary> 4401 <summary>
6205 Kind of content in the body 4402
6206 </summary> 4403 </summary>
6207 <remarks>Default is text/html</remarks> 4404 <param name="types">Semicolon separated content types.</param>
6208 </member> 4405 </member>
6209 <member name="P:HttpServer.HttpResponse.HeadersSent"> 4406 <member name="M:HttpServer.ContentTypes.GetEnumerator">
6210 <summary> 4407 <summary>
6211 Headers have been sent to the client- 4408 Returns an enumerator that iterates through a collection.
6212 </summary> 4409 </summary>
6213 <remarks>You can not send any additional headers if they have already been sent.</remarks> 4410 <returns>
4411 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
4412 </returns>
6214 </member> 4413 </member>
6215 <member name="P:HttpServer.HttpResponse.Sent"> 4414 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
6216 <summary> 4415 <summary>
6217 The whole response have been sent. 4416 Searches for the specified type
6218 </summary> 4417 </summary>
4418 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
4419 <returns>true if type was found.</returns>
6219 </member> 4420 </member>
6220 <member name="P:HttpServer.HttpResponse.Cookies"> 4421 <member name="P:HttpServer.ContentTypes.First">
6221 <summary> 4422 <summary>
6222 Cookies that should be created/changed. 4423 Get this first content type.
6223 </summary> 4424 </summary>
6224 </member> 4425 </member>
4426 <member name="P:HttpServer.ContentTypes.Item(System.String)">
4427 <summary>
4428 Fetch a content type
4429 </summary>
4430 <param name="type">Part of type ("xml" would return "application/xml")</param>
4431 <returns></returns>
4432 <remarks>All content types are in lower case.</remarks>
4433 </member>
6225 <member name="T:HttpServer.HttpModules.ReverseProxyModule"> 4434 <member name="T:HttpServer.HttpModules.ReverseProxyModule">
6226 <summary> 4435 <summary>
6227 A reverse proxy are used to act as a bridge between local (protected/hidden) websites 4436 A reverse proxy are used to act as a bridge between local (protected/hidden) websites
@@ -6257,644 +4466,731 @@
6257 <param name="response">Information that is being sent back to the client.</param> 4466 <param name="response">Information that is being sent back to the client.</param>
6258 <param name="session">Session used to </param> 4467 <param name="session">Session used to </param>
6259 </member> 4468 </member>
6260 <member name="T:HttpServer.HttpForm"> 4469 <member name="T:HttpServer.HttpClientContext">
6261 <summary>Container for posted form data</summary>
6262 </member>
6263 <member name="F:HttpServer.HttpForm.EmptyForm">
6264 <summary>Instance to help mark a non-initialized form</summary>
6265 </member>
6266 <member name="M:HttpServer.HttpForm.#ctor">
6267 <summary>Initializes a form container with the specified name</summary>
6268 </member>
6269 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)">
6270 <summary> 4470 <summary>
6271 Makes a deep copy of the input 4471 Contains a connection to a browser/client.
6272 </summary> 4472 </summary>
6273 <param name="input">The input to copy</param> 4473 <remarks>
4474 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
4475 </remarks>
4476 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
6274 </member> 4477 </member>
6275 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)"> 4478 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
6276 <summary> 4479 <summary>
6277 Adds a file to the collection of posted files 4480 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
6278 </summary> 4481 </summary>
6279 <param name="file">The file to add</param> 4482 <param name="secured">true if the connection is secured (SSL/TLS)</param>
6280 <exception cref="T:System.ArgumentException">If the file is already added</exception> 4483 <param name="remoteEndPoint">client that connected.</param>
6281 <exception cref="T:System.ArgumentNullException">If file is null</exception> 4484 <param name="stream">Stream used for communication</param>
6282 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception> 4485 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
4486 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 1024 bytes.</param>
4487 <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>
4488 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
6283 </member> 4489 </member>
6284 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)"> 4490 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
6285 <summary> 4491 <summary>
6286 Checks if the form contains a specified file 4492 Process incoming body bytes.
6287 </summary> 4493 </summary>
6288 <param name="name">Field name of the file parameter</param> 4494 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
6289 <returns>True if the file exists</returns> 4495 <param name="e">Bytes</param>
6290 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
6291 </member> 4496 </member>
6292 <member name="M:HttpServer.HttpForm.GetFile(System.String)"> 4497 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
6293 <summary> 4498 <summary>
6294 Retrieves a file held by by the form 4499
6295 </summary> 4500 </summary>
6296 <param name="name">The identifier of the file</param> 4501 <param name="sender"></param>
6297 <returns>The requested file or null if the file was not found</returns> 4502 <param name="e"></param>
6298 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception>
6299 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
6300 </member> 4503 </member>
6301 <member name="M:HttpServer.HttpForm.Clear"> 4504 <member name="M:HttpServer.HttpClientContext.Start">
6302 <summary>Disposes all held HttpFile's and resets values</summary>
6303 </member>
6304 <member name="T:HttpServer.Exceptions.InternalServerException">
6305 <summary> 4505 <summary>
6306 The server encountered an unexpected condition which prevented it from fulfilling the request. 4506 Start reading content.
6307 </summary> 4507 </summary>
4508 <remarks>
4509 Make sure to call base.Start() if you override this method.
4510 </remarks>
6308 </member> 4511 </member>
6309 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor"> 4512 <member name="M:HttpServer.HttpClientContext.Cleanup">
6310 <summary> 4513 <summary>
6311 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 4514 Clean up context.
6312 </summary> 4515 </summary>
4516 <remarks>
4517 Make sure to call base.Cleanup() if you override the method.
4518 </remarks>
6313 </member> 4519 </member>
6314 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)"> 4520 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
6315 <summary> 4521 <summary>
6316 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 4522 Disconnect from client
6317 </summary> 4523 </summary>
6318 <param name="message">error message.</param> 4524 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
6319 </member> 4525 </member>
6320 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)"> 4526 <member name="M:HttpServer.HttpClientContext.OnReceive(System.IAsyncResult)">
4527 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
4528 </member>
4529 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
6321 <summary> 4530 <summary>
6322 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 4531 Send a response.
6323 </summary> 4532 </summary>
6324 <param name="message">error message.</param> 4533 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
6325 <param name="inner">inner exception.</param> 4534 <param name="statusCode">HTTP status code</param>
4535 <param name="reason">reason for the status code.</param>
4536 <param name="body">HTML body contents, can be null or empty.</param>
4537 <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>
4538 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
6326 </member> 4539 </member>
6327 <member name="T:HttpServer.Controllers.RawHandlerAttribute"> 4540 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
6328 <summary> 4541 <summary>
6329 This attribute tells the controller that the method 4542 Send a response.
6330 uses SendHeader and/or SendBody to handle the request.
6331 </summary> 4543 </summary>
4544 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
4545 <param name="statusCode">HTTP status code</param>
4546 <param name="reason">reason for the status code.</param>
6332 </member> 4547 </member>
6333 <member name="T:HttpServer.Rendering.Haml.LineInfo"> 4548 <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
6334 <summary> 4549 <summary>
6335 Contains line text and state information about a line in a HAML template. 4550 Send a response.
6336 </summary> 4551 </summary>
4552 <exception cref="T:System.ArgumentNullException"></exception>
6337 </member> 4553 </member>
6338 <member name="M:HttpServer.Rendering.Haml.LineInfo.#ctor(System.Int32,System.String)"> 4554 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
6339 <summary> 4555 <summary>
6340 Initializes a new instance of the <see cref="T:HttpServer.Rendering.Haml.LineInfo"/> class. 4556 send a whole buffer
6341 </summary> 4557 </summary>
6342 <param name="lineNumber">The line number.</param> 4558 <param name="buffer">buffer to send</param>
6343 <param name="unparsedData">The unparsed data (line contents).</param> 4559 <exception cref="T:System.ArgumentNullException"></exception>
6344 </member> 4560 </member>
6345 <member name="M:HttpServer.Rendering.Haml.LineInfo.CheckUnfinishedRule(HttpServer.Rendering.Haml.LineInfo)"> 4561 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
6346 <summary> 4562 <summary>
6347 Will check that all rule conditions have been met. 4563 Send data using the stream
6348 Will also remove the rules if they are done.
6349 </summary> 4564 </summary>
6350 <param name="line"></param> 4565 <param name="buffer">Contains data to send</param>
6351 <returns></returns> 4566 <param name="offset">Start position in buffer</param>
4567 <param name="size">number of bytes to send</param>
4568 <exception cref="T:System.ArgumentNullException"></exception>
4569 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
6352 </member> 4570 </member>
6353 <member name="M:HttpServer.Rendering.Haml.LineInfo.Append(HttpServer.Rendering.Haml.LineInfo)"> 4571 <member name="E:HttpServer.HttpClientContext.Cleaned">
6354 <summary> 4572 <summary>
6355 Append another line 4573 This context have been cleaned, which means that it can be reused.
6356 </summary> 4574 </summary>
6357 <param name="line"></param>
6358 </member> 4575 </member>
6359 <member name="M:HttpServer.Rendering.Haml.LineInfo.SetParsedData(System.String)"> 4576 <member name="E:HttpServer.HttpClientContext.Started">
6360 <summary> 4577 <summary>
6361 Parsed line contents (without whitespaces in the beginning) 4578 Context have been started (a new client have connected)
6362 </summary> 4579 </summary>
6363 <param name="data">text contents</param>
6364 </member> 4580 </member>
6365 <member name="M:HttpServer.Rendering.Haml.LineInfo.Set(System.Int32,System.Int32)"> 4581 <member name="P:HttpServer.HttpClientContext.CurrentRequest">
6366 <summary> 4582 <summary>
6367 Set intendation info to previously added line text. 4583 Overload to specify own type.
6368 </summary> 4584 </summary>
6369 <param name="whiteSpaces"></param> 4585 <remarks>
6370 <param name="intendation"></param> 4586 Must be specified before the context is being used.
4587 </remarks>
6371 </member> 4588 </member>
6372 <member name="M:HttpServer.Rendering.Haml.LineInfo.Set(System.String,System.Int32,System.Int32)"> 4589 <member name="P:HttpServer.HttpClientContext.Secured">
6373 <summary> 4590 <summary>
6374 Assign line text 4591 Using SSL or other encryption method.
6375 </summary> 4592 </summary>
6376 <param name="line"></param>
6377 <param name="whiteSpaces"></param>
6378 <param name="intendation"></param>
6379 </member> 4593 </member>
6380 <member name="M:HttpServer.Rendering.Haml.LineInfo.TrimRight(System.Int32)"> 4594 <member name="P:HttpServer.HttpClientContext.IsSecured">
6381 <summary> 4595 <summary>
6382 4596 Using SSL or other encryption method.
6383 </summary> 4597 </summary>
6384 <param name="count"></param>
6385 <exception cref="T:System.InvalidOperationException">If extra lines have been added.</exception>
6386 </member> 4598 </member>
6387 <member name="P:HttpServer.Rendering.Haml.LineInfo.AppendNextLine"> 4599 <member name="P:HttpServer.HttpClientContext.LogWriter">
6388 <summary> 4600 <summary>
6389 If the next line should be appended to us (multi line) 4601 Specify which logger to use.
6390 </summary> 4602 </summary>
6391 </member> 4603 </member>
6392 <member name="P:HttpServer.Rendering.Haml.LineInfo.Children"> 4604 <member name="P:HttpServer.HttpClientContext.Stream">
6393 <summary> 4605 <summary>
6394 Do NOT add yourself using the Add methods of the linkedList. 4606 Gets or sets the network stream.
6395 Parent property will add node.
6396 </summary> 4607 </summary>
6397 </member> 4608 </member>
6398 <member name="P:HttpServer.Rendering.Haml.LineInfo.UnparsedData"> 4609 <member name="P:HttpServer.HttpClientContext.RemoteAddress">
6399 <summary> 4610 <summary>
6400 Untouched line text 4611 Gets or sets IP address that the client connected from.
6401 </summary> 4612 </summary>
6402 </member> 4613 </member>
6403 <member name="P:HttpServer.Rendering.Haml.LineInfo.HasChildren"> 4614 <member name="P:HttpServer.HttpClientContext.RemotePort">
6404 <summary> 4615 <summary>
6405 Has one or more children (intented more that this one) 4616 Gets or sets port that the client connected from.
6406 </summary> 4617 </summary>
6407 </member> 4618 </member>
6408 <member name="P:HttpServer.Rendering.Haml.LineInfo.Intendation"> 4619 <member name="E:HttpServer.HttpClientContext.Disconnected">
6409 <summary> 4620 <summary>
6410 Number of intends (two spaces = 1, one tab = 1) 4621 The context have been disconnected.
6411 </summary> 4622 </summary>
4623 <remarks>
4624 Event can be used to clean up a context, or to reuse it.
4625 </remarks>
6412 </member> 4626 </member>
6413 <member name="P:HttpServer.Rendering.Haml.LineInfo.LineNumber"> 4627 <member name="E:HttpServer.HttpClientContext.RequestReceived">
6414 <summary> 4628 <summary>
6415 Line number 4629 A request have been received in the context.
6416 </summary> 4630 </summary>
6417 </member> 4631 </member>
6418 <member name="P:HttpServer.Rendering.Haml.LineInfo.Parent"> 4632 <member name="T:HttpServer.Helpers.XmlHelper">
6419 <summary> 4633 <summary>
6420 Parent node (one level up in intendation) 4634 Helpers to make XML handling easier
6421 </summary> 4635 </summary>
6422 </member> 4636 </member>
6423 <member name="P:HttpServer.Rendering.Haml.LineInfo.Data"> 4637 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
6424 <summary> 4638 <summary>
6425 All line data generated on one line 4639 Serializes object to XML.
6426 </summary> 4640 </summary>
4641 <param name="value">object to serialize.</param>
4642 <returns>XML</returns>
4643 <remarks>
4644 Removes name spaces and adds indentation
4645 </remarks>
6427 </member> 4646 </member>
6428 <member name="P:HttpServer.Rendering.Haml.LineInfo.UnfinishedRule"> 4647 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
6429 <summary> 4648 <summary>
6430 IRule have not got all needed information yet, 4649 Create an object from a XML string
6431 keep appending lines to this LineInfo until rule says that it's done.
6432 </summary> 4650 </summary>
4651 <typeparam name="T">Type of object</typeparam>
4652 <param name="xml">XML string</param>
4653 <returns>object</returns>
6433 </member> 4654 </member>
6434 <member name="P:HttpServer.Rendering.Haml.LineInfo.WhiteSpaces"> 4655 <member name="T:HttpServer.Rules.RegexRedirectRule">
6435 <summary> 4656 <summary>
6436 Number of whitespaces before actual entry beings. 4657 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
4658 a regular expression can be used to identify redirect URLs and their targets.
6437 </summary> 4659 </summary>
4660 <example>
4661 <![CDATA[
4662 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
4663 ]]>
4664 </example>
6438 </member> 4665 </member>
6439 <member name="P:HttpServer.Rendering.Haml.LineInfo.SelfClosed"> 4666 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)">
6440 <summary> 4667 <summary>
6441 True if node is selfclosed (i.e. &lt;br /&gt;) 4668 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
6442 </summary> 4669 </summary>
4670 <param name="fromUrlExpression">Expression to match URL</param>
4671 <param name="toUrlExpression">Expression to generate URL</param>
4672 <example>
4673 <![CDATA[
4674 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
4675 Result of ie. /employee1 will then be /user/employee1
4676 ]]>
4677 </example>
6443 </member> 4678 </member>
6444 <member name="M:HttpServer.Rendering.Haml.Nodes.DocTypeTag.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 4679 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
6445 <summary> 4680 <summary>
6446 Parse node contents add return a fresh node. 4681 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
6447 </summary> 4682 </summary>
6448 <param name="prototypes">List containing all node types</param> 4683 <param name="fromUrlExpression">Expression to match URL</param>
6449 <param name="parent">Node that this is a subnode to. Can be null</param> 4684 <param name="toUrlExpression">Expression to generate URL</param>
6450 <param name="line">Line to parse</param> 4685 <param name="options">Regular expression options to use, can be null</param>
6451 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param> 4686 <example>
6452 <returns>A node corresponding to the bla bla; null if parsing failed.</returns> 4687 <![CDATA[
6453 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception> 4688 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
4689 Result of ie. /employee1 will then be /user/employee1
4690 ]]>
4691 </example>
6454 </member> 4692 </member>
6455 <member name="M:HttpServer.Rendering.Haml.Nodes.DocTypeTag.CanHandle(System.String,System.Boolean)"> 4693 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)">
6456 <summary> 4694 <summary>
6457 determines if this node can handle the line (by checking the first word); 4695 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
6458 </summary> 4696 </summary>
6459 <param name="word">Controller char (word)</param> 4697 <param name="fromUrlExpression">Expression to match URL</param>
6460 <returns>true if text belongs to this node type</returns> 4698 <param name="toUrlExpression">Expression to generate URL</param>
6461 <param name="firstNode">First node on line, used since some nodes cannot exist on their own on a line.</param> 4699 <param name="options">Regular expression options to apply</param>
4700 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
4701 <example>
4702 <![CDATA[
4703 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
4704 Result of ie. /employee1 will then be /user/employee1
4705 ]]>
4706 </example>
4707 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
4708 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/>
6462 </member> 4709 </member>
6463 <member name="M:HttpServer.Rendering.Haml.Nodes.DocTypeTag.ToHtml"> 4710 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
6464 <summary> 4711 <summary>
6465 Convert node to HTML (with ASP-tags) 4712 Process the incoming request.
6466 </summary> 4713 </summary>
6467 <returns>HTML string</returns> 4714 <param name="request">incoming HTTP request</param>
6468 <exception cref="T:System.NotImplementedException"></exception> 4715 <param name="response">outgoing HTTP response</param>
4716 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
4717 <remarks>
4718 returning true means that no modules will get the request. Returning true is typically being done
4719 for redirects.
4720 </remarks>
4721 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
6469 </member> 4722 </member>
6470 <member name="M:HttpServer.Rendering.Haml.Nodes.DocTypeTag.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 4723 <member name="T:HttpServer.Parser.HttpRequestParser">
6471 <summary> 4724 <summary>
6472 Convert the node to c# code 4725 Parses a HTTP request directly from a stream
6473 </summary> 4726 </summary>
6474 <param name="inString">True if we are inside the internal stringbuilder</param>
6475 <param name="smallEnough">true if all subnodes fit on one line</param>
6476 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param>
6477 <returns>c# code</returns>
6478 </member> 4727 </member>
6479 <member name="P:HttpServer.Rendering.Haml.Nodes.DocTypeTag.IsTextNode"> 4728 <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)">
6480 <summary> 4729 <summary>
6481 Text nodes should be added as child. 4730 Create a new request parser
6482 </summary> 4731 </summary>
4732 <param name="logWriter">delegate receiving log entries.</param>
6483 </member> 4733 </member>
6484 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs"> 4734 <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)">
6485 <summary> 4735 <summary>
6486 Used to inform http server that 4736 Add a number of bytes to the body
6487 </summary> 4737 </summary>
4738 <param name="buffer">buffer containing more body bytes.</param>
4739 <param name="offset">starting offset in buffer</param>
4740 <param name="count">number of bytes, from offset, to read.</param>
4741 <returns>offset to continue from.</returns>
6488 </member> 4742 </member>
6489 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)"> 4743 <member name="M:HttpServer.Parser.HttpRequestParser.Clear">
6490 <summary> 4744 <summary>
6491 Eventarguments used when an exception is thrown by a module 4745 Remove all state information for the request.
6492 </summary> 4746 </summary>
6493 <param name="e">the exception</param>
6494 </member> 4747 </member>
6495 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception"> 4748 <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)">
6496 <summary> 4749 <summary>
6497 Exception thrown in a module 4750 Parse request line
6498 </summary> 4751 </summary>
4752 <param name="value"></param>
4753 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
4754 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
6499 </member> 4755 </member>
6500 <member name="T:HttpServer.Controllers.ViewController"> 4756 <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)">
6501 <summary> 4757 <summary>
6502 View controllers integrates the templates, by adding 4758 We've parsed a new header.
6503 Render methods.
6504 </summary> 4759 </summary>
4760 <param name="name">Name in lower case</param>
4761 <param name="value">Value, unmodified.</param>
4762 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
6505 </member> 4763 </member>
6506 <member name="M:HttpServer.Controllers.ViewController.#ctor(HttpServer.Rendering.TemplateManager)"> 4764 <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
6507 <summary> 4765 <summary>
6508 Create a new <see cref="T:HttpServer.Controllers.ViewController"/>. 4766 Parse a message
6509 </summary> 4767 </summary>
4768 <param name="buffer">bytes to parse.</param>
4769 <param name="offset">where in buffer that parsing should start</param>
4770 <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param>
4771 <returns>offset (where to start parsing next).</returns>
4772 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
6510 </member> 4773 </member>
6511 <member name="M:HttpServer.Controllers.ViewController.#ctor(HttpServer.Controllers.ViewController)"> 4774 <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter">
6512 <summary> 4775 <summary>
6513 Create a new <see cref="T:HttpServer.Controllers.ViewController"/>. 4776 Gets or sets the log writer.
6514 </summary> 4777 </summary>
6515 <param name="controller">prototype to copy information from.</param>
6516 </member> 4778 </member>
6517 <member name="M:HttpServer.Controllers.ViewController.Render(System.Object[])"> 4779 <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState">
6518 <summary> 4780 <summary>
6519 Render template for the currently invoked method. 4781 Current state in parser.
6520 </summary> 4782 </summary>
6521 <param name="args">arguments/parameters used in template</param>
6522 <returns>template generated content</returns>
6523 <remarks>calls RenderActionWithErrors</remarks>
6524 </member> 4783 </member>
6525 <member name="M:HttpServer.Controllers.ViewController.RenderAction(System.String,System.Object[])"> 4784 <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted">
6526 <summary> 4785 <summary>
6527 Render contents into a template. 4786 A request have been successfully parsed.
6528 </summary> 4787 </summary>
6529 <param name="method">method/template to generate</param>
6530 <param name="args">arguments/parameters used in template</param>
6531 <returns>template generated content</returns>
6532 <remarks>calls RenderActionWithErrors.</remarks>
6533 </member> 4788 </member>
6534 <member name="M:HttpServer.Controllers.ViewController.MergeArguments(System.Object[])"> 4789 <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived">
6535 <summary> 4790 <summary>
6536 Merge arguments array and Arguments property. 4791 More body bytes have been received.
6537 </summary> 4792 </summary>
6538 <param name="args">Arguments array to merge</param>
6539 <returns>arguments/parameters that can be used in the template.</returns>
6540 <remarks>Will add Request/Response/Session arguments</remarks>
6541 </member> 4793 </member>
6542 <member name="M:HttpServer.Controllers.ViewController.RenderErrors(System.String,System.Object[])"> 4794 <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived">
6543 <summary> 4795 <summary>
6544 Renders errors from the <see cref="P:HttpServer.Controllers.ViewController.Errors"/> property into the 4796 Request line have been received.
6545 current method template, or as a JavaScript alert if the request is Ajax.
6546 </summary> 4797 </summary>
6547 <param name="method">name of the currently invoked method.</param>
6548 <param name="arguments">arguments used in the method template.</param>
6549 <returns>generated string</returns>
6550 <remarks>Creates a JavaScript Alert box if request is Ajax.</remarks>
6551 </member> 4798 </member>
6552 <member name="M:HttpServer.Controllers.ViewController.RenderErrors(System.Collections.Specialized.NameValueCollection,System.String,System.Object[])"> 4799 <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived">
6553 <summary> 4800 <summary>
6554 Renders errors from the <see cref="P:HttpServer.Controllers.ViewController.Errors"/> property into the 4801 A header have been received.
6555 current method template, or as a JavaScript alert if the request is Ajax.
6556 </summary> 4802 </summary>
6557 <param name="errors">A collection of errors.</param>
6558 <param name="method">name of the currently invoked method.</param>
6559 <param name="arguments">arguments used in the method template.</param>
6560 <returns>generated string</returns>
6561 <remarks>Creates a JavaScript Alert box if request is Ajax.</remarks>
6562 </member> 4803 </member>
6563 <member name="M:HttpServer.Controllers.ViewController.RenderJavascript(System.String)"> 4804 <member name="T:HttpServer.LogPrio">
6564 <summary> 4805 <summary>
6565 Switches content-type to "text/JavaScript" and returns content. 4806 Priority for log entries
6566 </summary> 4807 </summary>
6567 <param name="js">JavaScript to send to the client.</param> 4808 <seealso cref="T:HttpServer.ILogWriter"/>
6568 <returns>JavaScript</returns>
6569 </member> 4809 </member>
6570 <member name="M:HttpServer.Controllers.ViewController.RenderJsErrors(System.Collections.Specialized.NameValueCollection)"> 4810 <member name="F:HttpServer.LogPrio.Trace">
6571 <summary> 4811 <summary>
6572 Creates a JavaScript "alert" filled with all errors. 4812 Very detailed logs to be able to follow the flow of the program.
6573 </summary> 4813 </summary>
6574 <param name="errors"></param>
6575 <returns>a</returns>
6576 </member> 4814 </member>
6577 <member name="M:HttpServer.Controllers.ViewController.RenderLayout(System.String,System.String)"> 4815 <member name="F:HttpServer.LogPrio.Debug">
6578 <summary> 4816 <summary>
6579 renders one of the layouts 4817 Logs to help debug errors in the application
6580 </summary> 4818 </summary>
6581 <param name="layoutName">layout to render (should be found in the "views\\layouts" folder).</param>
6582 <param name="contents">contents will be put in the template variable called "text".</param>
6583 <returns>generated text/HTML.</returns>
6584 </member> 4819 </member>
6585 <member name="M:HttpServer.Controllers.ViewController.RenderTemplate(System.String,System.String,System.Object[])"> 4820 <member name="F:HttpServer.LogPrio.Info">
6586 <summary> 4821 <summary>
6587 Render a template. 4822 Information to be able to keep track of state changes etc.
6588 </summary> 4823 </summary>
6589 <remarks>Merges the Arguments property with the <c>args</c> parameter and pass those to the template.</remarks>
6590 <param name="controller">controller name are used as a folder name when looking for the template.</param>
6591 <param name="method">method are used as filename when looking for the template.</param>
6592 <param name="args">arguments that should be passed to the template.</param>
6593 <returns></returns>
6594 </member> 4824 </member>
6595 <member name="M:HttpServer.Controllers.ViewController.SetupRequest(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 4825 <member name="F:HttpServer.LogPrio.Warning">
6596 <summary> 4826 <summary>
6597 Invoked each time a new request is about to be invoked. 4827 Something did not go as we expected, but it's no problem.
6598 </summary> 4828 </summary>
6599 <remarks>Can be used to clear old data.</remarks>
6600 <param name="request"></param>
6601 <param name="response"></param>
6602 <param name="session"></param>
6603 </member> 4829 </member>
6604 <member name="P:HttpServer.Controllers.ViewController.Arguments"> 4830 <member name="F:HttpServer.LogPrio.Error">
6605 <summary> 4831 <summary>
6606 Arguments that are being used in the templates. 4832 Something that should not fail failed, but we can still keep
4833 on going.
6607 </summary> 4834 </summary>
6608 </member> 4835 </member>
6609 <member name="P:HttpServer.Controllers.ViewController.Errors"> 4836 <member name="F:HttpServer.LogPrio.Fatal">
6610 <summary> 4837 <summary>
6611 A set of errors that occurred during request processing. 4838 Something failed, and we cannot handle it properly.
6612 Key should be argument name (if argument error, otherwise <see cref="F:System.String.Empty"/>), value should be
6613 the error message.
6614 </summary> 4839 </summary>
6615 <remarks>Errors can be rendered into templates using the <see cref="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)"/> method.</remarks>
6616 <seealso cref="T:HttpServer.Helpers.WebHelper"/>
6617 </member> 4840 </member>
6618 <member name="P:HttpServer.Controllers.ViewController.IncludeLayoutInAjaxRequests"> 4841 <member name="T:HttpServer.ILogWriter">
6619 <summary> 4842 <summary>
6620 True if we always should render contents inside page layouts when request is Ajax. 4843 Interface used to write to log files.
6621 </summary> 4844 </summary>
6622 <remarks>default is false.</remarks>
6623 </member> 4845 </member>
6624 <member name="P:HttpServer.Controllers.ViewController.Layout"> 4846 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
6625 <summary> 4847 <summary>
6626 Which page layout to use (without file extension) 4848 Write an entry to the log file.
6627 </summary> 4849 </summary>
6628 <remarks> 4850 <param name="source">object that is writing to the log</param>
6629 <para> 4851 <param name="priority">importance of the log message</param>
6630 Page layouts should be places in the Views\Layouts folder. 4852 <param name="message">the message</param>
6631 </para>
6632 <para>
6633 default is "Application"
6634 </para>
6635 </remarks>
6636 </member> 4853 </member>
6637 <member name="P:HttpServer.Controllers.ViewController.Title"> 4854 <member name="T:HttpServer.ConsoleLogWriter">
6638 <summary> 4855 <summary>
6639 Page title (are added as a parameter to the layout template, use it in &lt;title&gt; HTML tag. 4856 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
6640 </summary> 4857 </summary>
4858 <seealso cref="T:HttpServer.ILogWriter"/>
6641 </member> 4859 </member>
6642 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs"> 4860 <member name="F:HttpServer.ConsoleLogWriter.Instance">
6643 <summary> 4861 <summary>
6644 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared 4862 The actual instance of this class.
6645 </summary> 4863 </summary>
6646 </member> 4864 </member>
6647 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)"> 4865 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
6648 <summary> 4866 <summary>
6649 Instantiates the arguments for the event 4867 Logwriters the specified source.
6650 </summary> 4868 </summary>
6651 <param name="expired">True if the session is cleared due to expiration</param> 4869 <param name="source">object that wrote the logentry.</param>
4870 <param name="prio">Importance of the log message</param>
4871 <param name="message">The message.</param>
6652 </member> 4872 </member>
6653 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired"> 4873 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)">
6654 <summary> 4874 <summary>
6655 Returns true if the session is cleared due to expiration 4875 Get color for the specified logprio
6656 </summary> 4876 </summary>
4877 <param name="prio">prio for the log entry</param>
4878 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
6657 </member> 4879 </member>
6658 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler"> 4880 <member name="T:HttpServer.NullLogWriter">
6659 <summary> 4881 <summary>
6660 Delegate for when a IHttpSession is cleared 4882 Default log writer, writes everything to null (nowhere).
6661 </summary> 4883 </summary>
6662 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param> 4884 <seealso cref="T:HttpServer.ILogWriter"/>
6663 <param name="args">Arguments for the clearing</param>
6664 </member> 4885 </member>
6665 <member name="M:HttpServer.Rendering.Haml.Nodes.IdNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 4886 <member name="F:HttpServer.NullLogWriter.Instance">
6666 <summary> 4887 <summary>
6667 Parse node contents add return a fresh node. 4888 The logging instance.
6668 </summary> 4889 </summary>
6669 <param name="prototypes">List containing all node types</param>
6670 <param name="parent">Node that this is a subnode to. Can be null</param>
6671 <param name="line">Line to parse</param>
6672 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param>
6673 <returns>A node corresponding to the bla bla; null if parsing failed.</returns>
6674 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception>
6675 </member> 4890 </member>
6676 <member name="M:HttpServer.Rendering.Haml.Nodes.IdNode.CanHandle(System.String,System.Boolean)"> 4891 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
6677 <summary> 4892 <summary>
6678 determines if this node can handle the line (by checking the first word); 4893 Writes everything to null
6679 </summary> 4894 </summary>
6680 <param name="word">Controller char (word)</param> 4895 <param name="source">object that wrote the log entry.</param>
6681 <returns>true if text belongs to this node type</returns> 4896 <param name="prio">Importance of the log message</param>
6682 <param name="firstNode">first node on line</param> 4897 <param name="message">The message.</param>
6683 </member> 4898 </member>
6684 <member name="M:HttpServer.Rendering.Haml.Nodes.IdNode.ToHtml"> 4899 <member name="T:HttpServer.HttpParam">
6685 <summary> 4900 <summary>
6686 Convert node to HTML (with ASP-tags) 4901 Returns item either from a form or a query string (checks them in that order)
6687 </summary> 4902 </summary>
6688 <returns>HTML string</returns>
6689 </member> 4903 </member>
6690 <member name="M:HttpServer.Rendering.Haml.Nodes.IdNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 4904 <member name="F:HttpServer.HttpParam.Empty">
4905 <summary> Representation of a non-initialized HttpParam </summary>
4906 </member>
4907 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)">
4908 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary>
4909 </member>
4910 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)">
6691 <summary> 4911 <summary>
6692 Convert the node to c# code 4912 The add method is not availible for HttpParam
4913 since HttpParam checks both Request.Form and Request.QueryString
6693 </summary> 4914 </summary>
6694 <param name="inString">True if we are inside the internal stringbuilder</param> 4915 <param name="name">name identifying the value</param>
6695 <param name="smallEnough">true if all subnodes fit on one line</param> 4916 <param name="value">value to add</param>
6696 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param> 4917 <exception cref="T:System.NotImplementedException"></exception>
6697 <returns>c# code</returns>
6698 </member> 4918 </member>
6699 <member name="T:HttpServer.Rendering.Haml.NodeList"> 4919 <member name="M:HttpServer.HttpParam.Contains(System.String)">
6700 <summary> 4920 <summary>
6701 A list of prototype nodes. 4921 Checks whether the form or querystring has the specified value
6702 </summary> 4922 </summary>
4923 <param name="name">Name, case sensitive</param>
4924 <returns>true if found; otherwise false.</returns>
6703 </member> 4925 </member>
6704 <member name="M:HttpServer.Rendering.Haml.NodeList.CreateNode(System.String,HttpServer.Rendering.Haml.Nodes.Node)"> 4926 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
6705 <summary> 4927 <summary>
6706 Creates the node. 4928 Returns an enumerator that iterates through the collection.
6707 </summary> 4929 </summary>
6708 <param name="word">node identifier.</param> 4930
6709 <param name="parent">parent node.</param> 4931 <returns>
6710 <returns>created node if identifier was found; otherwise null.</returns> 4932 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
4933 </returns>
4934 <filterpriority>1</filterpriority>
6711 </member> 4935 </member>
6712 <member name="M:HttpServer.Rendering.Haml.NodeList.GetPrototype(System.String,System.Boolean)"> 4936 <member name="M:HttpServer.HttpParam.GetEnumerator">
6713 <summary> 4937 <summary>
6714 4938 Returns an enumerator that iterates through a collection.
6715 </summary> 4939 </summary>
6716 <param name="word"></param> 4940
6717 <param name="firstNode">first node on line</param> 4941 <returns>
6718 <returns></returns> 4942 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
4943 </returns>
4944 <filterpriority>2</filterpriority>
6719 </member> 4945 </member>
6720 <member name="M:HttpServer.Rendering.Haml.NodeList.Add(HttpServer.Rendering.Haml.Nodes.Node)"> 4946 <member name="P:HttpServer.HttpParam.Item(System.String)">
6721 <summary> 4947 <summary>
6722 Add a prototype 4948 Fetch an item from the form or querystring (in that order).
6723 </summary> 4949 </summary>
6724 <param name="node">prototype node</param> 4950 <param name="name"></param>
4951 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
6725 </member> 4952 </member>
6726 <member name="T:HttpServer.HttpModules.FileModule"> 4953 <member name="T:HttpServer.HttpFile">
6727 <summary> 4954 <summary>
6728 The purpose of this module is to serve files. 4955 Container class for posted files
6729 </summary> 4956 </summary>
6730 </member> 4957 </member>
6731 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)"> 4958 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
6732 <summary> 4959 <summary>
6733 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class. 4960 Creates a container for a posted file
6734 </summary> 4961 </summary>
6735 <param name="baseUri">Uri to serve, for instance "/files/"</param> 4962 <param name="name">The identifier of the post field</param>
6736 <param name="basePath">Path on hard drive where we should start looking for files</param> 4963 <param name="filename">The file path</param>
6737 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging webbrowser to cache files</param> 4964 <param name="contentType">The content type of the file</param>
4965 <param name="uploadFilename">The name of the file uploaded</param>
4966 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
6738 </member> 4967 </member>
6739 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)"> 4968 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
6740 <summary> 4969 <summary>
6741 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class. 4970 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
6742 </summary> 4971 </summary>
6743 <param name="baseUri">Uri to serve, for instance "/files/"</param> 4972 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
6744 <param name="basePath">Path on hard drive where we should start looking for files</param>
6745 </member> 4973 </member>
6746 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes"> 4974 <member name="M:HttpServer.HttpFile.Finalize">
4975 <summary>Destructor disposing the file</summary>
4976 </member>
4977 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
6747 <summary> 4978 <summary>
6748 Mimtypes that this class can handle per default 4979 Deletes the temporary file
6749 </summary> 4980 </summary>
4981 <param name="disposing">True if manual dispose</param>
6750 </member> 4982 </member>
6751 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)"> 4983 <member name="M:HttpServer.HttpFile.Dispose">
6752 <summary> 4984 <summary>
6753 Determines if the request should be handled by this module. 4985 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
6754 Invoked by the HttpServer
6755 </summary> 4986 </summary>
6756 <param name="uri"></param>
6757 <returns>true if this module should handle it.</returns>
6758 </member> 4987 </member>
6759 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})"> 4988 <member name="P:HttpServer.HttpFile.Name">
6760 <summary> 4989 <summary>
6761 check if source contains any of the chars. 4990 The name/id of the file
6762 </summary> 4991 </summary>
6763 <param name="source"></param>
6764 <param name="chars"></param>
6765 <returns></returns>
6766 </member> 4992 </member>
6767 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 4993 <member name="P:HttpServer.HttpFile.Filename">
6768 <summary> 4994 <summary>
6769 Method that process the url 4995 The full file path
6770 </summary> 4996 </summary>
6771 <param name="request">Information sent by the browser about the request</param>
6772 <param name="response">Information that is being sent back to the client.</param>
6773 <param name="session">Session used to </param>
6774 </member> 4997 </member>
6775 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)"> 4998 <member name="P:HttpServer.HttpFile.UploadFilename">
6776 <summary> 4999 <summary>
6777 return a file extension from an absolute uri path (or plain filename) 5000 The name of the uploaded file
6778 </summary> 5001 </summary>
6779 <param name="uri"></param>
6780 <returns></returns>
6781 </member> 5002 </member>
6782 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes"> 5003 <member name="P:HttpServer.HttpFile.ContentType">
6783 <summary> 5004 <summary>
6784 List with all mime-type that are allowed. 5005 The type of file
6785 </summary> 5006 </summary>
6786 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
6787 </member> 5007 </member>
6788 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars"> 5008 <member name="T:HttpServer.HttpContextFactory">
6789 <summary> 5009 <summary>
6790 characters that may not exist in a path. 5010 Used to create and reuse contexts.
6791 </summary> 5011 </summary>
6792 <example>
6793 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
6794 </example>
6795 </member> 5012 </member>
6796 <member name="T:HttpServer.HttpHelper"> 5013 <member name="T:HttpServer.IHttpContextFactory">
6797 <summary> 5014 <summary>
6798 Generic helper functions for Http 5015 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es.
6799 </summary> 5016 </summary>
6800 </member> 5017 </member>
6801 <member name="F:HttpServer.HttpHelper.HTTP10"> 5018 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
6802 <summary> 5019 <summary>
6803 Version string for HTTP v1.0 5020 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
6804 </summary> 5021 </summary>
5022 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5023 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
6805 </member> 5024 </member>
6806 <member name="F:HttpServer.HttpHelper.HTTP11"> 5025 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
6807 <summary> 5026 <summary>
6808 Version string for HTTP v1.1 5027 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
6809 </summary> 5028 </summary>
5029 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5030 <param name="certificate">HTTPS certificate to use.</param>
5031 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
5032 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
6810 </member> 5033 </member>
6811 <member name="F:HttpServer.HttpHelper.EmptyUri"> 5034 <member name="E:HttpServer.IHttpContextFactory.RequestReceived">
6812 <summary> 5035 <summary>
6813 An empty url 5036 A request have been received from one of the contexts.
6814 </summary> 5037 </summary>
6815 </member> 5038 </member>
6816 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)"> 5039 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)">
6817 <summary> 5040 <summary>
6818 Parses a querystring. 5041 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class.
6819 </summary> 5042 </summary>
6820 <param name="queryString">Querystring (url decoded)</param> 5043 <param name="writer">The writer.</param>
6821 <returns>A HttpInput object if successful; otherwise HttpInput.Empty</returns> 5044 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param>
5045 <param name="factory">Used to create a request parser.</param>
6822 </member> 5046 </member>
6823 <member name="T:HttpServer.Exceptions.ForbiddenException"> 5047 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
6824 <summary> 5048 <summary>
6825 The server understood the request, but is refusing to fulfill it. 5049 Create a new context.
6826 Authorization will not help and the request SHOULD NOT be repeated.
6827 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
6828 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
6829 available to the client, the status code 404 (Not Found) can be used instead.
6830
6831 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
6832 </summary> 5050 </summary>
5051 <param name="isSecured">true if socket is running HTTPS.</param>
5052 <param name="endPoint">Client that connected</param>
5053 <param name="stream">Network/SSL stream.</param>
5054 <returns>A context.</returns>
6833 </member> 5055 </member>
6834 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)"> 5056 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
6835 <summary> 5057 <summary>
6836 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class. 5058 Create a new context.
6837 </summary> 5059 </summary>
6838 <param name="errorMsg">error message</param> 5060 <param name="isSecured">true if HTTPS is used.</param>
5061 <param name="endPoint">Remote client</param>
5062 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param>
5063 <returns>A new context (always).</returns>
6839 </member> 5064 </member>
6840 <member name="T:HttpServer.Authentication.AuthenticationHandler"> 5065 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
6841 <summary> 5066 <summary>
6842 Delegate used to let authentication modules authenticate the username and password. 5067 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
6843 </summary> 5068 </summary>
6844 <param name="realm">Realm that the user want to authenticate in</param> 5069 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
6845 <param name="userName">Username specified by client</param> 5070 <param name="certificate">HTTPS certificate to use.</param>
6846 <param name="password">Password supplied by the delagete</param> 5071 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
6847 <param name="login">object that will be stored in a session variable called <see cref="F:HttpServer.Authentication.AuthModule.AuthenticationTag"/> if authentication was successful.</param> 5072 <returns>
6848 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception> 5073 A created <see cref="T:HttpServer.IHttpClientContext"/>.
5074 </returns>
6849 </member> 5075 </member>
6850 <member name="T:HttpServer.Authentication.AuthRequiredDelegate"> 5076 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
6851 <summary> 5077 <summary>
6852 Let's you decide on a system level if authentication is requried. 5078 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
6853 You can also decide if authentication is required in each HttpModule. 5079 </summary>
5080 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5081 <returns>
5082 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
5083 </returns>
5084 </member>
5085 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs">
5086 <summary>
5087 True if detailed trace logs should be written.
5088 </summary>
5089 </member>
5090 <member name="E:HttpServer.HttpContextFactory.RequestReceived">
5091 <summary>
5092 A request have been received from one of the contexts.
6854 </summary> 5093 </summary>
6855 <param name="request">Http request from client</param>
6856 <returns>true if user should be authenticated.</returns>
6857 <remarks>throw ForbiddenException if no more attempts are allowed.</remarks>
6858 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
6859 </member> 5094 </member>
6860 <member name="T:HttpServer.Rendering.Haml.Nodes.ClassNode"> 5095 <member name="T:HttpServer.ReusableSocketNetworkStream">
6861 <summary> 5096 <summary>
6862 Represents a html class node. 5097 Custom network stream to mark sockets as reusable when disposing the stream.
6863 </summary> 5098 </summary>
6864 </member> 5099 </member>
6865 <member name="M:HttpServer.Rendering.Haml.Nodes.ClassNode.Parse(HttpServer.Rendering.Haml.NodeList,HttpServer.Rendering.Haml.Nodes.Node,HttpServer.Rendering.Haml.LineInfo,System.Int32@)"> 5100 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)">
6866 <summary> 5101 <summary>
6867 Parse node contents add return a fresh node. 5102 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />.
6868 </summary> 5103 </summary>
6869 <param name="prototypes">List containing all node types</param> 5104 <param name="socket">
6870 <param name="parent">Node that this is a subnode to. Can be null</param> 5105 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
6871 <param name="line">Line to parse</param> 5106 </param>
6872 <param name="offset">Where to start the parsing. Should be set to where the next node should start parsing.</param> 5107 <exception cref="T:System.ArgumentNullException">
6873 <returns>A node corresponding to the bla bla; null if parsing failed.</returns> 5108 The <paramref name="socket" /> parameter is null.
6874 <exception cref="T:HttpServer.Rendering.CodeGeneratorException"></exception> 5109 </exception>
5110 <exception cref="T:System.IO.IOException">
5111 The <paramref name="socket" /> parameter is not connected.
5112 -or-
5113 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" />.
5114 -or-
5115 The <paramref name="socket" /> parameter is in a nonblocking state.
5116 </exception>
6875 </member> 5117 </member>
6876 <member name="M:HttpServer.Rendering.Haml.Nodes.ClassNode.CanHandle(System.String,System.Boolean)"> 5118 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)">
6877 <summary> 5119 <summary>
6878 determines if this node can handle the line (by checking the first word); 5120 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.
6879 </summary> 5121 </summary>
6880 <param name="word">Controller char (word)</param> 5122 <param name="socket">
6881 <returns>true if text belongs to this node type</returns> 5123 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
6882 <param name="firstNode">first node on line</param> 5124 </param>
5125 <param name="ownsSocket">
5126 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.
5127 </param>
5128 <exception cref="T:System.ArgumentNullException">
5129 The <paramref name="socket" /> parameter is null.
5130 </exception>
5131 <exception cref="T:System.IO.IOException">
5132 The <paramref name="socket" /> parameter is not connected.
5133 -or-
5134 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" />.
5135 -or-
5136 the <paramref name="socket" /> parameter is in a nonblocking state.
5137 </exception>
6883 </member> 5138 </member>
6884 <member name="M:HttpServer.Rendering.Haml.Nodes.ClassNode.ToHtml"> 5139 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)">
6885 <summary> 5140 <summary>
6886 Convert node to HTML (with ASP-tags) 5141 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.
6887 </summary> 5142 </summary>
6888 <returns>HTML string</returns> 5143 <param name="socket">
5144 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
5145 </param>
5146 <param name="access">
5147 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" />.
5148 </param>
5149 <exception cref="T:System.ArgumentNullException">
5150 The <paramref name="socket" /> parameter is null.
5151 </exception>
5152 <exception cref="T:System.IO.IOException">
5153 The <paramref name="socket" /> parameter is not connected.
5154 -or-
5155 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" />.
5156 -or-
5157 the <paramref name="socket" /> parameter is in a nonblocking state.
5158 </exception>
6889 </member> 5159 </member>
6890 <member name="M:HttpServer.Rendering.Haml.Nodes.ClassNode.ToCode(System.Boolean@,System.Boolean,System.Boolean)"> 5160 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)">
6891 <summary> 5161 <summary>
6892 Convert the node to c# code 5162 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.
5163 </summary>
5164 <param name="socket">
5165 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
5166 </param>
5167 <param name="access">
5168 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" />.
5169 </param>
5170 <param name="ownsSocket">
5171 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.
5172 </param>
5173 <exception cref="T:System.ArgumentNullException">
5174 The <paramref name="socket" /> parameter is null.
5175 </exception>
5176 <exception cref="T:System.IO.IOException">
5177 The <paramref name="socket" /> parameter is not connected.
5178 -or-
5179 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" />.
5180 -or-
5181 The <paramref name="socket" /> parameter is in a nonblocking state.
5182 </exception>
5183 </member>
5184 <member name="M:HttpServer.ReusableSocketNetworkStream.Close">
5185 <summary>
5186 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
6893 </summary> 5187 </summary>
6894 <param name="inString">True if we are inside the internal stringbuilder</param> 5188 </member>
6895 <param name="smallEnough">true if all subnodes fit on one line</param> 5189 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)">
6896 <param name="smallEnoughIsDefaultValue">smallEnough is a default value, recalc it</param> 5190 <summary>
6897 <returns>c# code</returns> 5191 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources.
5192 </summary>
5193 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
6898 </member> 5194 </member>
6899 <member name="T:HttpServer.FormDecoders.MultipartDecoder"> 5195 <member name="T:HttpServer.FormDecoders.MultipartDecoder">
6900 <summary> 5196 <summary>
@@ -6932,88 +5228,224 @@
6932 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 5228 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
6933 <returns>True if the decoder can parse the specified content type</returns> 5229 <returns>True if the decoder can parse the specified content type</returns>
6934 </member> 5230 </member>
6935 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine"> 5231 <member name="T:HttpServer.Sessions.MemorySession">
5232 <summary>
5233 A session stored in memory.
5234 </summary>
5235 </member>
5236 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
6936 <summary> 5237 <summary>
6937 5238
6938 </summary> 5239 </summary>
6939 <returns></returns> 5240 <param name="id">A unique id used by the sessions store to identify the session</param>
6940 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
6941 <exception cref="T:System.ObjectDisposedException"></exception>
6942 </member> 5241 </member>
6943 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element"> 5242 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
6944 <summary>Represents a field in a multipart form</summary> 5243 <summary>
5244 Id
5245 </summary>
5246 <param name="id"></param>
6945 </member> 5247 </member>
6946 <member name="T:HttpServer.ContentType"> 5248 <member name="M:HttpServer.Sessions.MemorySession.Clear">
6947 <summary> 5249 <summary>
6948 Lists content type mime types. 5250 Remove everything from the session
6949 </summary> 5251 </summary>
6950 </member> 5252 </member>
6951 <member name="F:HttpServer.ContentType.Text"> 5253 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
6952 <summary> 5254 <summary>
6953 text/plain 5255 Clears the specified expire.
6954 </summary> 5256 </summary>
5257 <param name="expires">True if the session is cleared due to expiration</param>
6955 </member> 5258 </member>
6956 <member name="F:HttpServer.ContentType.Html"> 5259 <member name="M:HttpServer.Sessions.MemorySession.Dispose">
6957 <summary> 5260 <summary>
6958 text/haml 5261 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
5262 </summary>
5263 <filterpriority>2</filterpriority>
5264 </member>
5265 <member name="P:HttpServer.Sessions.MemorySession.Id">
5266 <summary>
5267 Session id
6959 </summary> 5268 </summary>
6960 </member> 5269 </member>
6961 <member name="F:HttpServer.ContentType.Javascript"> 5270 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
6962 <summary> 5271 <summary>
6963 content type for javascript documents = application/javascript 5272 Should
5273 </summary>
5274 <param name="name">Name of the session variable</param>
5275 <returns>null if it's not set</returns>
5276 </member>
5277 <member name="P:HttpServer.Sessions.MemorySession.Accessed">
5278 <summary>
5279 when the session was last accessed.
6964 </summary> 5280 </summary>
6965 <remarks> 5281 <remarks>
6966 <para> 5282 Used to determine when the session should be removed.
6967 RFC 4329 states that text/javascript have been superseeded by
6968 application/javascript. You might still want to check browser versions
6969 since older ones do not support application/javascript.
6970 </para>
6971 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
6972 </remarks> 5283 </remarks>
6973 </member> 5284 </member>
6974 <member name="F:HttpServer.ContentType.Xml"> 5285 <member name="P:HttpServer.Sessions.MemorySession.Count">
6975 <summary> 5286 <summary>
6976 text/xml 5287 Number of values in the session
6977 </summary> 5288 </summary>
6978 </member> 5289 </member>
6979 <member name="T:HttpServer.ContentTypes"> 5290 <member name="P:HttpServer.Sessions.MemorySession.Changed">
6980 <summary> 5291 <summary>
6981 A list of content types 5292 Flag to indicate that the session have been changed
5293 and should be saved into the session store.
6982 </summary> 5294 </summary>
6983 </member> 5295 </member>
6984 <member name="M:HttpServer.ContentTypes.#ctor(System.String)"> 5296 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
6985 <summary> 5297 <summary>
6986 5298 Event triggered upon clearing the session
6987 </summary> 5299 </summary>
6988 <param name="types">Semicolon separated content types.</param>
6989 </member> 5300 </member>
6990 <member name="M:HttpServer.ContentTypes.GetEnumerator"> 5301 <member name="T:HttpServer.ResponseCookies">
6991 <summary> 5302 <summary>
6992 Returns an enumerator that iterates through a collection. 5303 Cookies that should be set.
5304 </summary>
5305 </member>
5306 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
5307 <summary>
5308 Adds a cookie in the collection.
5309 </summary>
5310 <param name="cookie">cookie to add</param>
5311 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
5312 </member>
5313 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)">
5314 <summary>
5315 Copy a request cookie
6993 </summary> 5316 </summary>
5317 <param name="cookie"></param>
5318 <param name="expires">When the cookie should expire</param>
5319 </member>
5320 <member name="M:HttpServer.ResponseCookies.GetEnumerator">
5321 <summary>
5322 Gets a collection enumerator on the cookie list.
5323 </summary>
5324 <returns>collection enumerator</returns>
5325 </member>
5326 <member name="M:HttpServer.ResponseCookies.Clear">
5327 <summary>
5328 Remove all cookies
5329 </summary>
5330 </member>
5331 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator">
5332 <summary>
5333 Returns an enumerator that iterates through the collection.
5334 </summary>
5335
6994 <returns> 5336 <returns>
6995 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection. 5337 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
6996 </returns> 5338 </returns>
5339 <filterpriority>1</filterpriority>
6997 </member> 5340 </member>
6998 <member name="M:HttpServer.ContentTypes.Contains(System.String)"> 5341 <member name="P:HttpServer.ResponseCookies.Count">
6999 <summary> 5342 <summary>
7000 Searches for the specified type 5343 Gets the count of cookies in the collection.
7001 </summary> 5344 </summary>
7002 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
7003 <returns>true if type was found.</returns>
7004 </member> 5345 </member>
7005 <member name="P:HttpServer.ContentTypes.First"> 5346 <member name="P:HttpServer.ResponseCookies.Item(System.String)">
7006 <summary> 5347 <summary>
7007 Get this first content type. 5348 Gets the cookie of a given identifier (null if not existing).
7008 </summary> 5349 </summary>
7009 </member> 5350 </member>
7010 <member name="P:HttpServer.ContentTypes.Item(System.String)"> 5351 <member name="T:HttpServer.RequestParserFactory">
7011 <summary> 5352 <summary>
7012 Fetch a content type 5353 Creates request parsers when needed.
7013 </summary> 5354 </summary>
7014 <param name="type">Part of type ("xml" would return "application/xml")</param> 5355 </member>
7015 <returns></returns> 5356 <member name="T:HttpServer.IRequestParserFactory">
7016 <remarks>All content types are in lower case.</remarks> 5357 <summary>
5358 Creates request parsers when needed.
5359 </summary>
5360 </member>
5361 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
5362 <summary>
5363 Create a new request parser.
5364 </summary>
5365 <param name="logWriter">Used when logging should be enabled.</param>
5366 <returns>A new request parser.</returns>
5367 </member>
5368 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
5369 <summary>
5370 Create a new request parser.
5371 </summary>
5372 <param name="logWriter">Used when logging should be enabled.</param>
5373 <returns>A new request parser.</returns>
5374 </member>
5375 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)">
5376 <summary>
5377 Add a component instance
5378 </summary>
5379 <typeparam name="T">Interface type</typeparam>
5380 <param name="instance">Instance to add</param>
5381 </member>
5382 <member name="M:HttpServer.ComponentProvider.Get``1">
5383 <summary>
5384 Get a component.
5385 </summary>
5386 <typeparam name="T">Interface type</typeparam>
5387 <returns>Component if registered, otherwise null.</returns>
5388 <remarks>
5389 Component will get created if needed.
5390 </remarks>
5391 </member>
5392 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)">
5393 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
5394 </member>
5395 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
5396 <summary>
5397 Checks if the specified component interface have been added.
5398 </summary>
5399 <param name="interfaceType"></param>
5400 <returns>true if found; otherwise false.</returns>
5401 </member>
5402 <member name="M:HttpServer.ComponentProvider.Add``2">
5403 <summary>
5404 Add a component.
5405 </summary>
5406 <typeparam name="InterfaceType">Type being requested.</typeparam>
5407 <typeparam name="InstanceType">Type being created.</typeparam>
5408 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception>
5409 </member>
5410 <member name="T:HttpServer.Exceptions.UnauthorizedException">
5411 <summary>
5412 The request requires user authentication. The response MUST include a
5413 WWW-Authenticate header field (section 14.47) containing a challenge
5414 applicable to the requested resource.
5415
5416 The client MAY repeat the request with a suitable Authorization header
5417 field (section 14.8). If the request already included Authorization
5418 credentials, then the 401 response indicates that authorization has been
5419 refused for those credentials. If the 401 response contains the same challenge
5420 as the prior response, and the user agent has already attempted authentication
5421 at least once, then the user SHOULD be presented the entity that was given in the response,
5422 since that entity might include relevant diagnostic information.
5423
5424 HTTP access authentication is explained in rfc2617:
5425 http://www.ietf.org/rfc/rfc2617.txt
5426
5427 (description is taken from
5428 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
5429 </summary>
5430 </member>
5431 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
5432 <summary>
5433 Create a new unauhtorized exception.
5434 </summary>
5435 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
5436 </member>
5437 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
5438 <summary>
5439 Create a new unauhtorized exception.
5440 </summary>
5441 <param name="message">reason to why the request was unauthorized.</param>
5442 <param name="inner">inner exception</param>
5443 </member>
5444 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
5445 <summary>
5446 Create a new unauhtorized exception.
5447 </summary>
5448 <param name="message">reason to why the request was unauthorized.</param>
7017 </member> 5449 </member>
7018 </members> 5450 </members>
7019</doc> 5451</doc>