CoredDX DDS Release Notes: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.16 - ID 601: Fixed: RTPS: The UDP transport fails to advertise all possible Locators (regression introduced with Bug 580) - ID 600: Added: PORT: Support ThreadX RTOS on ARM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.15 - ID 599: Fixed: CORE: improve handling of system clock backwards jump ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.14 - ID 598: Fixed: C#: language binding is missing the DomainParticipantQos.thread_model QoS Policy - ID 597: Fixed: C#: WinCE port caused regression in C# support for WinXP - ID 596: Fixed: C#: Data alignment issue under WinCE on ARM may cause crash ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.13 - ID 588: Added: PORT: Add example for TI DSPBIOS on C67xx DSP (with QNX on ARM GPP) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.12 - ID 595: Fixed: CORE: RTPS HistoryCache should clear the key buffer to avoid UMR - ID 594: Fixed: CORE: DDS_Entity operations should perform error check on param values - ID 593: Fixed: C#: QueryCondition.get_query_expression() doesn't return valid string - ID 592: Fixed: C#: DomainParticipantListener.on_inconsistent_topic() is not invoked properly - ID 591: Added: C#: support .NET Compact Framework (v3.5) - ID 590: Added: PORT: WinCE 6 on ARM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.11 - ID 589: Fixed: DDL: fix parsing error on IDL 'interface' syntax - ID 588: Added: PORT: Support TI DSPBIOS on C67xx DSP (with QNX or Linux on ARM GPP) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.10 - ID 587: Fixed: DDL: Java generated code not compatible with Android API 15 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.9 - ID 585: Fixed: DDL: Java generated code for an array with 'const' symbol used as size doesn't compile - ID 584: Fixed: RTPS: Ingore a remote writer lease_duration of ZERO (from OpenSplice) - ID 583: Fixed: RTPS: Handle the RTPS InfoSource submessage correctly (OpenSplice interop) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.8 - ID 582: Fixed: C#: Subscriber::create_datareader() -> DataReader::enable() may terminate with AccessViolation - ID 581: Fixed: JAVA: Detach native threads prior to thread destruction to avoid warning under some Java VM's ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.7 - ID 580: Added: TRANSPORT: Support for RTPS over TCP/IP - ID 579: Fixed: CORE: potential deadlock during DomainParticipant_delete_contained_entities() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.6 - ID 578: Added: PORT: Support INTEGRITY 178b RTOS - ID 577: Fixed: C++: DomainParticipant::get_discovered_participant_data() can crash if InstanceHandle is unknown ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.4 - ID 574: Fixed: DDS: The default reliability kind for Writers should be RELIABLE not BEST_EFFORT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.3 - ID 572: Added: RTPS: Append HB (piggyback) to DATA when possible to reduce UDP datagrams - ID 571: Added: QUERY_CONDITION: Optimize QueryCondition with index ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.2 - ID 562: Added: RTPS: Support 'large' data with DATAFRAG and NACKFRAG submessages - ID 555: Added: DynamicType: support XCDR and CDR4 encodings in DynamicTypeTypeSupport ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.5.1 - ID 554: Added: RTPS: Support DATA_REPRESENTATION QoS policy and XCDR (subset) encoding ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p25 - ID 575: Fixed: CORE: changing the system date may result in loss of DDS communication - ID 505: Fixed: DDL: Fully support arrays of structures containing some key fields - ID 455: Added: DYN_TYPE: full support for ENUM type in the DynamicType API - ID 378: Added: C++: Allow using method from derived types without using ::narrow() to cast ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p24 - ID 573: Fixed: SEGV due to race condition in libdds_cf.so during entity match processing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p23 - ID 570: Fixed: RTPS: potential memory leak in RELIABLE Reader under heavy load - ID 569: Fixed: C/C++: improve error handling in unmarshal of fixed length strings - ID 568: Fixed: JAVA: non-ascii strings may cause buffer overflow exception ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p22 - ID 567: Fixed: DynamicType: potential crash due to TypeCode parsing error - ID 566: Added: RTPS: Detect and handle a peer Participant with non-unique GUID - ID 565: Fixed: C++: Race condition and potential crash in multi-threaded app during entity deletion - ID 564: Fixed: Writer should propagate unregister_instance() on previously disposed instance - ID 561: Fixed: set_default_dr_qos(), set_default_dw_qos() inconsistent resource limits error ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p21 - ID 560: Fixed: DDL: generated Java code for marshal of sequence of union doesn't compile - ID 559: Fixed: DDL: generated Java code for union constructor is not accessible outside package - ID 558: Fixed: DDL: generated Java code for constant of type 'enum' doesn't compile ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p20 - ID 556: Fixed: RTPS: RELIABLE Writer may send redundant data in response to NACK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p19 - ID 553: Fixed: CORE: Improve precision of LIFESPAN processing to expire samples - ID 552: Fixed: CORE: Memory not reclaimed after remote DomainParticipant(s) terminate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p18 - ID 230: Fixed: RTPS: LIFESPAN qos should expire samples in Writer cache ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p17 - ID 551: Fixed: C#: Received 'String' values include '\0' terminator at end - ID 550: Fixed: C#: ContentFilteredTopic and QueryCondition get_expression_parameters() fails under .NET 4 - ID 549: Fixed: C++: DomainParticipant is missing add_transport() method - ID 548: Fixed: DDL: Potential crash generating code for UNION type with multiple labels on a member - ID 547: Fixed: CORE: WiFi network adapters not detected properly under Win Vista and Win7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p16 - ID 546: Fixed: DDL: generated Java code to unmarshal enum may produce compile error - ID 545: Fixed: DDL: type lookup not finding type definition referenced from module continuation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p15 - ID 543: Fixed: DDL: coredx_ddl command-line improvements (add -d help desc, no license req for -h) - ID 542: Fixed: RTPS: Potential crash after processing DomainParticipantData unreg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p14 - ID 540: Fixed: RTPS: Fix regression introduced by ID 535 fix ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p13 - ID 539: Added: RTPS: Allow 'full' Reader to pause a Writer with a special ACKNACK (avoid HB/ACKNACK storm) - ID 536: Fixed: RTPS: ReaderListener::on_data_available not invoked correctly if pre-cache is disabled - ID 535: Fixed: RTPS: Pre-cached samples may not be processed properly if no further samples arrive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p12 - ID 534: Fixed: RTPS: UnixDomain transport may overwrite stack on OS without IOV_MAX defined (eg, QNX) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p11 - ID 533: Fixed: DYNAMIC_TYPE: reception of zero-length sequence may cause memory leak - ID 532: Added: CDD: support configuration of the Unix Domain Socket filename ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p10 - ID 531: Added: RTPS: Allow configuration of pre-cache size for RELIABLE Readers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p9 - ID 530: Fixed: DDL: setting partition with >1 strings my cause out-of-bounds read - ID 529: Added: RTPS: disable multicast completely if COREDX_MULTICAST_TTL = 0 - ID 528: Added: JAVA: support discovery configuration with DomainParticipantQos.peer_participants ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p8 - ID 527: Added: DDL: generate 'KeyFilter' support code - ID 526: Fixed: RTPS: HB may have 'finalFlag =1' even when there are unacked samples - ID 525: Fixed: CDD: support CDD kill/restart - ID 523: Fixed: CDD: CDD may fail to advertise builtin discovery endpoints on network - ID 522: Fixed: CONTENT_FILTER - SQL IN() clause fails on big-endian platforms - ID 520: Fixed: CDD: handle changing IP addresses - ID 519: Fixed: CDD breaks particpant_index computation leading to comm failures - ID 518: Fixed: CDD can detect disappearance of local DP before lease_duration expires ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p7 - ID 521: Fixed: RTPS: write socket improperly bound (results in large recv-q) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p6 - ID 517: Fixed: RTPS: configure inclusion of Vendor specific MSGLEN submessage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p5 - ID 516: Fixed: RTPS: parsing of RTPS INFO_DEST submessage with GUIDPREFIX_UNKNOWN - ID 515: Fixed: CORE: improve latency response of no-thread DomainParticipant::do_work() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p4 - ID 514: Fixed: CORE: Potential deadlock in Reader when matched Writer with LIFESPAN!=INFINITE is deleted ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p3 - ID 513: Fixed: C#: Calling convention mismatch issue detected under .NET 4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p2 - ID 512: Fixed: CONTENT_FILTER: Unsigned field values with MSB set fail to compare properly - ID 511: Fixed: CORE: Protect against redundant 'delete' calls (delete_participant(), ...) - ID 510: Fixed: C#: Fix memory leak in C# language binding (handle to unmanaged memory) - ID 509: Fixed: C#: Listener callback methods may cause Access Violation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0_p1 - ID 508: Fixed: C++: copy_from_topic_qos() overwrites 'non-topic' policy values - ID 507: Fixed: CORE: DomainParticipant::find_topic() should return a new Topic instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.4.0 - ID 504: Fixed: DDL: Generated 'C' code may generate warnings (unused parameter) - ID 503: Fixed: CORE: Large (>MAX_MSG_SIZE), fixed size data types should generate OUT_OF_RESOURCES error - ID 502: Fixed: RTPS: Data may improperly cross domains when running with 'no-thread' option - ID 467: Added: DDL: support '-d ' option for C and C++ generation - ID 317: Added: PORT: include C and C++ API for use on Android (in addition to Java) - ID 458: Fixed: PORT: support PPC74xx on Linux 2.6 - ID 457: Fixed: RTPS: Improve support for non-multicast enabled NIC's - ID 456: Fixed: CORE: fails to detect LOOPBACK and MULTICAST address on BigEndian machines - ID 440: Fixed: Improve SPDP protocol handling of Participants w/only UNICAST locators - ID 434: Fixed: Reliable writers should detect unresponsive reliable readers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.3.1 - ID 501: Fixed: RTPS: RELIABLE Reader may miss sample(s) written after writer matches reader and before reader matches writer - ID 499: Fixed: CDD: (bug 475 regression) Discovery information sent to incorrect locator when using CDD - ID 495: Fixed: DDL: generated C++ code may cause compiler warnings for 'unused variable' - ID 494: Added: CORE: add DomainParticipant::builtin_wait_for_acknowledgments() - ID 493: Fixed: RTPS: (bug 475 regression) Builtin topic data may be sent to incorrect locator - ID 492: Fixed: CORE: Publisher delete_contained_entities() may deadlock - ID 491: Fixed: LOG: Possible segfault in 'log' version of library when DISCOVERY_LOGGING is enabled - ID 490: Added: CORE: write() should check validity of arguments in logging version of library - ID 489: Added: CORE: unregister_instance() should check validity of arguments in logging version of library - ID 488: Fixed: RTPS: changes to PARTITION qos not sent after DW or DR is enabled - ID 486: Fixed: CORE: register_instance() should honor 'max_blocking_time' and may return TIMEOUT - ID 485: Fixed: RTPS: Reader cache fails to purge DISPOSED instance with no samples and no writers - ID 484: Fixed: DDL fails to recognize key of embeded struct when referenced by typedef name - ID 483: Fixed: RTPS: ReadCondition trigger may fail for 'NOT_READ' if sample arrives before return_loan() completes - ID 482: Fixed: RTPS: RELIABLE/TRANSIENT_LOCAL writer does not always purge instances from cache when allowed - ID 480: Fixed: RTPS: large data sample (65324...65400 bytes) not transmitted correctly - ID 479: Fixed: DynamicType: Potential memory leak with DynamicType sequences - ID 478: Fixed: CDD: Fails to transmit discovery info containing large typecode - ID 477: Added: DDL: Include version information in generated source code - ID 475: Fixed: RTPS: Communication fails with no configured network interface - ID 473: Fixed: RTPS: large samples (~64K+) may cause corruption or segfault - ID 472: Fixed: DDL: use of 'typedef' in ddl input may produce invalid generated code - ID 470: Fixed: DDL: C++ generated code for sequences of 'typedefd' structs/unions may crash - ID 469: Fixed: DDL: C++ generated code may use incorrect namespace in user defined sequences - ID 466: Fixed: RTPS: writer cache management bug - purge instance after dispose() + unregister() sequence - ID 465: Fixed: RTPS: writer may sometimes 'push' duplicate samples - ID 464: Fixed: DynamicType: DDS_DynamicType_set_max_length (-1) not handled correctly - ID 462: Fixed: CONTENT_FILTER: a series of OR conditions followed by other conditions fails - ID 461: Fixed: DDL: Possible memory leak in generated C++ code for union with complex allocated struct member - ID 460: Fixed: CDD: Central Discovery Daemon doesn't recognize existing network DWs and DRs on startup - ID 459: Fixed: RTPS: dynamic discovery may fail when TYPECODE data is too large - ID 453: Fixed: DDL: generated C++ code doesn't include appropriate header file - ID 451: Fixed: DDL: generated C++ union unmarshal code may leave union in invalid state - ID 450: Added: CORE: support QueryCondition as argument to read_w_condition() and take_w_condition() - ID 449: Added: PORT: support MicroBlaze soft-cpu on Xilinx FPGA - ID 448: Fixed: DDL: generated C++ code may incorrectly delete uninitialized union members - ID 446: Fixed: DDL: generated local variables may clash with improperly scoped pre-defined macros (eg: i386) - ID 445: Fixed: DDL: constants are not generated properly for Java - ID 444: Fixed: DDL: constants using a typedef'd type may generate code that will not compile - ID 443: Fixed: DDL: a constant definition with an expression may cause coredx_ddl to crash - ID 442: Added: DDL: support re-opening a module to add more types and constants - ID 441: Fixed: COREDX_USE_MULTICAST env var is not respected - ID 439: Fixed: GAP message is incorrectly delivered to some readers - ID 438: Fixed: ContentFilter: single character string constant incorrectly converted to integer - ID 437: Fixed: C++: Improve GuardCondition API - ID 435: Fixed: DDL Compiler: possible segfault when using enum symbol constants ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.3.0 - ID 432: Fixed: Java: Using handle=null with DataReader::read_next_instance() fails - ID 431: Fixed: lookup_instance() may return NIL for known key values (with variable len string in key) - ID 430: Fixed: writer-side filtering may fail to correctly deliver dispose message - ID 425: Fixed: Java: Entity::get_status_changes() should return 'int' - ID 423: Fixed: DataWriter::wait_for_acknowledgments() may block longer than necessary - ID 422: Fixed: possible deadlock in WaitSet / Condition :: detach/delete - ID 421: Added: DR::wait_for_historical_data() - ID 420: Fixed: Eliminated C++ compiler warnings (-W -Wall) in dds header files and generated code - ID 417: Fixed: Java: Status objects (for example: LivelinessLostStatus) do not have a public constructor - ID 416: Fixed: CORE: DomainParticipant_get_discovered_participant_data() had incorrect argument order. [ was not compliant with the standard, *** NOTE: API CHANGE *** ] - ID 415: Fixed: TypeCode parsing 'sequence' or 'string' (max_len == -1) => unbounded - ID 414: Fixed: Realible Reader GAP_CHANGE processing bug when (first==last) - ID 413: Fixed: Writer-side filtering GAP creation bug - ID 412: Fixed: Writer-side filtering may cause dropped data under heavy network load - ID 411: Fixed: Reliable Reader pre-cache management bug causes invalid ACKNACK - ID 410: Fixed: Discard received data if Union discriminator is unrecogized (extensible unions) - ID 409: Fixed: DDS_DynamicTypeTypeSupport_register_type() will copy the provided TypeSupport - ID 406: Fixed: C++ DynamicType support moved to separate (optional) library - ID 404/408 Fixed: CORE: Fixed error in type comparison for 'extensible unions' - ID 403 Added: CORE: Include numeric VERSION id in include/dds/coredx_version.h - ID 402/405 Fixed: CONTENT_FILTER: Optimize writer-side filtering for multiple RELIABLE readers - ID 401 Added: CORE: Support 'extensible union' types - ID 400/407 Fixed: Registering a type under an already known typename may cause segfault - ID 397 Fixed: DYNAMIC_TYPE: memory corruption with Seq max_length undefined - ID 396 Fixed: C++: Built-in entities not correctly linked to Core - ID 395 Fixed: return_loan() should clear the sequences - ID 394 Added: CORE: add API to control thread creation and invoke coredx work - ID 393 Fixed: CORE: C API get_discovered_topic_data() arguments reversed - ID 391 Fixed: CORE: C API wait_for_acknoledgments() is misnamed - ID 389 Added: CONTENT_FILTER: support filtering at writer - ID 386 Added: DYNAMIC_TYPE: support for DynamicTypes in C++ - ID 385 Fixed: CORE: recvfrom() errors printed when peer exits uncleanly (on Windows) - ID 384 Fixed: RTPS: PARTICIPANT_GUID.entityId not populated correctly - ID 383 Fixed: C++: DDS::DURATION_INFINITE_NSEC value is incorrect, should be 0xffffffff - ID 382 Fixed: DDL: coreDX_ddl compiler does not generate correct Java code for complex Union types - ID 381 Fixed: DDL: remove empty union in C++ generated code - ID 380 Fixed: DDL: generated C++ code missing _d() and _d( inactive -> active not handled properly - ID 307 Fixed: CORE: subscriber data_on_readers status - ID 306 Fixed: DDS: write/register_instance() poor performance (+50000 instances/sec) - ID 305 Fixed: DDS: DR race condition during enable() - ID 304 Fixed: DYN_TYPES: improve fixed length string support - ID 303 Fixed: RTPS: default multicast locator 'is_multicast' flag not set - ID 302 Fixed: RTPS: proxies fail to use 'default' locators if no locators defined - ID 300 Fixed: CONTENT_FILTER: sends DRD discovery too early - ID 299 Fixed: VxWorks: getaddrinfo() bug - ID 298 Fixed: DISCOVERY: Built-in Participant writer race - ID 297 Fixed: RTPS: Builtin reader race condition if application calls BI_Reader->take() - ID 296 Fixed: DISCOVERY: Race condition in matching DW/DR resulting in failure to match - ID 294 Fixed: LISTENER: augment listener API with self and callback_data args - ID 293 Fixed: MEMORY: instrument memory allocation/free - ID 292 Fixed: DDL: generated 'type' __alloc() has bogus parameter - ID 290 Fixed: DYN_TYPES: bug in union handling of create_typecode_from_type() - ID 288 Fixed: BUILTIN: copy typecode in builtin TypeSupport::copy() method - ID 287 Fixed: CORE: bug in num active writers management - ID 286 Fixed: JAVA: dw dispose / register / unregister method binding - ID 285 Fixed: MUX: doesn't forward 'DISPOSE' messages - ID 284 Fixed: implement wait_for_acknowledgements() - ID 283 Fixed: RTPS: history cache resource counting corruption - ID 281 Fixed: PORT: Support VxWorks 5.5.1 on PPC 405 - ID 280 Fixed: CONTENT_FILTER: support sql 'in' expression - ID 279 Fixed: QOS: allow user to configure 'max_packet_size' per writer - ID 278 Fixed: DYN_TYPES: support dynamic type DataWriter - ID 277 Fixed: DDL: potential memory corruption processing '-e' command line arg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.1.0 New features and a few bug fixes: - ID 272 TOPIC: detect and report inconsistent topic/type - ID 271 C++: sequence optimization (byte sized elements) - ID 270 CONTENT_FILTER: optimize 'key field' filter execution with index - ID 269 RTPS: improve handling of GAP msg - ID 268 Fixed: CONTENT_FILTER: memory corruption with IMMEDIATE STRING argument - ID 266 CORE: optimize instance management - ID 265 CORE: return TIMEOUT from DW::write() routines - ID 264 DDL: remove keymap related TypeSupport routines - ID 262 CORE: clean out unused code/fields - ID 261 Fixed: CONTENT_FILTER: memory leak in delete_datareader() when using CFT - ID 260 CONTENT_FILTER: support > 255 parameters - ID 259 Fixed: CORE: ReadCondition_get_datareader() fails to return correct DR - ID 258 Fixed: CORE: ReadCondition/QueryCondition mask states - ID 257 Fixed: DYN_TYPES: segfault when data type contains 'key' and an 'array' - ID 255 PORT: Support NexusWare OS - ID 254 RTPS: provide backoff mechanism for HB - ID 252 QOS: allow user to configure (some) QoS policies for builtin entities - ID 251 RTPS: Reader pre-cache samples (reliable) - ID 250 PORT: Support LynxOS SE - ID 249 Fixed: CORE: function name mis-spelling - ID 248 DDL: LONG DOUBLE marshal/unmarshal broken (long double no longer supported) - ID 247 Fixed: DYN_TYPES: marshal of 'octet', 'byte', and 'boolean' is broken - ID 246 DDL: generate code that supports DLL generation under Windows - ID 244 DDL: support top-level unions - ID 243 Fixed: DDL: union case values of character literals fail - ID 242 DYN_TYPES: provide dynamic type support for VxWorks - ID 241 Fixed: SPARC: bus error in unmarshal (of RTPS header info) - ID 240 Fixed: JAVA: unmarshal does not alloc inner struct/union - ID 239 DYN_TYPES: support 'long double' in dynamic types (long double no supported) - ID 238 Fixed: DDL: handle unterminated 'fixed length' strings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.0.2 - Bug 221/234: Fixed: correct processing of endian flag in coredx_ddl - Bug 226: Fixed: memory leak in latency_test example code - Bug 231/235: Fixed: Windows builds need debug version of CPP ContentFilter lib - Bug 232: Fixed: error with interface enumeration under Win2K - Bug 233: Fixed: update example NMakefile(s) to work under VC6 - Bug 236: Fixed: potential Bus Error under SPARC Solaris due to memory alignment - Bug 237: Fixed: potential name clash in generated Java copy() routine ('from') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 3.0.1 - Major new capabilities include: DynamicTypes, advanced QoS policies (Lifespan, SourceOrder, ReaderDataLifecycle, Exclusive Ownership), transport configuration (Heartbeat Period, Ack Response Delay, Nack Response Delay), unified directory structure - Bug 209: Fixed: port to Windows2000, VC6 platform - Bug 222: Fixed: port to PPC architecture - Bug 225: Fixed: improve header prototypes for ContentFilteredTopics ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.2.6 - Bug 220: Fixed: intermitent pausing of sends in writer (adversely affects latency) - Bug 228: Fixed: high latency on Solaris platforms - Bug 229: Fixed: intermitent delays on Solaris platforms - Additional performance focused improvements for latencies < 70usec ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.2.4 - Bug 205: Fixed: Support for compiling Java apps under MinGW - Bug 210: Fixed: Potential memory corruption when processing UNION data type in coredx_dll - Bug 211: Fixed: Potential memory corruption when deleting a DataWriter with TRANSIENT_LOCAL durability and history.depth > 1 - Bug 214: Fixed: Signature of DataReader::get_key_value() and lookup_instance() updated to match Standard API - Bug 215: Fixed: Signaure of DataWriter::write_w_timestamp() and dispose_w_timestamp() updated to match Standard API - Bug 216: Fixed: updated NMakefiles in examples/ to fix link errors - Bug 219: Fixed: Ported latency test code (examples/latency_test) to Windows and Solaris ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.2.3 - Bug 213: Fixed: Possible memory leak in C++ return_loan() implementation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.2.2 - Support for JAVA - Java API documentation available in doc/ subdirectory and on TOC WWW site - Added CoreDX DDS Windows DLL - Bug 200: Fixed: Memory leak in C++ TypeSupport clear() operation - Bug 202: Fixed: ContentFiltered topic sometimes is missing data - Bug 204: Fixed: Race condition during DataReader/DataWriter . enable() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.2.1 - Support for VxWorks 5.5.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.2.0 - Major update to IDL to improve supoprt for: enums, unions, sequence, sequence - Bug 186: Fixed: DDL compiler 'typedef' stmt generates syntax error - Bug 187: Fixed: DDS::Publisher::set_default_datawriter_qos(), DDS::Subscriber::set_default_datareader_qos() rejects valid qos values as invalid - Bug 188: Fixed: potential buffer overflow - Bug 189: Fixed: Add RTPS INFO_TIMESTAMP to data messages - Bug 192: Fixed: Proper build flags for 'content filter' library (libdds_cf etc) - Bug 193: Fixed: Add performance test code examples (examples: bwtest and latency_test) - Bug 194: Fixed: BEST_EFFORT reader and writer should not exchange ACKNACK and HB - Bug 196: Fixed: Improved data agregation for additional throughput - Bug 197: Fixed: Reduce memory allocation for data messages (use env COREDX_MAX_PACKET_SIZE ) - Bug 198: Fixed: Optimize rtps message construction - Bug 199: Fixed: Handle multiple network interfaces / locators correctly ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.6c - Bug 184: Improved multicast handling of COREDX_IP_ADDR configuration - Bug 185: Implement DDS::DomainParticipant::ignore_participant() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.6b - Bug 178: Fixed user defined data structures with embedded structs containing keys - Bug 179: Fixed race condition during deletion of builtin DataReader(s) - Bug 180: Fixed handling of max_blocking_time in DataWriter::write() routines - Bug 181: Updated MinGW target - Bug 183: Fixed data/time discrepancy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.6a - Bug fix release: - Bug 175: Configure DomainParticipant static peers through QoS. (Augments discovery.) - Bug 176: sequence declarations generated incorrectly - Bug 177: solaris fix for "error sending msg" for messages with many segments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.6 - Major update to IDL support: additional types (long long, long double, unions) better support for nested namespaces support for arrays of arrays better support for typedefs - Bug 121: Fixed: support 'long long', 'unsigned long long', 'long double' - Bug 169: Fixed: correct padding for initial 8+ byte element - Bug 170: Fixed: don't send extraneous bytes for 'bounded' samples - Bug 43: Fixed: emit proper code for top level typedefs - bug 119: Fixed: Support IDL embedded structures / namespaces for C and C++ - Bug 172: Fixed: Support IDL Unions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.5 - Bug 167: Fixed: potential deadlock in DomainParticipant::enable() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.4 - Add example Makefiles for VxWorks - Bug 165: Fixed: Reader pauses after a dropped HB (when RELIABLE) - Bug 166: Fixed: RELIABLE reader can drop samples under heavy load ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.3 - further support for ContentFilteredTopics - VxWorks 6.6 port - include 'logging' version of library in distribution (static link only) - Bug 151: Fixed: coredx_ddl -f argument processing error on Windows output files are now put in current working directory consistent with other platforms - Bug 153: Fixed: late joining reader won't flood network with invalid ACKNACK - Bug 154: Fixed: read/take_next_instance() functions properly -- no missed instances! - Bug 157: Fixed: C++ library - Builtin-Entities used before initialized / race condition - Bug 158: Fixed: segfault in DW/DR ::copy_from_topic() - Bug 159: Fixed: C++ library - DomainParticipantFactory::create_participant() can return bad pointer - Bug 160: Fixed: don't install listener on RTPS::ParticipantMessage reader (there is no corresponding DDS entity) - Bug 161: Fixed: CacheChange 'valid_data' not set properly - Bug 162: Fixed: C++ library - Install "NULL" listener causes seg fault - Bug 163: Fixed: StatelessReader listener called with lock held - Bug 164: Fixed: C++ library WaitSet api is flawed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.2 - for Windows (VS2005 and VS2008): added support for debug libraries Use the following libraries for linking in "Debug" builds: dds_d.lib dds_cpp_d.lib - for Windows: added VisualStudio project/solution files to the example code To use: 1) Set COREDX_HOME and TLM_LICENSE environment variables 2) run VisualStudio 3) open examples/hello_c/hello_c.sln or examples/hello_cpp/hello_cpp.sln ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.1 - added support for VisualStudio 2005 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.1.0 - added support for the QNX Neutrino(r) Operating System 6.4 on x86 - added API for ContentFilteredTopics, QueryConditions, and MultiTopics (these are still not fully supported) - improved IP Address detection properly handles interfaces with invalid/missing IP addresses - improved logging facility (added QoS policy to control logging) - fixed DataReader::read_next_instance() and similar API routines ( prior to this fix, these routines were incorrectly reporting 'not implemented' ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.0.6 - removed reference to a Microsoft Vista only function call (genereated run-time error when running on Microsoft XP) - Improved RTPS History Cache change mgmt when history_depth = 1 - this version is available only for Windows at this time ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.0.5 - fixed bug with C++ language binding on Linux 64bit build - improved C++ binding. Implemented the following API routines: DDS::DomainParticipant::get_discovered_participant_data() DDS::DomainParticipant::get_discovered_topic_data() DDS::DataReader::get_matched_publication_data() DDS::DataWriter::get_matched_subscription_data() - added declaration for missing DDS_GuardCondition__free() - added declaration for missing DDS_WaitSet__free() - moved include/dds/core/dds_builtin.h to include/dds/dds_builtin.h - moved include/dds/cored/dds_builtinDataReader.h to include/dds/ddds_builtinDataReader.h - changed Windows build packaging method from tar/gz to zip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.0.4 - support Solaris i686pc and sun4u targets - support for mingw targets - support for older gcc compiler and libc on Linux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.0.3 - fixed bug with 'deadline' computing when system clock is not synchronized - fixed bug in computation of fixed sized marshall data ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.0.2 - fixed off-by-one error in computation of LOST sample count - implemented blockind DDS::DataWriter::write() when RELIABLE and KEEP_ALL and RESOURCE_LIMITS - optimize memory utilization during marshall ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VERSION 2.0.1 - Support RTPS wire-protocol