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