(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / Microsoft.Web.Services / Microsoft.Web.Services / Pipeline.cs
blob759cecd81ee32a7447b78d38042d06450c5bf122
1 //
2 // Pipeline.cs: Soap Filter Pipeline
3 //
4 // Author:
5 // Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
10 using System;
11 using Microsoft.Web.Services.Configuration;
13 namespace Microsoft.Web.Services {
15 // Reference:
16 // 1. Inside the Web Services Enhancements Pipeline
17 // http://msdn.microsoft.com/library/en-us/dnwebsrv/html/insidewsepipe.asp
19 public class Pipeline {
21 private SoapInputFilterCollection input;
22 private SoapOutputFilterCollection output;
24 public Pipeline()
26 // set to defaults
27 input = (SoapInputFilterCollection) WebServicesConfiguration.FilterConfiguration.InputFilters.Clone ();
28 output = (SoapOutputFilterCollection) WebServicesConfiguration.FilterConfiguration.OutputFilters.Clone ();
31 public Pipeline (Pipeline pipeline)
33 if (pipeline == null)
34 throw new ArgumentNullException ("pipeline");
35 input = (SoapInputFilterCollection) pipeline.InputFilters.Clone ();
36 output = (SoapOutputFilterCollection) pipeline.OutputFilters.Clone ();
39 public Pipeline (SoapInputFilterCollection inputFilters, SoapOutputFilterCollection outputFilters)
41 if (inputFilters == null)
42 throw new ArgumentNullException ("inputFilters");
43 if (outputFilters == null)
44 throw new ArgumentNullException ("outputFilters");
45 input = (SoapInputFilterCollection) inputFilters.Clone ();
46 output = (SoapOutputFilterCollection) outputFilters.Clone ();
49 public SoapInputFilterCollection InputFilters {
50 get { return input; }
53 public SoapOutputFilterCollection OutputFilters {
54 get { return output; }
57 public void ProcessInputMessage (SoapEnvelope envelope)
59 // in normal order
60 for (int x=0; x < input.Count; x++)
61 input [x].ProcessMessage (envelope);
64 public void ProcessOutputMessage (SoapEnvelope envelope)
66 // in reverse order - see reference [1]
67 for (int x=output.Count - 1; x >= 0; x--)
68 output [x].ProcessMessage (envelope);