From 3436961bb5c01d659d09be134368f4f69460cef9 Mon Sep 17 00:00:00 2001
From: MW
Date: Sat, 26 May 2007 13:40:19 +0000
Subject: Start of rewrite 5279!
---
Common/XmlRpcCS/XmlRpcBoxcarRequest.cs | 51 ++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 Common/XmlRpcCS/XmlRpcBoxcarRequest.cs
(limited to 'Common/XmlRpcCS/XmlRpcBoxcarRequest.cs')
diff --git a/Common/XmlRpcCS/XmlRpcBoxcarRequest.cs b/Common/XmlRpcCS/XmlRpcBoxcarRequest.cs
new file mode 100644
index 0000000..f87f7a5
--- /dev/null
+++ b/Common/XmlRpcCS/XmlRpcBoxcarRequest.cs
@@ -0,0 +1,51 @@
+namespace Nwc.XmlRpc
+{
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+ using System.Net;
+ using System.Text;
+ using System.Reflection;
+
+ /// Class that collects individual XmlRpcRequest objects and submits them as a boxcarred request.
+ /// A boxcared request is when a number of request are collected before being sent via XML-RPC, and then are sent via
+ /// a single HTTP connection. This results in a speed up from reduced connection time. The results are then retuned collectively
+ /// as well.
+ ///
+ ///
+ public class XmlRpcBoxcarRequest : XmlRpcRequest
+ {
+ /// ArrayList to collect the requests to boxcar.
+ public IList Requests = new ArrayList();
+
+ /// Basic constructor.
+ public XmlRpcBoxcarRequest()
+ {
+ }
+
+ /// Returns the String "system.multiCall" which is the server method that handles boxcars.
+ public override String MethodName
+ {
+ get { return "system.multiCall"; }
+ }
+
+ /// The ArrayList of boxcarred Requests as properly formed parameters.
+ public override IList Params
+ {
+ get {
+ _params.Clear();
+ ArrayList reqArray = new ArrayList();
+ foreach (XmlRpcRequest request in Requests)
+ {
+ Hashtable requestEntry = new Hashtable();
+ requestEntry.Add(XmlRpcXmlTokens.METHOD_NAME, request.MethodName);
+ requestEntry.Add(XmlRpcXmlTokens.PARAMS, request.Params);
+ reqArray.Add(requestEntry);
+ }
+ _params.Add(reqArray);
+ return _params;
+ }
+ }
+ }
+}
--
cgit v1.1