source: binary-improvements/MapRendering/Web/API/WebAPI.cs@ 326

Last change on this file since 326 was 326, checked in by alloc, 6 years ago

More cleanup, allocation improvements

File size: 1.1 KB
Line 
1using System.Net;
2using System.Text;
3using AllocsFixes.JSON;
4
5namespace AllocsFixes.NetConnections.Servers.Web.API {
6 public abstract class WebAPI {
7 public readonly string Name;
8
9 protected WebAPI () {
10 Name = GetType ().Name;
11 }
12
13 public static void WriteJSON (HttpListenerResponse resp, JSONNode root) {
14 StringBuilder sb = new StringBuilder ();
15 root.ToString (sb);
16 byte[] buf = Encoding.UTF8.GetBytes (sb.ToString ());
17 resp.ContentLength64 = buf.Length;
18 resp.ContentType = "application/json";
19 resp.ContentEncoding = Encoding.UTF8;
20 resp.OutputStream.Write (buf, 0, buf.Length);
21 }
22
23 public static void WriteText (HttpListenerResponse _resp, string _text) {
24 byte[] buf = Encoding.UTF8.GetBytes (_text);
25 _resp.ContentLength64 = buf.Length;
26 _resp.ContentType = "text/plain";
27 _resp.ContentEncoding = Encoding.UTF8;
28 _resp.OutputStream.Write (buf, 0, buf.Length);
29 }
30
31 public abstract void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
32 int permissionLevel);
33
34 public virtual int DefaultPermissionLevel () {
35 return 0;
36 }
37 }
38}
Note: See TracBrowser for help on using the repository browser.