-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog
10374 lines (8834 loc) · 407 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Fri Oct 28 16:13:34 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/DataSource.h:
Fix off-by-one bug in checking for contiguous bytes.
Thanks to: Rafael Kikuchi for pointing out the problem.
Wed Oct 26 19:25:53 UTC 2011 Dale Wilson <[email protected]>
* src/Examples/Examples/CommandArgHandler.h:
* src/Examples/Examples/CommandArgParser.h:
* src/Examples/Examples/CommandArgParser.cpp:
Removed these files.
It was a nice try to provide forward compatibility, but it confused the linker.
Symptom was "inconsistent dll linkage"
Better to break any app that tries to include the file from the old location than
to produce an incomprehensible error message.
Tue Oct 25 18:03:30 UTC 2011 Dale Wilson <[email protected]>
* src/Examples/TutorialApplication/TutorialApplication.h:
* src/Examples/TutorialApplication/TutorialApplication.cpp:
Update the tutorial application to use Application::Decoder* classes.
Tue Oct 25 16:26:45 UTC 2011 Dale Wilson <[email protected]>
* src/Examples/Examples/CommandArgHandler.h:
* src/Examples/Examples/CommandArgParser.h:
* src/Examples/Examples/CommandArgParser.cpp:
Use CommandArg* from Application namespace to QuickFAST namespace to
avoid problems caused by the previous check-in.
Tue Oct 25 15:56:11 UTC 2011 Dale Wilson <[email protected]>
* src/Application/CommandArgHandler.h:
* src/Application/CommandArgParser.h:
* src/Application/CommandArgParser.cpp:
* src/Examples/Examples/CommandArgHandler.h:
* src/Examples/Examples/CommandArgParser.h:
* src/Examples/Examples/CommandArgParser.cpp:
Move Command arg parser from Examples to Application directory.
Put the command arg parser and handler into the Application namespace.
WARNING: This change can potentially break existing code.
The next check in will contain a partial work-around.
* src/Common/QuickFASTPch.h:
Add includes needed by command arg parser
* src/Examples/FileToMulticast/FileToMulticast.h:
* src/Examples/FileToTCP/FileToTCP.h:
* src/Examples/InterpretApplication/InterpretApplication.h:
* src/Examples/PCapToMulticast/PCapToMulticast.h:
* src/Examples/PerformanceTest/PerformanceTest.h:
* src/Examples/TutorialApplication/TutorialApplication.h:
* src/Examples/TutorialApplication/TutorialApplication.cpp:
Use command arg parser from Application rather than Examples.
Wed Oct 19 15:35:41 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/DataDestination.h:
Forbid assignment and copy construction.
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConfiguration_fwd.h:
* src/Application/DecoderConnection.cpp:
* src/Communication/BufferedRawFileReceiver.h:
* src/Communication/BufferedRawFileReceiver_fwd.h:
Add new receiver type: BufferedRawFileReceiver,
and new command line option, -bfile name
Reads entire file into memory buffer before decoding.
For performance testing only.
Tue Oct 18 17:38:22 UTC 2011 Dale Wilson <[email protected]>
* src/Common/StringBuffer.h:
Add assignment from std::string.
* src/Application/DNDecoderConnectionImpl.h:
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConfiguration_fwd.h:
* src/Application/DecoderConnection.h:
* src/Common/QuickFASTPch.h:
* src/Doxyfile:
Update Doxygen to include Application namespace.
Mon Oct 17 13:20:28 UTC 2011 Dale Wilson <[email protected]>
* src/Common/StringBuffer.h:
Add assignment from std::string.
* src/Examples/Examples/ValueToFix.cpp:
Unitialized verbose member caused undesired output.
Tue Oct 11 14:04:49 UTC 2011 Dale Wilson <[email protected]>
* src/Common/Decimal.cpp:
Faster conversion to decimal
* src/Communication/LinkedBuffer.h:
Clarify comment
* src/Doxyfile:
Update doxygen version number to 1.4
Wed Oct 5 19:33:52 UTC 2011 Dale Wilson <[email protected]>
* src/Common/Version.h:
Prepare for V1.4.1
Wed Oct 5 16:20:50 UTC 2011 Dale Wilson <[email protected]>
* src/Common/Version.h:
Prepare for V1.4
* src/Communication/AsioService.h:
* src/Communication/AsynchSender.h:
* src/Communication/MulticastReceiver.h:
* src/Communication/MulticastReceiverHandle.h:
* src/Examples/Examples/ConsoleLock.h:
Fix Doxygen warnings.
Tue Oct 4 18:16:37 UTC 2011 Dale Wilson <[email protected]>
* license.txt:
Update copyright
* src/Codecs/DataSourceBlockedStream.cpp:
* src/Codecs/DataSourceBufferedBlockedStream.cpp:
Removed these files.
Tue Oct 4 15:43:25 UTC 2011 Dale Wilson <[email protected]>
* src/Common/QuickFASTPch.h:
Include <limits.h> which was not getting pulled in on some platforms.
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConnection.cpp:
* src/Codecs/MulticastDecoder.h:
* src/Codecs/MulticastDecoder.cpp:
* src/Communication/MulticastReceiver.h:
* src/Communication/MulticastReceiverHandle.h:
* src/Communication/MulticastReceiverHandle.cpp:
* src/Communication/MulticastSender.h:
* src/Examples/FileToMulticast/FileToMulticast.h:
* src/Examples/FileToMulticast/FileToMulticast.cpp:
* src/Examples/PCapToMulticast/PCapToMulticast.h:
* src/Examples/PCapToMulticast/PCapToMulticast.cpp:
Add new multicast option: -mbind ip
Defaults to the value specified by -mlisten ip
* src/Communication/PCapFileReceiver.h:
* src/Communication/PCapReader.h:
* src/Communication/PCapReader.cpp:
Revisit the handling of UDP headers block in pcap file.
* src/Codecs/DataSourceBlockedStream.h:
* src/Codecs/DataSourceBufferedBlockedStream.h:
Remove obsolete data sources.
Use DataSourceStream with appropriate header analyzer.
Wed Sep 28 20:32:52 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/FieldOp.cpp:
Issue #93. User-defined dictionaries not honored.
* src/Codecs/DataSource.h:
* src/Codecs/StreamingAssembler.h:
* src/Codecs/StreamingAssembler.cpp:
Issue 92. Streaming Assembler doesn't handle waitForCompleteMessage properly.
* src/Codecs/FieldInstruction.cpp:
Check for most negative integer is not working on gcc.
* src/Communication/TCPReceiver.h:
Documentation update.
* src/Messages/FieldSet.cpp:
Memory access error clearing newly allocated buffer using wrong value for capacity.
* src/Tests/testSmallestValue.cpp:
Rename LARGEST_INT64 to be INT64_SINGULARITY. It's actually the most negative int64.
Wed Aug 24 20:21:02 UTC 2011 Trevor Fields <[email protected]>
* src/Communication/PCapReader.cpp:
Fix to corectly use udp packet length from packet.
Added more verbose messages.
Mon Aug 22 19:09:23 UTC 2011 Dale Wilson <[email protected]>
* src/Communication/PCapReader.cpp:
Fixes to support for checksum appended to packet.
Wed May 11 18:45:44 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/MulticastDecoder.h:
Fix misleading documentation.
Yes, MulticastDecoder does support packet and message headers.
Mon May 9 16:03:06 UTC 2011 Dale Wilson <[email protected]>
* src/Common/AtomicOps.h:
Rework gcc support for atomic operations
* src/Communication/AsynchFileReceiver_fwd.h:
* src/Communication/AsynchFileSender.h:
* src/Communication/AsynchFileSender.cpp:
* src/Communication/AsynchFileSender_fwd.h:
Disable asynchronous file I/O for non-windows platforms.
Wed May 4 14:51:56 UTC 2011 Dale Wilson <[email protected]>
* src/Application/DecoderConnection.cpp:
Pass extra open attributes to AsynchFileReceiver
* src/Communication/AsioService.cpp:
Debug messages -- commented out but convenient if needed.
* src/Communication/AsynchReceiver.h:
Check for exactly one thread to discriminate single-threaded
From multi-threaded. Still not completely right, but better
than the previous. The confusion arises when the io_service is
shared but all the threads are started through one of the
receivers.
* src/Communication/AsynchSender.h:
* src/Communication/AsynchSender.cpp:
Debugging messages -- commented out.
Debug method lets other parts of the system "peek" at the io_service.
One of the constructors was not allocating a keepAlive object so
when this constructor was used there was a window during which the
io_service could shut down prematurely.
Fri Apr 29 20:48:34 UTC 2011 Dale Wilson <[email protected]>
* src/Communication/AsynchReceiver.h:
Forgot to disable a debug message in my last check-in.
Fri Apr 29 18:46:14 UTC 2011 Dale Wilson <[email protected]>
* src/Application/DNDecoderConnectionImpl.h:
* src/Application/DNDecoderConnectionImpl.cpp:
* src/DotNet/DNDecoderConnection.h:
* src/DotNet/DNDecoderConnection.cpp:
Add stop() and joinThreads() methods
* src/Codecs/DataDestination.h:
* src/Codecs/DataSource.h:
* src/Codecs/MessagePerPacketAssembler.h:
* src/Codecs/PresenceMap.h:
* src/Common/WorkingBuffer.h:
* src/Communication/AsynchFileSender.h:
* src/Communication/AsynchSender.h:
* src/Communication/FileSender.h:
* src/Communication/LinkedBuffer.h:
* src/Communication/MulticastReceiver.h:
* src/Communication/Receiver.h:
* src/Messages/MessageAccessor.h:
* src/Messages/MessageFormatter.h:
* src/Tests/resources/fileCopyTest.dat:
* src/Doxyfile:
Improve formatting and comments
Adapt to newer version of Doxygen
No functional changes
* src/Common/Decimal.h:
* src/Common/Decimal_fwd.h:
* src/Common/Types.h:
Forward declare Decimal in _fwd header rather than in Types.h
* src/Common/Logger.h:
Change log level from enum to const unsigned short.
This matches the types actually used as method parameters.
* src/Communication/AsioService.h:
* src/Communication/AsioService.cpp:
New method, runningThreadCount() reports how many threads are
servicing the io_service object. This helped in solving a race condition.
* src/Communication/AsynchFileReceiver.h:
Separate stop() from close() for cleaner shut-down.
* src/Communication/AsynchReceiver.h:
Race condition in multithreaded code with a streaming assembler.
When no buffer was ready for decoding
there was a possiblity that it could wait forever.
* src/Communication/AtomicQueue.h:
Added a "Not ready for prime-time" warning message. This doesn't work right yet.
* src/Communication/Sender.h:
Change member from protected to private.
Fri Apr 8 20:00:22 UTC 2011 Dale Wilson <[email protected]>
* QuickFAST.features:
Add features to disable builds of special projects that are
in the build tree at OCI, but not part of the open source package.
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConfiguration_fwd.h:
* src/Application/DecoderConnection.h:
* src/Application/DecoderConnection.cpp:
Add a new option: asynchReads to read a file asynchronously
This only works on windows due to the erratic support of
asynchronous I/O on other platforms.
Move relevant command line options from InterpretApplication
into decoder configuration. This makes them easily available
to applications that need them. If your application doesn't
want these options, don't call usage or parseSingleArg
* src/Common/AtomicPointer.h:
Compiler complained that a cast to void * should be a reinterpret_cast
* src/Common/Exceptions.h:
Add a colon between error type and description for some exceptions.
* src/Communication/AsioService.h:
Change protected members to private.
Add documentation.
* src/Communication/AsynchFileReceiver.h:
* src/Communication/AsynchFileReceiver_fwd.h:
* src/Communication/AsynchFileSender.h:
* src/Communication/AsynchFileSender.cpp:
* src/Communication/AsynchFileSender_fwd.h:
* src/Communication/AsynchSender.h:
* src/Communication/AsynchSender.cpp:
* src/Communication/AsynchSender_fwd.h:
* src/Communication/Sender.h:
* src/Communication/Sender_fwd.h:
New features to support reading and writing files asynchronously.
* src/Communication/AtomicQueue.h:
* src/Communication/AtomicQueue_fwd.h:
New feature. Not yet used.
* src/Communication/BufferRecycler.h:
A callback method for recycling used LinkedBuffers
* src/Communication/FileSender.h:
* src/Communication/FileSender.cpp:
* src/Communication/FileSender_fwd.h:
* src/Communication/LinkedBuffer.h:
Add "extra" a void* to be used for whatever purpose.
Remove the "external_". capacity_ == 0 while used_ nonzero means
we don't own this buffer.
* src/Examples/Examples.mpc:
Includes definitons for special, non-open source, projects
These projects are disabled via the QuickFAST.features file.
* src/Examples/InterpretApplication/InterpretApplication.cpp:
* src/Examples/InterpretApplication/main.cpp:
Add support for asynchronous file reads.
Move many command line options into the DecoderConfiguration structure
* src/Messages/MessageFormatter.cpp:
Display application type.
* src/Messages/ValueMessageBuilder.h:
Remove unnecessary semicolon.
* src/Tests/resources/fileCopyTest.dat:
* src/Tests/testAsynchSender.cpp:
Add a test for writing files asynchronously and
the whole infrastructure to support asynchronous writes.
Thu Mar 31 18:38:13 UTC 2011 Dale Wilson <[email protected]>
* src/Common/Logger.h:
Change definition of log levels from enum to unsigned short.
That way the enum values are sure to match the time of the arguments.
* src/Communication/PCapReader.cpp:
Fix a bug encountered when reading 64 bit headers on a 32 bit system.
Addresses Issue #80
Thu Mar 31 14:21:09 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/DataSource.h:
add optimization to allow accessing multiple bytes
with one call as long as they are contiguous in the buffer.
* src/Codecs/FieldInstruction.h:
Improved error messages to indicate the type of field being decoded.
Work-in-progress (disabled for now): specilization of the decode*Integer methods
for specific integer sizes. Not working, yet, and needs profiling after
it does work to be sure it actually helps.
* src/Codecs/SynchronousDecoder.h:
* src/Examples/PerformanceTest/PerformanceTest.h:
* src/Examples/PerformanceTest/PerformanceTest.cpp:
Add the ability to handle messages with non-FAST headers
* src/Common/Exceptions.h:
Add new exception to be thrown when an internal logic error is detected
* src/Communication/AsioService.h:
* src/Communication/AsioService.cpp:
Log messages via the logger interface rather than std::err
* src/Communication/AsynchReceiver.h:
* src/Communication/BufferReceiver.h:
* src/Communication/PCapFileReceiver.h:
* src/Communication/RawFileReceiver.h:
* src/Communication/Receiver.h:
Add method to reset the asio IOService
However, it is usually better to delete the old object an create a new one.
Beware shared IOServices when you use the reset method.
Wed Mar 30 16:05:08 UTC 2011 Dale Wilson <[email protected]>
* src/Application/DecoderConnection.cpp:
Accept FAST data from std::cin. This does not work on
Windows because the data is binary.
Any application using Application::DataConnection can
invoke this by using a file name of "cin" for the FAST data.
Tue Feb 22 15:16:29 UTC 2011 Dale Wilson <[email protected]>
* src/Communication/PCapReader.cpp:
Issue #69. The PCapReader was including the packet checksum in the size of the payload.
Mon Feb 14 21:40:13 UTC 2011 Dale Wilson <[email protected]>
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConnection.cpp:
Uninitialized variables and duplicated (copy/paste) code.
Issue #77
Mon Feb 14 20:31:54 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/DataSource.cpp:
* src/Codecs/FastEncodedHeaderAnalyzer.cpp:
* src/Codecs/FieldInstruction.h:
* src/Codecs/FieldInstruction.cpp:
* src/Codecs/FieldInstructionBlob.cpp:
* src/Codecs/FieldInstructionDecimal.cpp:
* src/Codecs/FieldInstructionInteger.h:
* src/Codecs/FixedSizeHeaderAnalyzer.cpp:
* src/Codecs/PresenceMap.cpp:
* src/Codecs/SynchronousDecoder.h:
* src/Messages/SingleValueBuilder.h:
Eliminate some build warnings on Linux.
Fri Jan 7 19:19:32 UTC 2011 Dale Wilson <[email protected]>
* src/Codecs/DataSourceBufferedStream.h:
* src/Examples/PerformanceTest/PerformanceTest.cpp:
Remove obsolete comments
* src/Examples/Examples/CommandArgParser.cpp:
Remove leftover debuging statements
Mon Dec 27 17:14:38 UTC 2010 Adam Mitz <[email protected]>
* QuickFAST.mwc:
The keyword "specific" is now treated as a keyword in mwc files as
well as mpc files. Changed the name of the C# scope to avoid this
naming conflict. The scope's name is otherwise insignificant.
Thu Dec 9 20:50:00 UTC 2010 Dale Wilson <[email protected]>
* src/Common/Version.h:
set preliminary 1.3.1
* src/Examples/Examples/CommandArgParser.h:
* src/Examples/Examples/CommandArgParser.cpp:
The -options command line option reads additional options from a file.
* src/Examples/Examples/ConsoleLock.h:
* src/Examples/Examples/ConsoleLock.cpp:
"Global" lock to avoid mixing console writes.
* src/Application/DecoderConfiguration.h:
* src/Examples/Examples/MessageInterpreter.cpp:
* src/Examples/InterpretApplication/InterpretApplication.h:
* src/Examples/InterpretApplication/InterpretApplication.cpp:
Support multiple connections.
Thu Dec 2 16:03:16 UTC 2010 Dale Wilson <[email protected]>
* src/Common/Version.h:
Update version number for V1.3.0 release
Tue Nov 30 20:10:49 UTC 2010 Dale Wilson <[email protected]>
* src/DotNetTests:
* src/DotNetTests/.svnignore:
* src/DotNetTests/DecimalTests.cs:
* src/DotNetTests/EncodeDecodeTests.cs:
* src/DotNetTests/FieldTests.cs:
* src/DotNetTests/MessageTests.cs:
* src/DotNetTests/PrerequisitsTests.cs:
* src/DotNetTests/Properties:
* src/DotNetTests/Properties/AssemblyInfo.cs:
* src/DotNetTests/QuickFASTDotNetTests.mpc:
Remove .NET tests. They need to be completely rewritten.
Tue Nov 30 20:07:43 UTC 2010 Dale Wilson <[email protected]>
* QuickFAST.mwc:
* QuickFastDotNetTests.nunit:
* src/DotNetTests:
Remove .NET tests. They need to be completely rewritten.
Tue Nov 30 15:23:19 UTC 2010 Dale Wilson <[email protected]>
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConnection.h:
* src/Application/DecoderConnection.cpp:
* src/Communication/AsioService.h:
* src/Communication/AsioService_fwd.h
* src/Examples/InterpretApplication/InterpretApplication.cpp:
Add the ability to configure a private IOService at the Application
level and in the InterpretApplication example program.
A connection with a private I/O service is independent of
any other connection in the process. In particular this is needed
if a connection will be stopped and/or restarted while other
connections continue to operate.
The downside to this option is that independent connections cannot
share threads so more threads may be needed to service the connections.
Wed Nov 24 15:08:23 UTC 2010 Dale Wilson <[email protected]>
* setup.cmd:
Handle "Program Files (x86)" [shudder]
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConnection.h:
* src/Application/DecoderConnection.cpp:
* src/Codecs/HeaderAnalyzer.h:
* src/Codecs/MessagePerPacketAssembler.h:
* src/Codecs/MessagePerPacketAssembler.cpp:
* src/Codecs/MulticastDecoder.h:
* src/Codecs/MulticastDecoder.cpp:
* src/Examples/InterpretApplication/InterpretApplication.cpp:
Support both packet headers (for UDP/MULTICAST) and message
headers (for everyone) independently.
This addresses Issue #71.
Tue Nov 23 19:11:31 UTC 2010 Dale Wilson <[email protected]>
* src/Application/DNDecoderConnectionImpl.cpp:
Remove unnecessary includes
* src/Tests/testXMLTemplateParser.cpp:
Test length field instruction for byteVector - s/b ignored.
Thu Oct 21 19:10:46 UTC 2010 Dale Wilson <[email protected]>
* src/Application/DNDecoderConnectionImpl.h:
* src/Application/DNDecoderConnectionImpl.cpp:
* src/Application/DNDecoderConnectionImpl_fwd.h:
* src/Application/DecoderConfiguration.h:
* src/Application/DecoderConfiguration_fwd.h:
* src/Application/DecoderConnection.cpp:
* src/Codecs/DataSource.h:
* src/Codecs/DataSource.cpp:
* src/DotNet/DNDecoderConnection.h:
* src/DotNet/DNDecoderConnection.cpp:
* src/DotNet/QuickFASTDotNetPch.h:
* src/DotNetExamples/PerformanceTestDotNet/PerformanceTestDotNet.cs:
Conflict between boost 1.41+ and .NET: Boost::threads is using inline assembly to implement
future thread synchronization. Managed C++ hates inline assembly.
This changes widens the DMZ between .NET and the real world by adding an *impl layer to
DNDecoderConnection.
Wed Oct 13 20:09:11 UTC 2010 Dale Wilson <[email protected]>
* src/Examples/InterpretApplication/InterpretApplication.cpp:
Fix an error in argument parsing. It was comparing pointers (argv[1]) rather than strings.
Tue Oct 12 19:38:57 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/PresenceMap.h:
* src/Codecs/PresenceMap.cpp:
Add the ability to parse from a buffer rather than (in addition to) a data source.
* src/Common/Constants.h:
Define a couple of the ASCII control characters (used by some exchanges)
* src/Examples/Examples/ExamplesPch.h:
include <string.h>
Tue Oct 5 21:12:28 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/Encoder.cpp:
Error in destination buffer management could lead to corrupted messages.
Tue Oct 5 20:37:22 UTC 2010 Dale Wilson <[email protected]>
* src/Tests/testNestedSequences.cpp:
Add new unit test for Issue #68.
It passes. Issue was already fixed.
Tue Oct 5 18:46:28 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/FieldInstructionBlob.h:
* src/Codecs/FieldInstructionBlob.cpp:
* src/Codecs/FieldInstructionGroup.cpp:
* src/Codecs/SchemaElement.h:
Ignore <length> in <byteVector>
* src/Codecs/TemplateRegistry.h:
* src/Codecs/XMLTemplateParser.h:
Forbid copy constructor and assignment.
* src/Common/QuickFASTPch.h:
Turn off boost linker diagnostics
Tue Oct 5 15:34:40 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/DataSource.cpp:
* src/Tests/testCommon.cpp:
Avoid compiler warnings
* src/Codecs/DataSourceBufferedBlockedStream.cpp:
Invalid comparison operator.
* src/Codecs/FieldInstructionGroup.cpp:
Groups with no typeref inherit the type from their parent. This means
in the decoder they are merged into the parent object (although this
behavior may vary in custom implementations of ValueMessageBuilder.)
This change reserves space for the merged fields.
* src/Codecs/FieldInstructionTemplateRef.h:
* src/Codecs/FieldInstructionTemplateRef.cpp:
Correct the calculation of the number of fields to be included
via a static template reference.
* src/Codecs/SegmentBody.cpp:
Fix an assumption that the number of field instructions in a segment
matched the number of fields to be including in the resulting field set.
* src/Codecs/StreamingAssembler.cpp:
* src/Communication/AsynchReceiver.h:
* src/Communication/Receiver.h:
* src/Communication/AsioService.h:
* src/Communication/SynchReceiver.h:
A partial workaround for a hang when a single threaded app used streaming
assembler and did not specify wait for complete message.
* src/DotNetExamples/InterpretFASTDotNet/FieldSetInterpreter.cs:
* src/DotNetExamples/InterpretFASTDotNet/InterpretFASTDotNet.cs:
* src/Examples/InterpretApplication/InterpretApplication.h:
* src/Examples/InterpretApplication/InterpretApplication.cpp:
Add additional options to support echoing input, and generating
other debugging information.
This change addresses issues #61 and #65.
Tue Sep 14 15:06:01 UTC 2010 Dale Wilson <[email protected]>
* src/Tests/testFieldInstructions.cpp:
Add unit test for encoding optional decimal with zero exponent
Tue Sep 14 14:56:13 UTC 2010 Dale Wilson <[email protected]>
* src/Application/DecoderConnection.cpp:
Use the binary mode symbolic constant rather than #ifdef _WIN32
* src/Codecs/FieldInstructionDecimal.cpp:
Error in Decimal decoding for nullable filed with exponent of zero
Mon Aug 23 14:40:01 UTC 2010 Dale Wilson <[email protected]>
* src/Communication/LinkedBuffer.h:
Fix an error in managing mutex/condition that results in a hang due to buffer starvation.
Fri Aug 13 15:14:48 UTC 2010 Dale Wilson <[email protected]>
* setup.cmd:
Eliminate a duplicate line (?)
* setup_clear.cmd:
New batch file to allow setup to be re-run.
Fri Aug 13 15:06:34 UTC 2010 Dale Wilson <[email protected]>
* setup.cmd:
If BOOST_ROOT is set in environment, don't change it.
Do not include release directories in debug path.
Wed Aug 11 20:18:00 UTC 2010 Dale Wilson <[email protected]>
* setup.cmd:
Upgraded setup for VC10, aka Visual Studio 2010
Wed Aug 11 14:32:38 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/FieldInstructionInteger.h:
* src/Tests/testFieldInstructions.cpp:
* src/Tests/testFieldOperations.cpp:
"using namespace" should not appear in header file.
Remove it and repair the code that inadvertently depended on it.
Issue #58
* src/QuickFAST.mpc:
Difference between project name and target name confused MPC in VC10.
The MPC problem will be fixed, but for now, just use the same name for both.
Tue Aug 10 21:34:30 UTC 2010 Adam Mitz <[email protected]>
* QuickFASTApplication.mpb:
* QuickFASTExeOut.mpb:
* src/QuickFAST.mpc:
Visual Studio 2010 changes: replaced "specific(vc8,vc9)" with
"specific(prop:microsoft)".
Tue Aug 10 16:14:48 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/DataSourceBlockedStream.cpp:
* src/Codecs/DataSourceBufferedBlockedStream.cpp:
* src/Codecs/DataSourceBufferedStream.cpp:
* src/Codecs/DataSourceStream.cpp:
* src/Common/Types.h:
* src/Communication/RawFileReceiver.h:
Visual Studio 2010 has introduce new data types to represent position in file and
size of file. This adds casts of these types into size_t. Note if you are using
test data files larger than 4Gb you are out of luck.
Thu Jul 15 18:52:17 UTC 2010 Dale Wilson <[email protected]>
* src/Common/Logger.h:
Cosmetic: change parameter names.
* src/Communication/TCPReceiver.h:
Increment the iterator in the while loop to avoid waiting forever for a TCP connect.
Tue Jul 6 14:59:52 UTC 2010 Dale Wilson <[email protected]>
* src/Application/QuickFAST.h:
New file for use by QuickFAST-based applications.
Documentation will follow.
* src/Communication/MulticastSender.h:
* src/Examples/TutorialApplication/TutorialApplication.cpp:
Syntax errors in prevous check in.
Thu Jul 1 14:22:28 UTC 2010 Dale Wilson <[email protected]>
* src/Common/StringBuffer.h:
Allow a StringBuffer to be delegated to a std::string. This
simplifies some cases of MessageAccessor.
* src/Examples/TutorialApplication/TutorialApplication.cpp:
Change the handling of binary mode when opening templates & FAST files.
* src/Messages/FieldIdentity.h:
* src/Messages/FieldIdentity.cpp:
Change the order-of-initialization of memeber variables to match
the actual order in the object.
Move a constructor to the cpp file.
Wed Jun 30 15:12:25 UTC 2010 Dale Wilson <[email protected]>
* src/Communication/TCPReceiver.h:
Fix linux build error (gcc caught it, VC ignored it.)
* src/Codecs/Encoder_fwd.h:
Declare a shared pointer to an Encoder
* src/Codecs/FieldInstructionAscii.cpp:
Do not retrieve data for required, constant fields.
Fri Jun 25 18:31:09 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/Encoder.h:
* src/Codecs/Encoder.cpp:
* src/Messages/MessageAccessor.h:
* src/Messages/MessageAccessor.cpp:
Add new method, Encoder::encodeMessages() asks the accessor
for a template ID for the message and continues to encode
as long as the accessor returns an ID.
* src/Codecs/FieldInstructionBlob.cpp:
* src/Codecs/FieldInstructionDecimal.cpp:
* src/Codecs/FieldInstructionInteger.h:
* src/Tests/testFieldOperations.cpp:
When encoding mandatory constant values don't retrieve
them from the accessor. Just assume they are there and
have the correct value. Cuts down on application developer's
useless busywork.
Disable the test that expected an exception when a mandatory
constant field had the wrong value.
* src/Codecs/FieldOp.h:
* src/Codecs/SchemaElement.cpp:
Add the name of the operation to the "...not allowed in this
context" message
* src/Common/Decimal.cpp:
* src/Tests/testCommon.cpp:
Fix a problem comparing Decimals with differing exponents.
Unit test to catch it.
* src/Examples/Examples/CommandArgParser.cpp:
The -V and -? options were appearing multiple times when there
were multiple commmand argument handlers.
Thu Jun 24 19:47:45 UTC 2010 Dale Wilson <[email protected]>
* src/Common/Decimal.h:
* src/Common/Decimal.cpp:
* src/Tests/testCommon.cpp:
Fix some calculation problems revealed by new unit test in testCommon
-= was producing incorrect results
/= had normalization/rounding problems
* src/Communication/MulticastSender.h:
* src/Communication/MulticastSender_fwd.h:
New: support for sending via multicast
* src/Examples/FileToMulticast/FileToMulticast.h:
* src/Examples/FileToMulticast/FileToMulticast.cpp:
Switch to using MulticastSender
Tue Jun 22 14:18:32 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/DataDestination.h:
getBuffer returns a valid handle even before the DataDestination
is used.
* src/Communication/TCPReceiver.h:
Fix an initialization problem.
Add methods to send data back to the counterparty via the TCP socket.
In particular you can pass a DataDestination containing
encoded data to the send() method and it will be sent to the socket.
* src/Examples/FileToTCP/FileToTCP.h:
* src/Examples/FileToTCP/FileToTCP.cpp:
Temporary: add a '-hack" option that simply listens and echo's
any response from the sender. This really should be a separate
program.
* src/Examples/InterpretApplication/InterpretApplication.cpp:
Temporary: add a console command 'h' that sends "Hello, World!"
back thru the TCPReceiver. Throws and exception if not configured
for TCP.
Fri Jun 18 14:22:29 UTC 2010 Dale Wilson <[email protected]>
* src/Application/DecoderConnection.cpp:
* src/Codecs/XMLTemplateParser.h:
Move #include to reduce compile-time coupling.
* src/Examples/Examples.mpc:
* src/Examples/InterpretFAST:
* src/Examples/InterpretFAST/InterpretFAST.h:
* src/Examples/InterpretFAST/InterpretFAST.cpp:
* src/Examples/InterpretFAST/main.cpp:
* src/Examples/MulticastInterpreter:
* src/Examples/MulticastInterpreter/MulticastInterpreter.h:
* src/Examples/MulticastInterpreter/MulticastInterpreter.cpp:
* src/Examples/MulticastInterpreter/main.cpp:
Removed InterpretFAST and MulticastInterpreter. The
InterpretApplication provides all capabilities from these
programs (and much more).
Some command line options need to be changed to use
InterpretApplication rather than InterpretFAST and MulicastInterpreter:
Replace with
-f filename -file filename
-o output_file >>output_file
-head count -limit count
-r -reset
-s -strict
-vp, -vd, -vx -vo filename
-b size -buffersize size
-# count -buffers count
-l ip -mlisten ip
-m ip -p port -multicast ip:port
Thu Jun 17 15:09:43 UTC 2010 Dale Wilson <[email protected]>
* src/Communication/MulticastReceiver.h:
* src/Communication/TCPReceiver.h:
Provide direct access to the sockets inside the *Receivers
for special purpose needs. Until the encoder work is complete
this can be used to send to the TCP counterpary. The multicast
method is there only for completeness.
Fri Jun 11 17:37:28 UTC 2010 Dale Wilson <[email protected]>
* src/Messages/MessageFormatter.h:
Include file name capitalization error.
Fri Jun 11 15:45:55 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/FieldInstruction.h:
* src/Codecs/FieldInstruction.cpp:
* src/Codecs/FieldInstructionTemplateRef.h:
* src/Codecs/FieldInstructionTemplateRef.cpp:
* src/Codecs/SegmentBody.cpp:
Improve handling of recursive templateRefs.
This addresses Issue #57. The new testSequences
was the test that revealed this problem (thanks Matt).
There are still possible pathological cases but they
are much less likely to be used.
* src/Codecs/XMLTemplateParser.cpp:
* src/Codecs/TemplateRegistry.cpp:
Improve formatting of verbose output to make the results more
like legal XML.
* src/Messages/MessageFormatter.cpp:
Changes to make displays of complex messages more readable.
* src/Codecs/FieldInstructionGroup.cpp:
Change handling of groups to make merging group fields
into the parent segment more under the control of the
application. This addresses a problem that showed
up trying to write a round-trip test. If the group was
merged by the decoder, then the generic accessor used
by the encoder couldn't find it because it no longer
existed as a group. Hence the round-trip would not
accurately reproduce the original input.
* src/Tests/testFieldInstructions.cpp:
* src/Tests/testGroupReferences1.cpp:
* src/Tests/testSequences.cpp:
New or Improved tests for the above.
Wed Jun 2 15:49:44 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/DataDestination.h:
* src/Codecs/Encoder.cpp:
* src/Codecs/FieldInstructionAscii.cpp:
* src/Codecs/FieldInstructionGroup.cpp:
* src/Codecs/PresenceMap.cpp:
* src/Common/QuickFAST_Export.h:
* src/Common/WorkingBuffer.h:
* src/Common/WorkingBuffer.cpp:
* src/Examples/Examples/MessageInterpreter.h:
* src/Examples/Examples/MessageInterpreter.cpp:
Add quite a bit of additional debugging information to verbose displays.
All of which was necessary in order to diagnose the problem
reported in Issue 56.
Issue 56 turned out to be a buffer management problem during
encoding nested groups. The encoder ended up encoding into the
wrong partial buffer after returning from nested groups.
* src/Messages/MessageFormatter.h:
* src/Messages/MessageFormatter.cpp:
Extract message formatting into separate class
to make generating debug/diagnostics messages easier.
* src/Tests/testGroupReferences1.cpp:
The test included as part of Issue #56 turned into a new unit test.
Note that it differs quite a bit from the original submission.
Thu May 27 15:31:03 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/MessagePerPacketAssembler.cpp:
Resset the DataSource after decoding errors so the decoder
will skip to the beginning of the next packet.
Issue # 55
Wed May 26 15:13:49 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/DataDestination.h:
* src/Codecs/DataSource.h:
* src/Codecs/FieldOp.h:
* src/Codecs/FixedSizeHeaderAnalyzer.h:
* src/Codecs/NoHeaderAnalyzer.h:
* src/Examples/Examples/ValueToFix.h:
* src/Messages/FieldIdentity.h:
* src/Messages/FieldSet.h:
* src/Messages/FieldSet.cpp:
* src/Messages/MessageAccessor.h:
* src/Messages/SpecialAccessors.h:
* src/Tests/testBiggestValue.cpp:
Update Doxygen comments to track recent changes.
Remove the getField by name method from field set. Getting
a field from a field set now always requires a FieldIdentity.
Change the constructor for a FieldIdentity to includde ID.
Change the equality operator for FieldIdentity so the ID
is only compared if it is specified in both of the identities
being compared. -- Matching names are good enough if the
id is not available.
Tue May 25 18:51:22 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/XMLTemplateParser.cpp:
Use XMLString::release to release Xerces-allocated strings.
* src/Examples/Examples/ValueToFix.h:
* src/Examples/Examples/ValueToFix.cpp:
New ValueMessageBuilder that writes a FIX data file.
* src/Examples/InterpretApplication/InterpretApplication.h:
* src/Examples/InterpretApplication/InterpretApplication.cpp:
-ofix option uses ValueToFix (i.e. interprets the messages as FIX messages)
-console enables console commands: <q>uit <p>ause and <r>esume
* src/Messages/ValueMessageBuilder.h:
* src/Messages/ValueMessageBuilder_fwd.h:
Fix minor whitespace formatting issue.
Declare smart pointer to ValueMessageBuilder for occasional use.
Fri May 21 20:44:05 UTC 2010 Dale Wilson <[email protected]>
* src/Messages/MessageAccessor.cpp:
New file, missing from previous checkin.
Fri May 21 18:37:24 UTC 2010 Dale Wilson <[email protected]>
* src/Codecs/DataDestination.h:
Add support for asio gather writes
* src/Codecs/DataSource.h:
* src/Codecs/DataSource.cpp:
Remove deprecated methods
* src/Codecs/FieldInstruction.h:
* src/Codecs/FieldInstruction.cpp:
* src/Codecs/FieldInstructionAscii.cpp:
* src/Codecs/FieldInstructionBlob.h:
* src/Codecs/FieldInstructionBlob.cpp:
* src/Codecs/FieldInstructionDecimal.cpp:
* src/Codecs/FieldInstructionGroup.cpp:
* src/Codecs/FieldInstructionInteger.h:
* src/Codecs/FieldInstructionSequence.cpp: