2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Dispatcher / PostReceiveRequestHandler.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.ServiceModel.Channels;\r
5 using System.ServiceModel;\r
6 \r
7 namespace System.ServiceModel.Dispatcher\r
8 {\r
9         internal class PostReceiveRequestHandler : BaseRequestProcessorHandler\r
10         {\r
11                 protected override bool ProcessRequest (MessageProcessingContext mrc)\r
12                 {\r
13                         Message incomingMessage = mrc.IncomingMessage;\r
14                         EnsureInstanceContextOpen (mrc.InstanceContext);\r
15                         AfterReceiveRequest (ref incomingMessage, mrc);\r
16                         mrc.IncomingMessage = incomingMessage;\r
17                         return false;\r
18                 }\r
19 \r
20                 void AfterReceiveRequest (ref Message message, MessageProcessingContext mrc)\r
21                 {\r
22                         mrc.EventsHandler.AfterReceiveRequest ();\r
23                 }\r
24 \r
25                 void EnsureInstanceContextOpen (InstanceContext ictx)\r
26                 {\r
27                         if (ictx.State != CommunicationState.Opened)\r
28                                 ictx.Open ();\r
29                 }\r
30         }\r
31 }\r