THRIFT-309. Make Thrift's C# mapping .NET 2.0 (Mono 1.2.4) compatible
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@743963 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_csharp_generator.cc b/compiler/cpp/src/generate/t_csharp_generator.cc
index 2463c46..df1d59c 100644
--- a/compiler/cpp/src/generate/t_csharp_generator.cc
+++ b/compiler/cpp/src/generate/t_csharp_generator.cc
@@ -145,7 +145,8 @@
"using System.Collections.Generic;\n" +
"using System.Text;\n" +
"using System.IO;\n" +
- "using Thrift;\n";
+ "using Thrift;\n" +
+ "using Thrift.Collections;\n";
}
string t_csharp_generator::csharp_thrift_usings() {
@@ -1534,7 +1535,7 @@
", " + type_name(tmap->get_val_type(), true) + ">";
} else if (ttype->is_set()) {
t_set* tset = (t_set*) ttype;
- return "HashSet<" + type_name(tset->get_elem_type(), true) + ">";
+ return "THashSet<" + type_name(tset->get_elem_type(), true) + ">";
} else if (ttype->is_list()) {
t_list* tlist = (t_list*) ttype;
return "List<" + type_name(tlist->get_elem_type(), true) + ">";
diff --git a/configure.ac b/configure.ac
index f88bf49..040ae06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -41,9 +41,11 @@
AX_THRIFT_LIB(csharp, [C#], yes)
if test "$with_csharp" = "yes"; then
- PKG_CHECK_MODULES(MONO, mono >= 1.2.6, have_mono=yes, have_mono=no)
+ PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no)
+ PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no)
fi
AM_CONDITIONAL(WITH_MONO, [test "$have_mono" = "yes"])
+AM_CONDITIONAL(NET_2_0, [test "$net_3_5" = "no"])
AX_THRIFT_LIB(java, [Java], yes)
if test "$with_java" = "yes"; then
diff --git a/lib/csharp/Makefile.am b/lib/csharp/Makefile.am
index 710cd12..4ceb9e0 100644
--- a/lib/csharp/Makefile.am
+++ b/lib/csharp/Makefile.am
@@ -1,4 +1,5 @@
THRIFTCODE= \
+ src/Collections/THashSet.cs \
src/Protocol/TBase.cs \
src/Protocol/TProtocolException.cs \
src/Protocol/TProtocolFactory.cs \
@@ -31,10 +32,14 @@
CSC=gmcs
+if NET_2_0
+MONO_DEFINES=/d:NET_2_0
+endif
+
all-local: Thrift.dll
Thrift.dll: $(THRIFTCODE)
- $(CSC) $(THRIFTCODE) /out:Thrift.dll /target:library /langversion:linq
+ $(CSC) $(THRIFTCODE) /out:Thrift.dll /target:library $(MONO_DEFINES)
clean-local:
$(RM) Thrift.dll
diff --git a/lib/csharp/src/Collections/THashSet.cs b/lib/csharp/src/Collections/THashSet.cs
new file mode 100644
index 0000000..51a09b5
--- /dev/null
+++ b/lib/csharp/src/Collections/THashSet.cs
@@ -0,0 +1,142 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Thrift.Collections
+{
+ public class THashSet<T> : ICollection<T>
+ {
+#if NET_2_0
+ TDictSet<T> set = new TDictSet<T>();
+#else
+ HashSet<T> set = new HashSet<T>();
+#endif
+ public int Count
+ {
+ get { return set.Count; }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return set.IsReadOnly; }
+ }
+
+ public void Add(T item)
+ {
+ set.Add(item);
+ }
+
+ public void Clear()
+ {
+ set.Clear();
+ }
+
+ public bool Contains(T item)
+ {
+ return set.Contains(item);
+ }
+
+ public void CopyTo(T[] array, int arrayIndex)
+ {
+ set.CopyTo(array, arrayIndex);
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ return set.GetEnumerator();
+ }
+
+ IEnumerator<T> IEnumerable<T>.GetEnumerator()
+ {
+ return ((IEnumerable<T>)set).GetEnumerator();
+ }
+
+ public bool Remove(T item)
+ {
+ return set.Remove(item);
+ }
+
+#if NET_2_0
+ private class TDictSet<V> : ICollection<V>
+ {
+ Dictionary<V, TDictSet<V>> dict = new Dictionary<V, TDictSet<V>>();
+
+ public int Count
+ {
+ get { return dict.Count; }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return false; }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ return ((IEnumerable)dict.Keys).GetEnumerator();
+ }
+
+ IEnumerator<V> IEnumerable<V>.GetEnumerator()
+ {
+ return dict.Keys.GetEnumerator();
+ }
+
+ public bool Add(V item)
+ {
+ if (!dict.ContainsKey(item))
+ {
+ dict[item] = this;
+ return true;
+ }
+
+ return false;
+ }
+
+ void ICollection<V>.Add(V item)
+ {
+ Add(item);
+ }
+
+ public void Clear()
+ {
+ dict.Clear();
+ }
+
+ public bool Contains(V item)
+ {
+ return dict.ContainsKey(item);
+ }
+
+ public void CopyTo(V[] array, int arrayIndex)
+ {
+ dict.Keys.CopyTo(array, arrayIndex);
+ }
+
+ public bool Remove(V item)
+ {
+ return dict.Remove(item);
+ }
+ }
+#endif
+ }
+
+}
diff --git a/lib/csharp/src/Protocol/TBinaryProtocol.cs b/lib/csharp/src/Protocol/TBinaryProtocol.cs
index 5df2021..2f2f4a1 100644
--- a/lib/csharp/src/Protocol/TBinaryProtocol.cs
+++ b/lib/csharp/src/Protocol/TBinaryProtocol.cs
@@ -12,7 +12,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
using System.Text;
using Thrift.Transport;
diff --git a/lib/csharp/src/Protocol/TField.cs b/lib/csharp/src/Protocol/TField.cs
index 93c0738..bda1760 100644
--- a/lib/csharp/src/Protocol/TField.cs
+++ b/lib/csharp/src/Protocol/TField.cs
@@ -18,30 +18,34 @@
{
public struct TField
{
+ private string name;
+ private TType type;
+ private short id;
+
public TField(string name, TType type, short id)
:this()
{
- Name = name;
- Type = type;
- ID = id;
+ this.name = name;
+ this.type = type;
+ this.id = id;
}
public string Name
{
- get;
- set;
+ get { return name; }
+ set { name = value; }
}
public TType Type
{
- get;
- set;
+ get { return type; }
+ set { type = value; }
}
public short ID
{
- get;
- set;
+ get { return id; }
+ set { id = value; }
}
}
}
diff --git a/lib/csharp/src/Protocol/TList.cs b/lib/csharp/src/Protocol/TList.cs
index ccce522..5e4fa39 100644
--- a/lib/csharp/src/Protocol/TList.cs
+++ b/lib/csharp/src/Protocol/TList.cs
@@ -18,23 +18,26 @@
{
public struct TList
{
+ private TType elementType;
+ private int count;
+
public TList(TType elementType, int count)
:this()
{
- ElementType = elementType;
- Count = count;
+ this.elementType = elementType;
+ this.count = count;
}
public TType ElementType
{
- get;
- set;
+ get { return elementType; }
+ set { elementType = value; }
}
public int Count
{
- get;
- set;
+ get { return count; }
+ set { count = value; }
}
}
}
diff --git a/lib/csharp/src/Protocol/TMap.cs b/lib/csharp/src/Protocol/TMap.cs
index a71e52a..4813027 100644
--- a/lib/csharp/src/Protocol/TMap.cs
+++ b/lib/csharp/src/Protocol/TMap.cs
@@ -18,30 +18,34 @@
{
public struct TMap
{
+ private TType keyType;
+ private TType valueType;
+ private int count;
+
public TMap(TType keyType, TType valueType, int count)
:this()
{
- KeyType = keyType;
- ValueType = valueType;
- Count = count;
+ this.keyType = keyType;
+ this.valueType = valueType;
+ this.count = count;
}
public TType KeyType
{
- get;
- set;
+ get { return keyType; }
+ set { keyType = value; }
}
public TType ValueType
{
- get;
- set;
+ get { return valueType; }
+ set { valueType = value; }
}
public int Count
{
- get;
- set;
+ get { return count; }
+ set { count = value; }
}
}
}
diff --git a/lib/csharp/src/Protocol/TMessage.cs b/lib/csharp/src/Protocol/TMessage.cs
index 15dfce0..3818da0 100644
--- a/lib/csharp/src/Protocol/TMessage.cs
+++ b/lib/csharp/src/Protocol/TMessage.cs
@@ -18,30 +18,34 @@
{
public struct TMessage
{
+ private string name;
+ private TMessageType type;
+ private int seqID;
+
public TMessage(string name, TMessageType type, int seqid)
:this()
{
- Name = name;
- Type = type;
- SeqID = seqid;
+ this.name = name;
+ this.type = type;
+ this.seqID = seqid;
}
public string Name
{
- get;
- set;
+ get { return name; }
+ set { name = value; }
}
public TMessageType Type
{
- get;
- set;
+ get { return type; }
+ set { type = value; }
}
public int SeqID
{
- get;
- set;
+ get { return seqID; }
+ set { seqID = value; }
}
}
}
diff --git a/lib/csharp/src/Protocol/TMessageType.cs b/lib/csharp/src/Protocol/TMessageType.cs
index 6e6ead7..d458d53 100644
--- a/lib/csharp/src/Protocol/TMessageType.cs
+++ b/lib/csharp/src/Protocol/TMessageType.cs
@@ -11,8 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Protocol
{
diff --git a/lib/csharp/src/Protocol/TProtocol.cs b/lib/csharp/src/Protocol/TProtocol.cs
index 2702ad8..6e48fac 100644
--- a/lib/csharp/src/Protocol/TProtocol.cs
+++ b/lib/csharp/src/Protocol/TProtocol.cs
@@ -11,7 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
using System.Text;
using Thrift.Transport;
diff --git a/lib/csharp/src/Protocol/TProtocolException.cs b/lib/csharp/src/Protocol/TProtocolException.cs
index db38d88..f43a7cc 100644
--- a/lib/csharp/src/Protocol/TProtocolException.cs
+++ b/lib/csharp/src/Protocol/TProtocolException.cs
@@ -1,6 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Protocol
{
diff --git a/lib/csharp/src/Protocol/TProtocolFactory.cs b/lib/csharp/src/Protocol/TProtocolFactory.cs
index 756bb5e..4e15bb1 100644
--- a/lib/csharp/src/Protocol/TProtocolFactory.cs
+++ b/lib/csharp/src/Protocol/TProtocolFactory.cs
@@ -10,8 +10,6 @@
// See accompanying file LICENSE or visit the Thrift site at:
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
using Thrift.Transport;
namespace Thrift.Protocol
diff --git a/lib/csharp/src/Protocol/TProtocolUtil.cs b/lib/csharp/src/Protocol/TProtocolUtil.cs
index a65ea0f..577182c 100644
--- a/lib/csharp/src/Protocol/TProtocolUtil.cs
+++ b/lib/csharp/src/Protocol/TProtocolUtil.cs
@@ -11,8 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Protocol
{
diff --git a/lib/csharp/src/Protocol/TSet.cs b/lib/csharp/src/Protocol/TSet.cs
index 0bfc29e..cdf3849 100644
--- a/lib/csharp/src/Protocol/TSet.cs
+++ b/lib/csharp/src/Protocol/TSet.cs
@@ -18,23 +18,26 @@
{
public struct TSet
{
+ private TType elementType;
+ private int count;
+
public TSet(TType elementType, int count)
:this()
{
- ElementType = elementType;
- Count = count;
+ this.elementType = elementType;
+ this.count = count;
}
public TType ElementType
{
- get;
- set;
+ get { return elementType; }
+ set { elementType = value; }
}
public int Count
{
- get;
- set;
+ get { return count; }
+ set { count = value; }
}
}
}
diff --git a/lib/csharp/src/Protocol/TStruct.cs b/lib/csharp/src/Protocol/TStruct.cs
index 62f60fd..1a7d572 100644
--- a/lib/csharp/src/Protocol/TStruct.cs
+++ b/lib/csharp/src/Protocol/TStruct.cs
@@ -17,16 +17,18 @@
{
public struct TStruct
{
+ private string name;
+
public TStruct(string name)
:this()
{
- Name = name;
+ this.name = name;
}
public string Name
{
- get;
- set;
+ get { return name; }
+ set { name = value; }
}
}
}
diff --git a/lib/csharp/src/Protocol/TType.cs b/lib/csharp/src/Protocol/TType.cs
index 257ac6b..5cc6178 100644
--- a/lib/csharp/src/Protocol/TType.cs
+++ b/lib/csharp/src/Protocol/TType.cs
@@ -11,8 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Protocol
{
diff --git a/lib/csharp/src/Server/TServer.cs b/lib/csharp/src/Server/TServer.cs
index afb2b9f..f5f617a 100644
--- a/lib/csharp/src/Server/TServer.cs
+++ b/lib/csharp/src/Server/TServer.cs
@@ -11,7 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
using Thrift.Protocol;
using Thrift.Transport;
using System.IO;
diff --git a/lib/csharp/src/Server/TSimpleServer.cs b/lib/csharp/src/Server/TSimpleServer.cs
index 95f3962..912b4a3 100644
--- a/lib/csharp/src/Server/TSimpleServer.cs
+++ b/lib/csharp/src/Server/TSimpleServer.cs
@@ -10,8 +10,6 @@
// See accompanying file LICENSE or visit the Thrift site at:
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
using Thrift.Transport;
using Thrift.Protocol;
diff --git a/lib/csharp/src/Server/TThreadPoolServer.cs b/lib/csharp/src/Server/TThreadPoolServer.cs
index b44487f..e3c5cde 100644
--- a/lib/csharp/src/Server/TThreadPoolServer.cs
+++ b/lib/csharp/src/Server/TThreadPoolServer.cs
@@ -10,8 +10,6 @@
// See accompanying file LICENSE or visit the Thrift site at:
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
using System.Threading;
using Thrift.Protocol;
using Thrift.Transport;
diff --git a/lib/csharp/src/Server/TThreadedServer.cs b/lib/csharp/src/Server/TThreadedServer.cs
index a4d33a5..2928f31 100644
--- a/lib/csharp/src/Server/TThreadedServer.cs
+++ b/lib/csharp/src/Server/TThreadedServer.cs
@@ -11,8 +11,8 @@
// http://developers.facebook.com/thrift/using
using System;
using System.Collections.Generic;
-using System.Text;
using System.Threading;
+using Thrift.Collections;
using Thrift.Protocol;
using Thrift.Transport;
@@ -28,7 +28,7 @@
private readonly int maxThreads;
private Queue<TTransport> clientQueue;
- private HashSet<Thread> clientThreads;
+ private THashSet<Thread> clientThreads;
private object clientLock;
private Thread workerThread;
@@ -73,7 +73,7 @@
this.maxThreads = maxThreads;
clientQueue = new Queue<TTransport>();
clientLock = new object();
- clientThreads = new HashSet<Thread>();
+ clientThreads = new THashSet<Thread>();
}
/// <summary>
diff --git a/lib/csharp/src/TApplicationException.cs b/lib/csharp/src/TApplicationException.cs
index 4248664..cb3353b 100644
--- a/lib/csharp/src/TApplicationException.cs
+++ b/lib/csharp/src/TApplicationException.cs
@@ -11,8 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
using Thrift.Protocol;
namespace Thrift
diff --git a/lib/csharp/src/TProcessor.cs b/lib/csharp/src/TProcessor.cs
index 2cbddd7..679e3f6 100644
--- a/lib/csharp/src/TProcessor.cs
+++ b/lib/csharp/src/TProcessor.cs
@@ -11,8 +11,6 @@
// http://developers.facebook.com/thrift/using
using System;
-using System.Collections.Generic;
-using System.Text;
using Thrift.Protocol;
namespace Thrift
diff --git a/lib/csharp/src/Thrift.csproj b/lib/csharp/src/Thrift.csproj
index 9f3f620..1eb4355 100644
--- a/lib/csharp/src/Thrift.csproj
+++ b/lib/csharp/src/Thrift.csproj
@@ -38,14 +38,9 @@
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
- <Reference Include="System.Data" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Windows.Forms" />
- <Reference Include="System.Xml" />
- <Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="Collections\THashSet.cs" />
<Compile Include="Protocol\TBase.cs" />
<Compile Include="Protocol\TBinaryProtocol.cs" />
<Compile Include="Protocol\TField.cs" />
diff --git a/lib/csharp/src/Transport/TBufferedTransport.cs b/lib/csharp/src/Transport/TBufferedTransport.cs
index 96a0741..bd4ba95 100644
--- a/lib/csharp/src/Transport/TBufferedTransport.cs
+++ b/lib/csharp/src/Transport/TBufferedTransport.cs
@@ -7,9 +7,6 @@
//
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
using System.IO;
namespace Thrift.Transport
diff --git a/lib/csharp/src/Transport/TServerSocket.cs b/lib/csharp/src/Transport/TServerSocket.cs
index a6caf90..3559ce7 100644
--- a/lib/csharp/src/Transport/TServerSocket.cs
+++ b/lib/csharp/src/Transport/TServerSocket.cs
@@ -9,8 +9,6 @@
// All rights reserved.
using System;
-using System.Collections.Generic;
-using System.Text;
using System.Net.Sockets;
diff --git a/lib/csharp/src/Transport/TServerTransport.cs b/lib/csharp/src/Transport/TServerTransport.cs
index 6b05a15..bff62e1 100644
--- a/lib/csharp/src/Transport/TServerTransport.cs
+++ b/lib/csharp/src/Transport/TServerTransport.cs
@@ -8,8 +8,6 @@
// Copyright (C) 2007 imeem, inc. <http://www.imeem.com>
// All rights reserved.
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Transport
{
diff --git a/lib/csharp/src/Transport/TSocket.cs b/lib/csharp/src/Transport/TSocket.cs
index c790fce..cc7eefd 100644
--- a/lib/csharp/src/Transport/TSocket.cs
+++ b/lib/csharp/src/Transport/TSocket.cs
@@ -10,8 +10,6 @@
//
using System;
-using System.Collections.Generic;
-using System.Text;
using System.Net.Sockets;
namespace Thrift.Transport
diff --git a/lib/csharp/src/Transport/TStreamTransport.cs b/lib/csharp/src/Transport/TStreamTransport.cs
index ca14ecf..f74f59a 100644
--- a/lib/csharp/src/Transport/TStreamTransport.cs
+++ b/lib/csharp/src/Transport/TStreamTransport.cs
@@ -10,8 +10,6 @@
//
using System;
-using System.Collections.Generic;
-using System.Text;
using System.IO;
namespace Thrift.Transport
diff --git a/lib/csharp/src/Transport/TTransport.cs b/lib/csharp/src/Transport/TTransport.cs
index 915cbc9..c95d98e 100644
--- a/lib/csharp/src/Transport/TTransport.cs
+++ b/lib/csharp/src/Transport/TTransport.cs
@@ -10,8 +10,6 @@
//
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Transport
{
diff --git a/lib/csharp/src/Transport/TTransportException.cs b/lib/csharp/src/Transport/TTransportException.cs
index daf21d8..fa1f6b5 100644
--- a/lib/csharp/src/Transport/TTransportException.cs
+++ b/lib/csharp/src/Transport/TTransportException.cs
@@ -10,8 +10,6 @@
//
using System;
-using System.Collections.Generic;
-using System.Text;
namespace Thrift.Transport
{
diff --git a/lib/csharp/src/Transport/TTransportFactory.cs b/lib/csharp/src/Transport/TTransportFactory.cs
index a0a6c2b..0280649 100644
--- a/lib/csharp/src/Transport/TTransportFactory.cs
+++ b/lib/csharp/src/Transport/TTransportFactory.cs
@@ -9,9 +9,6 @@
// All rights reserved.
//
using System;
-using System.Collections.Generic;
-using System.Text;
-
namespace Thrift.Transport
{
diff --git a/test/csharp/CSharpServer.cs b/test/csharp/CSharpServer.cs
index 32cc703..5eef03b 100644
--- a/test/csharp/CSharpServer.cs
+++ b/test/csharp/CSharpServer.cs
@@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
using Thrift.Server;
using Thrift.Transport;
diff --git a/test/csharp/ThriftTest/Program.cs b/test/csharp/ThriftTest/Program.cs
index 09bd84f..3860525 100644
--- a/test/csharp/ThriftTest/Program.cs
+++ b/test/csharp/ThriftTest/Program.cs
@@ -4,8 +4,6 @@
// http://developers.facebook.com/thrift/
using System;
-using System.Collections.Generic;
-using System.Text;
using Thrift.Transport;
using Thrift.Protocol;
using Thrift.Test; //generated code
diff --git a/test/csharp/ThriftTest/TestClient.cs b/test/csharp/ThriftTest/TestClient.cs
index bcdb00e..42b21b8 100644
--- a/test/csharp/ThriftTest/TestClient.cs
+++ b/test/csharp/ThriftTest/TestClient.cs
@@ -1,11 +1,10 @@
using System;
using System.Collections.Generic;
-using System.Text;
-
+using System.Threading;
+using Thrift.Collections;
using Thrift.Protocol;
using Thrift.Transport;
using Thrift.Test;
-using System.Threading;
namespace Test
{
@@ -247,7 +246,7 @@
Console.WriteLine("}");
//set
- HashSet<int> setout = new HashSet<int>();
+ THashSet<int> setout = new THashSet<int>();
for (int j = -2; j < 3; j++)
{
setout.Add(j);
@@ -268,7 +267,7 @@
}
Console.Write("})");
- HashSet<int> setin = client.testSet(setout);
+ THashSet<int> setin = client.testSet(setout);
Console.Write(" = {");
first = true;
diff --git a/test/csharp/ThriftTest/TestServer.cs b/test/csharp/ThriftTest/TestServer.cs
index 4efe4b4..18952d4 100644
--- a/test/csharp/ThriftTest/TestServer.cs
+++ b/test/csharp/ThriftTest/TestServer.cs
@@ -4,9 +4,8 @@
// http://developers.facebook.com/thrift/
using System;
using System.Collections.Generic;
-using System.Text;
+using Thrift.Collections;
using Thrift.Test; //generated code
-
using Thrift.Transport;
using Thrift.Protocol;
using Thrift.Server;
@@ -99,7 +98,7 @@
return thing;
}
- public HashSet<int> testSet(HashSet<int> thing)
+ public THashSet<int> testSet(THashSet<int> thing)
{
Console.WriteLine("testSet({");
bool first = true;
@@ -305,10 +304,13 @@
TServer serverEngine;
// Simple Server
- // serverEngine = new TSimpleServer(testProcessor, tServerSocket);
+ serverEngine = new TSimpleServer(testProcessor, tServerSocket);
// ThreadPool Server
- serverEngine = new TThreadPoolServer(testProcessor, tServerSocket);
+ // serverEngine = new TThreadPoolServer(testProcessor, tServerSocket);
+
+ // Threaded Server
+ // serverEngine = new TThreadedServer(testProcessor, tServerSocket);
testHandler.server = serverEngine;
diff --git a/test/csharp/ThriftTest/ThriftTest.csproj b/test/csharp/ThriftTest/ThriftTest.csproj
index 8e61173..3f427fd 100644
--- a/test/csharp/ThriftTest/ThriftTest.csproj
+++ b/test/csharp/ThriftTest/ThriftTest.csproj
@@ -51,17 +51,6 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Xml.Linq">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data.DataSetExtensions">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
<Reference Include="ThriftImpl, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>.\ThriftImpl.dll</HintPath>
@@ -117,6 +106,6 @@
cd $(ProjectDir)
-C:\Windows\Microsoft.NET\Framework\v3.5\Csc.exe /t:library /out:.\ThriftImpl.dll /recurse:.\gen-csharp\* /reference:$(ProjectDir)..\..\..\lib\csharp\src\bin\Debug\Thrift.dll</PreBuildEvent>
+$(MSBuildToolsPath)\Csc.exe /t:library /out:.\ThriftImpl.dll /recurse:.\gen-csharp\* /reference:$(ProjectDir)..\..\..\lib\csharp\src\bin\Debug\Thrift.dll</PreBuildEvent>
</PropertyGroup>
</Project>
diff --git a/test/csharp/ThriftTest/maketest.sh b/test/csharp/ThriftTest/maketest.sh
new file mode 100755
index 0000000..aab34b7
--- /dev/null
+++ b/test/csharp/ThriftTest/maketest.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+../../../compiler/cpp/thrift --gen csharp -o . ../../ThriftTest.thrift
+gmcs /t:library /out:./ThriftImpl.dll /recurse:./gen-csharp/* /reference:../../../lib/csharp/Thrift.dll