File: AsyncModule.cs

package info (click to toggle)
mono-reference-assemblies 3.12.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 604,240 kB
  • ctags: 625,505
  • sloc: cs: 3,967,741; xml: 2,793,081; ansic: 418,042; java: 60,435; sh: 14,833; makefile: 11,576; sql: 7,956; perl: 1,467; cpp: 1,446; yacc: 1,203; python: 598; asm: 422; sed: 16; php: 1
file content (36 lines) | stat: -rw-r--r-- 933 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Web;

namespace TestMonoWeb
{
	/// <summary>
	/// Summary description for AsyncModule.
	/// </summary>
	public class AsyncModule : IHttpModule
	{
		HttpApplication _app;

		public void Init(HttpApplication app) {
			app.AddOnPreRequestHandlerExecuteAsync(
				new BeginEventHandler(this.BeginPreHandlerExecute), 
				new EndEventHandler(this.EndPreHandlerExecute));

			_app = app;
		}

		IAsyncResult BeginPreHandlerExecute(Object source, EventArgs e, AsyncCallback cb, Object extraData) {
			((HttpApplication) source).Context.Response.Write("AsyncModule.BeginPreHandlerExecute()<br>\n");

			AsynchOperation asynch = new AsynchOperation(cb, _app.Context, extraData);
			asynch.StartAsyncWork();
			return asynch;
		}
		
		void EndPreHandlerExecute(IAsyncResult ar) {
			((AsynchOperation) ar).Context.Response.Write("AsyncModule.EndPreHandlerExecute()<br>\n");
		}		

		public void Dispose() {
		}
	}
}