Share

FIX4NET

File Release Notes and Changelog

Release Name: FIX4NET_0_6_0_0

Notes:
Lots of updates in this release.  

-Performance changes and bug fixes.  
-New generic factory for connecting with any version.  
-A few new helpful classes and interfaces.
-NUnit test cases.  

See change log for more details...

Changes: -Increase performance using signals instead of polling to wakeup threads. *Add new IMessageQueue interface. *Add new MessageQueueSignal class. *Update SocketEngine to use new interface and class. The send loop was polling Queue.Count every 1ms. The new implementation waits for a signal from another thread. This signal decreases delays since sleep was normally waiting 15ms. The event loop has been updated to use the signal queue as shown above to decrease sleep delays. -Unit testing with NUnit has begun. A number of fixtures and tests have been added that were needed for all of the changes. More tests will come as time permits. The are very useful as EXAMPLES!!! -Bug in "SocketEngine.ResetMsgSeqNumIn". When updating the cache is was reseting the out side. -Bug sending session level reject for bad messages. When generating the reject it tries to parse the MsgType to include in the reject. The ParseMsgType function has a bug that returns the wrong value. -Bug in the FIX 4.4 Logon message with RefMsgType repeating group overriding the MsgType property. To reference the Logon RefMsgType repeating group use the "Logon.RefMsgType" property. -Added new IFeild interface and change all areas to use the interface instead of Field class. Now you can add fields using your own object types that implement the interface. -Changed IMessage inteface custom tag methods. The old didn't support repeating groups. The updates are more generic. -Added FieldCollection class for use with custom tags and generic messaging. -Version independent messaging. Since FIX4NET uses interface for message tranlation it can support many version. The existing 4.0, 4.2, and 4.4 library continue to exist. The base classes can speak any version but don't have the direct properties for fields. You would use collections of fields. -Send generic list of tag/values with every message. When the remote site requires a specific tag/value on each message you can give a preset list to the factory for each message creation. -Send generic list of tag/values on logon. This is useful if the remote side expect some password to login. -Created field reader class FieldReaderFIX. Expect this to become an interface and allow more code re-use. -Fixed parse error if MsgType.Len>1 then would generate a session level reject. -Strong Name for libraries built with nant. It expects a env var called %FIX4NET_SNK% with the path. -Created a class(FieldReaderFIX) to parse Field objects from a string that can be re-used. -Updated base MessageFactoryFIX.Parse method use my new FieldReaderFIX class. -Updated SocketEngine.ReceiveLoop to shutdown without reporting errors if logout steps are success. -Update SocketListen.Accept to shutdown without reporting errors if being disposed.