beagle r4623 - trunk/beagle/BeagleClient



Author: dbera
Date: Thu Mar 20 21:46:52 2008
New Revision: 4623
URL: http://svn.gnome.org/viewvc/beagle?rev=4623&view=rev

Log:
Use the pre-generated serializers.
Set the buffer size of the unix sockets to 4K.


Modified:
   trunk/beagle/BeagleClient/Transport.cs
   trunk/beagle/BeagleClient/UnixTransport.cs

Modified: trunk/beagle/BeagleClient/Transport.cs
==============================================================================
--- trunk/beagle/BeagleClient/Transport.cs	(original)
+++ trunk/beagle/BeagleClient/Transport.cs	Thu Mar 20 21:46:52 2008
@@ -41,8 +41,26 @@
 
 	public abstract class Transport {
 
-		protected static XmlSerializer req_serializer = new XmlSerializer (typeof (RequestWrapper), RequestMessage.Types);
-		protected static XmlSerializer resp_serializer = new XmlSerializer (typeof (ResponseWrapper), ResponseMessage.Types);
+		//////////////// Serialization ////////////////
+
+		protected static XmlSerializer req_serializer, resp_serializer;
+#if GENERATE_SERIALIZE
+		static Transport () {
+			req_serializer = null;
+			resp_serializer = null;
+			Logger.Log.Error ("Should not be here");
+			Environment.Exit (1);
+		}
+#else
+		static Transport () {
+			Beagle.GeneratedSerializers.Literal.XmlSerializerContract factory = new Beagle.GeneratedSerializers.Literal.XmlSerializerContract ();
+
+			// What happens when the factory does not have a serializer for a particular type
+			// Does it fallback to its reflection based approach ?
+			req_serializer = factory.GetSerializer (typeof (RequestWrapper));
+			resp_serializer = factory.GetSerializer (typeof (ResponseWrapper));
+		}
+#endif
 
 		private bool local = false;
 
@@ -106,7 +124,6 @@
 			Logger.Log.Debug ("Received response:\n{0}\n", r.ReadToEnd ());
 			deserialize_stream.Seek (0, SeekOrigin.Begin);
 #endif
-
 			ResponseWrapper wrapper = (ResponseWrapper)resp_serializer.Deserialize (deserialize_stream);
 			ResponseMessage response = wrapper.Message;
 			deserialize_stream.Close ();

Modified: trunk/beagle/BeagleClient/UnixTransport.cs
==============================================================================
--- trunk/beagle/BeagleClient/UnixTransport.cs	(original)
+++ trunk/beagle/BeagleClient/UnixTransport.cs	Thu Mar 20 21:46:52 2008
@@ -87,6 +87,8 @@
 		protected override void SendRequest (RequestMessage request)
 		{
 			client = new UnixClient (this.socket_name);
+			client.SendBufferSize = 4096;
+			client.ReceiveBufferSize = 4096;
 			NetworkStream stream = client.GetStream ();
 			
 			base.SendRequest (request, stream);
@@ -121,7 +123,7 @@
 
 				do {
 					// 0xff signifies end of message
-					end_index = ArrayFu.IndexOfByte (this.network_data, (byte) 0xff, prev_index);
+					end_index = Array.IndexOf<byte> (this.network_data, (byte) 0xff, prev_index);
 
 					int bytes_count = (end_index == -1 ? bytes_read : end_index) - prev_index;
 					this.BufferStream.Write (this.network_data, prev_index, bytes_count);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]