0% found this document useful (0 votes)
675 views1,794 pages

RTI Connext Java API v5.0.0

This document provides an API reference for RTI Connext Java version 5.0.0. It includes documentation on modules, namespaces, classes, QoS policies and other aspects of the API. The document is generated by Doxygen and contains over 100 sections describing the various parts of the Connext Java API.

Uploaded by

fcaballerog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
675 views1,794 pages

RTI Connext Java API v5.0.0

This document provides an API reference for RTI Connext Java version 5.0.0. It includes documentation on modules, namespaces, classes, QoS policies and other aspects of the API. The document is generated by Doxygen and contains over 100 sections describing the various parts of the Connext Java API.

Uploaded by

fcaballerog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1794

RTI Connext Java API

Version 5.0.0
Generated by Doxygen 1.5.5
Mon Aug 13 09:02:20 2012

Contents
1 RTI Connext

1.1

Feedback and Support for this Release. . . . . . . . . . . . . . . .

1.2

Available Documentation. . . . . . . . . . . . . . . . . . . . . . .

2 Module Index
2.1

Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Namespace Index
3.1

Package List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Class Index
4.1

Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Class Index
5.1

Class List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Module Documentation

5
5
9
9
13
13
21
21
41

6.1

ASYNCHRONOUS PUBLISHER . . . . . . . . . . . . . . . . . .

41

6.2

AVAILABILITY . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

6.3

BATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

6.4

Conditions and WaitSets . . . . . . . . . . . . . . . . . . . . . . .

45

6.5

DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

6.6

DATA READER PROTOCOL . . . . . . . . . . . . . . . . . . .

47

6.7

DATA READER RESOURCE LIMITS . . . . . . . . . . . . . .

48

6.8

DATA WRITER PROTOCOL . . . . . . . . . . . . . . . . . . .

50

ii

CONTENTS
6.9

DATA WRITER RESOURCE LIMITS . . . . . . . . . . . . . .

51

6.10 DEADLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

6.11 DESTINATION ORDER . . . . . . . . . . . . . . . . . . . . . .

53

6.12 DISCOVERY CONFIG . . . . . . . . . . . . . . . . . . . . . . .

54

6.13 DISCOVERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

6.14 NDDS DISCOVERY PEERS . . . . . . . . . . . . . . . . . . . .

57

6.15 DOMAIN PARTICIPANT RESOURCE LIMITS . . . . . . . . .

66

6.16 DURABILITY . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

6.17 DURABILITY SERVICE . . . . . . . . . . . . . . . . . . . . . .

69

6.18 Time Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

6.19 Entity Support . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

6.20 ENTITY FACTORY . . . . . . . . . . . . . . . . . . . . . . . . .

73

6.21 ENTITY NAME . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.22 EVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

6.23 EXCLUSIVE AREA . . . . . . . . . . . . . . . . . . . . . . . . .

76

6.24 GROUP DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

6.25 GUID Support . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.26 HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

6.27 LATENCY BUDGET . . . . . . . . . . . . . . . . . . . . . . . .

80

6.28 LIFESPAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

6.29 LIVELINESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

6.30 LOCATORFILTER . . . . . . . . . . . . . . . . . . . . . . . . .

83

6.31 LOGGING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

6.32 MULTICHANNEL . . . . . . . . . . . . . . . . . . . . . . . . . .

85

6.33 Object Support . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

6.34 OWNERSHIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

6.35 OWNERSHIP STRENGTH . . . . . . . . . . . . . . . . . . . . .

88

6.36 PARTITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

6.37 PRESENTATION . . . . . . . . . . . . . . . . . . . . . . . . . .

90

6.38 PROFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

6.39 PROPERTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS

iii

6.40 PUBLISH MODE . . . . . . . . . . . . . . . . . . . . . . . . . .

93

6.41 QoS Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

6.42 READER DATA LIFECYCLE . . . . . . . . . . . . . . . . . . . 103


6.43 RECEIVER POOL . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.44 RELIABILITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.45 RESOURCE LIMITS . . . . . . . . . . . . . . . . . . . . . . . . 106
6.46 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.47 Sequence Number Support . . . . . . . . . . . . . . . . . . . . . . 109
6.48 Status Kinds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.49 SYSTEM RESOURCE LIMITS . . . . . . . . . . . . . . . . . . . 115
6.50 Thread Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.51 TIME BASED FILTER . . . . . . . . . . . . . . . . . . . . . . . 117
6.52 TOPIC DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.53 TRANSPORT BUILTIN . . . . . . . . . . . . . . . . . . . . . . . 119
6.54 TRANSPORT MULTICAST MAPPING . . . . . . . . . . . . . 122
6.55 TRANSPORT MULTICAST . . . . . . . . . . . . . . . . . . . . 123
6.56 TRANSPORT PRIORITY . . . . . . . . . . . . . . . . . . . . . 126
6.57 TRANSPORT SELECTION . . . . . . . . . . . . . . . . . . . . 127
6.58 TRANSPORT UNICAST . . . . . . . . . . . . . . . . . . . . . . 128
6.59 TYPE CONSISTENCY ENFORCEMENT . . . . . . . . . . . . 129
6.60 TYPESUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.61 USER DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.62 Exception Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.63 WIRE PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.64 WRITER DATA LIFECYCLE . . . . . . . . . . . . . . . . . . . 140
6.65 KeyedString Built-in Type . . . . . . . . . . . . . . . . . . . . . . 141
6.66 Octets Built-in Type . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.67 KeyedOctets Built-in Type . . . . . . . . . . . . . . . . . . . . . 143
6.68 Sequence Support . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.69 Clock Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.70 Domain Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

iv

CONTENTS
6.71 DomainParticipantFactory . . . . . . . . . . . . . . . . . . . . . . 149
6.72 DomainParticipants . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.73 Built-in Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.74 Topic Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.75 Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.76 User Data Type Support . . . . . . . . . . . . . . . . . . . . . . . 164
6.77 Type Code Support . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.78 Built-in Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
6.79 Dynamic Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.80 Publication Module . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.81 Publishers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.82 Data Writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.83 Flow Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.84 Subscription Module . . . . . . . . . . . . . . . . . . . . . . . . . 192
6.85 Subscribers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.86 DataReaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.87 Read Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
6.88 Query Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.89 Data Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.90 Sample States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6.91 View States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.92 Instance States . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.93 Infrastructure Module . . . . . . . . . . . . . . . . . . . . . . . . 206
6.94 Built-in Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.95 Multi-channel DataWriters

. . . . . . . . . . . . . . . . . . . . . 210

6.96 Pluggable Transports . . . . . . . . . . . . . . . . . . . . . . . . . 213


6.97 Using Transport Plugins . . . . . . . . . . . . . . . . . . . . . . . 219
6.98 Built-in Transport Plugins . . . . . . . . . . . . . . . . . . . . . . 222
6.99 Configuration Utilities . . . . . . . . . . . . . . . . . . . . . . . . 224
6.100Durability and Persistence . . . . . . . . . . . . . . . . . . . . . . 225
6.101System Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS

6.102Configuring QoS Profiles with XML . . . . . . . . . . . . . . . . 233


6.103Publication Example . . . . . . . . . . . . . . . . . . . . . . . . . 237
6.104Subscription Example . . . . . . . . . . . . . . . . . . . . . . . . 238
6.105Participant Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 239
6.106Topic Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
6.107FlowController Use Cases . . . . . . . . . . . . . . . . . . . . . . 243
6.108Publisher Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . 247
6.109DataWriter Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 248
6.110Subscriber Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.111DataReader Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 253
6.112Entity Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
6.113Waitset Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 261
6.114Transport Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . 263
6.115Filter Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
6.116Creating Custom Content Filters . . . . . . . . . . . . . . . . . . 271
6.117Large Data Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 275
6.118Documentation Roadmap . . . . . . . . . . . . . . . . . . . . . . 277
6.119Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
6.120DDS API Reference . . . . . . . . . . . . . . . . . . . . . . . . . 280
6.121Queries and Filters Syntax . . . . . . . . . . . . . . . . . . . . . . 286
6.122RTI Connext API Reference . . . . . . . . . . . . . . . . . . . . . 294
6.123Programming How-Tos . . . . . . . . . . . . . . . . . . . . . . . 295
6.124Programming Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 297
6.125rtiddsgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
6.126rtiddsping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
6.127rtiddsspy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
7 Namespace Documentation

325

7.1

Package com.rti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

7.2

Package com.rti.dds . . . . . . . . . . . . . . . . . . . . . . . . . 326

7.3

Package com.rti.dds.domain . . . . . . . . . . . . . . . . . . . . . 328

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

vi

CONTENTS
7.4

Package com.rti.dds.domain.builtin . . . . . . . . . . . . . . . . . 330

7.5

Package com.rti.dds.dynamicdata . . . . . . . . . . . . . . . . . . 331

7.6

Package com.rti.dds.infrastructure . . . . . . . . . . . . . . . . . 334

7.7

Package com.rti.dds.publication . . . . . . . . . . . . . . . . . . . 349

7.8

Package com.rti.dds.publication.builtin . . . . . . . . . . . . . . . 352

7.9

Package com.rti.dds.subscription . . . . . . . . . . . . . . . . . . 353

7.10 Package com.rti.dds.subscription.builtin . . . . . . . . . . . . . . 358


7.11 Package com.rti.dds.topic . . . . . . . . . . . . . . . . . . . . . . 359
7.12 Package com.rti.dds.topic.builtin . . . . . . . . . . . . . . . . . . 361
7.13 Package com.rti.dds.type.builtin . . . . . . . . . . . . . . . . . . . 362
7.14 Package com.rti.dds.typecode . . . . . . . . . . . . . . . . . . . . 368
7.15 Package com.rti.dds.util . . . . . . . . . . . . . . . . . . . . . . . 372
7.16 Package com.rti.ndds . . . . . . . . . . . . . . . . . . . . . . . . . 373
7.17 Package com.rti.ndds.config . . . . . . . . . . . . . . . . . . . . . 374
7.18 Package com.rti.ndds.example . . . . . . . . . . . . . . . . . . . . 375
7.19 Package com.rti.ndds.transport . . . . . . . . . . . . . . . . . . . 376
8 Class Documentation

383

8.1

AbstractBuiltinTopicDataTypeSupport Class Reference . . . . . 383

8.2

AbstractPrimitiveSequence Class Reference . . . . . . . . . . . . 385

8.3

AbstractSequence Class Reference . . . . . . . . . . . . . . . . . 390

8.4

AcknowledgmentInfo Class Reference . . . . . . . . . . . . . . . . 393

8.5

AckResponseData t Class Reference . . . . . . . . . . . . . . . . 394

8.6

AllocationSettings t Class Reference . . . . . . . . . . . . . . . . 395

8.7

AsynchronousPublisherQosPolicy Class Reference . . . . . . . . . 397

8.8

AvailabilityQosPolicy Class Reference . . . . . . . . . . . . . . . 402

8.9

BAD PARAM Class Reference . . . . . . . . . . . . . . . . . . . 407

8.10 BAD TYPECODE Class Reference . . . . . . . . . . . . . . . . . 408


8.11 BadKind Class Reference . . . . . . . . . . . . . . . . . . . . . . 409
8.12 BadMemberId Class Reference . . . . . . . . . . . . . . . . . . . 410
8.13 BadMemberName Class Reference . . . . . . . . . . . . . . . . . 411
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS
8.14 BatchQosPolicy Class Reference

vii
. . . . . . . . . . . . . . . . . . 412

8.15 BooleanSeq Class Reference . . . . . . . . . . . . . . . . . . . . . 417


8.16 Bounds Class Reference . . . . . . . . . . . . . . . . . . . . . . . 423
8.17 BuiltinTopicKey t Class Reference . . . . . . . . . . . . . . . . . 424
8.18 BuiltinTopicReaderResourceLimits t Class Reference . . . . . . . 426
8.19 Bytes Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 430
8.20 BytesDataReader Class Reference . . . . . . . . . . . . . . . . . . 433
8.21 BytesDataWriter Class Reference . . . . . . . . . . . . . . . . . . 437
8.22 ByteSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . . 441
8.23 BytesSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . 447
8.24 BytesTypeSupport Class Reference . . . . . . . . . . . . . . . . . 450
8.25 ChannelSettings t Class Reference . . . . . . . . . . . . . . . . . 454
8.26 ChannelSettingsSeq Class Reference . . . . . . . . . . . . . . . . 457
8.27 CharSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . . 458
8.28 Condition Interface Reference . . . . . . . . . . . . . . . . . . . . 464
8.29 ConditionSeq Class Reference . . . . . . . . . . . . . . . . . . . . 465
8.30 ContentFilter Interface Reference . . . . . . . . . . . . . . . . . . 467
8.31 ContentFilteredTopic Interface Reference . . . . . . . . . . . . . 471
8.32 ContentFilterProperty t Class Reference . . . . . . . . . . . . . . 476
8.33 Cookie t Class Reference . . . . . . . . . . . . . . . . . . . . . . . 478
8.34 CookieSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . 479
8.35 Copyable Interface Reference . . . . . . . . . . . . . . . . . . . . 480
8.36 DatabaseQosPolicy Class Reference . . . . . . . . . . . . . . . . . 482
8.37 DataReader Interface Reference . . . . . . . . . . . . . . . . . . . 487
8.38 DataReaderAdapter Class Reference . . . . . . . . . . . . . . . . 514
8.39 DataReaderCacheStatus Class Reference . . . . . . . . . . . . . . 517
8.40 DataReaderListener Interface Reference . . . . . . . . . . . . . . 518
8.41 DataReaderProtocolQosPolicy Class Reference . . . . . . . . . . 521
8.42 DataReaderProtocolStatus Class Reference . . . . . . . . . . . . 526
8.43 DataReaderQos Class Reference . . . . . . . . . . . . . . . . . . . 536
8.44 DataReaderResourceLimitsQosPolicy Class Reference . . . . . . 542
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

viii

CONTENTS

8.45 DataReaderSeq Class Reference . . . . . . . . . . . . . . . . . . . 555


8.46 DataWriter Interface Reference . . . . . . . . . . . . . . . . . . . 557
8.47 DataWriterAdapter Class Reference . . . . . . . . . . . . . . . . 580
8.48 DataWriterCacheStatus Class Reference . . . . . . . . . . . . . . 585
8.49 DataWriterListener Interface Reference

. . . . . . . . . . . . . . 586

8.50 DataWriterProtocolQosPolicy Class Reference . . . . . . . . . . . 592


8.51 DataWriterProtocolStatus Class Reference . . . . . . . . . . . . . 598
8.52 DataWriterQos Class Reference . . . . . . . . . . . . . . . . . . . 610
8.53 DataWriterResourceLimitsInstanceReplacementKind Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
8.54 DataWriterResourceLimitsQosPolicy Class Reference . . . . . . . 621
8.55 DeadlineQosPolicy Class Reference . . . . . . . . . . . . . . . . . 628
8.56 DestinationOrderQosPolicy Class Reference . . . . . . . . . . . . 631
8.57 DestinationOrderQosPolicyKind Class Reference . . . . . . . . . 634
8.58 DiscoveryBuiltinReaderFragmentationResourceLimits t
Class
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
8.59 DiscoveryConfigBuiltinPluginKind Class Reference . . . . . . . . 638
8.60 DiscoveryConfigQosPolicy Class Reference . . . . . . . . . . . . . 639
8.61 DiscoveryPluginPromiscuityKind Class Reference . . . . . . . . . 648
8.62 DiscoveryQosPolicy Class Reference . . . . . . . . . . . . . . . . 649
8.63 DomainEntity Interface Reference

. . . . . . . . . . . . . . . . . 653

8.64 DomainParticipant Interface Reference . . . . . . . . . . . . . . . 654


8.65 DomainParticipantAdapter Class Reference . . . . . . . . . . . . 736
8.66 DomainParticipantFactory Class Reference . . . . . . . . . . . . 742
8.67 DomainParticipantFactoryQos Class Reference . . . . . . . . . . 769
8.68 DomainParticipantListener Interface Reference . . . . . . . . . . 771
8.69 DomainParticipantQos Class Reference . . . . . . . . . . . . . . . 773
8.70 DomainParticipantResourceLimitsQosPolicy Class Reference . . 778
8.71 DoubleSeq Class Reference . . . . . . . . . . . . . . . . . . . . . 796
8.72 DurabilityQosPolicy Class Reference . . . . . . . . . . . . . . . . 802
8.73 DurabilityQosPolicyKind Class Reference . . . . . . . . . . . . . 807
8.74 DurabilityServiceQosPolicy Class Reference . . . . . . . . . . . . 810
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS

ix

8.75 Duration t Class Reference . . . . . . . . . . . . . . . . . . . . . 813


8.76 DynamicData Class Reference . . . . . . . . . . . . . . . . . . . . 817
8.77 DynamicDataInfo Class Reference . . . . . . . . . . . . . . . . . 885
8.78 DynamicDataMemberInfo Class Reference . . . . . . . . . . . . . 887
8.79 DynamicDataProperty t Class Reference . . . . . . . . . . . . . . 890
8.80 DynamicDataReader Class Reference . . . . . . . . . . . . . . . . 892
8.81 DynamicDataSeq Class Reference . . . . . . . . . . . . . . . . . . 895
8.82 DynamicDataTypeProperty t Class Reference . . . . . . . . . . . 897
8.83 DynamicDataTypeSerializationProperty t Class Reference . . . . 899
8.84 DynamicDataTypeSupport Class Reference . . . . . . . . . . . . 901
8.85 DynamicDataWriter Class Reference . . . . . . . . . . . . . . . . 907
8.86 EndpointGroup t Class Reference . . . . . . . . . . . . . . . . . . 928
8.87 EndpointGroupSeq Class Reference . . . . . . . . . . . . . . . . . 930
8.88 Entity Interface Reference . . . . . . . . . . . . . . . . . . . . . . 931
8.89 EntityFactoryQosPolicy Class Reference . . . . . . . . . . . . . . 938
8.90 EntityHowTo.MyEntityListener Class Reference . . . . . . . . . . 941
8.91 EntityNameQosPolicy Class Reference . . . . . . . . . . . . . . . 942
8.92 Enum Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 944
8.93 EnumMember Class Reference . . . . . . . . . . . . . . . . . . . 947
8.94 EventQosPolicy Class Reference . . . . . . . . . . . . . . . . . . . 949
8.95 ExclusiveAreaQosPolicy Class Reference . . . . . . . . . . . . . . 952
8.96 ExpressionProperty Class Reference . . . . . . . . . . . . . . . . 955
8.97 ExtensibilityKind Class Reference

. . . . . . . . . . . . . . . . . 956

8.98 FilterSampleInfo Class Reference . . . . . . . . . . . . . . . . . . 957


8.99 FloatSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . 958
8.100FlowController Interface Reference . . . . . . . . . . . . . . . . . 964
8.101FlowControllerProperty t Class Reference . . . . . . . . . . . . . 968
8.102FlowControllerSchedulingPolicy Class Reference

. . . . . . . . . 970

8.103FlowControllerTokenBucketProperty t Class Reference . . . . . . 973


8.104Foo Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 977
8.105FooDataReader Class Reference . . . . . . . . . . . . . . . . . . . 979
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS
8.106FooDataWriter Class Reference . . . . . . . . . . . . . . . . . . . 1012
8.107FooSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1034
8.108FooTypeSupport Class Reference . . . . . . . . . . . . . . . . . . 1036
8.109GroupDataQosPolicy Class Reference . . . . . . . . . . . . . . . 1039
8.110GuardCondition Class Reference . . . . . . . . . . . . . . . . . . 1041
8.111GUID t Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1044
8.112HistoryQosPolicy Class Reference . . . . . . . . . . . . . . . . . . 1046
8.113HistoryQosPolicyKind Class Reference . . . . . . . . . . . . . . . 1050
8.114InconsistentTopicStatus Class Reference . . . . . . . . . . . . . . 1052
8.115InetAddressSeq Class Reference . . . . . . . . . . . . . . . . . . . 1054
8.116InstanceHandle t Class Reference . . . . . . . . . . . . . . . . . . 1055
8.117InstanceHandleSeq Class Reference . . . . . . . . . . . . . . . . . 1058
8.118InstanceStateKind Class Reference . . . . . . . . . . . . . . . . . 1061
8.119IntSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 1064
8.120KeyedBytes Class Reference . . . . . . . . . . . . . . . . . . . . . 1070
8.121KeyedBytesDataReader Class Reference . . . . . . . . . . . . . . 1073
8.122KeyedBytesDataWriter Class Reference . . . . . . . . . . . . . . 1081
8.123KeyedBytesSeq Class Reference . . . . . . . . . . . . . . . . . . . 1091
8.124KeyedBytesTypeSupport Class Reference . . . . . . . . . . . . . 1094
8.125KeyedString Class Reference

. . . . . . . . . . . . . . . . . . . . 1098

8.126KeyedStringDataReader Class Reference . . . . . . . . . . . . . . 1101


8.127KeyedStringDataWriter Class Reference . . . . . . . . . . . . . . 1109
8.128KeyedStringSeq Class Reference . . . . . . . . . . . . . . . . . . . 1117
8.129KeyedStringTypeSupport Class Reference . . . . . . . . . . . . . 1120
8.130LatencyBudgetQosPolicy Class Reference . . . . . . . . . . . . . 1124
8.131LibraryVersion t Class Reference . . . . . . . . . . . . . . . . . . 1126
8.132LifespanQosPolicy Class Reference . . . . . . . . . . . . . . . . . 1128
8.133Listener Interface Reference . . . . . . . . . . . . . . . . . . . . . 1130
8.134LivelinessChangedStatus Class Reference . . . . . . . . . . . . . . 1135
8.135LivelinessLostStatus Class Reference . . . . . . . . . . . . . . . . 1138
8.136LivelinessQosPolicy Class Reference . . . . . . . . . . . . . . . . 1140
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS

xi

8.137LivelinessQosPolicyKind Class Reference . . . . . . . . . . . . . . 1144


8.138LoanableSequence Class Reference . . . . . . . . . . . . . . . . . 1146
8.139Locator t Class Reference . . . . . . . . . . . . . . . . . . . . . . 1150
8.140LocatorFilter t Class Reference . . . . . . . . . . . . . . . . . . . 1154
8.141LocatorFilterQosPolicy Class Reference . . . . . . . . . . . . . . 1157
8.142LocatorFilterSeq Class Reference . . . . . . . . . . . . . . . . . . 1159
8.143LocatorSeq Class Reference . . . . . . . . . . . . . . . . . . . . . 1160
8.144LogCategory Class Reference . . . . . . . . . . . . . . . . . . . . 1161
8.145Logger Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 1163
8.146LoggerDevice Interface Reference . . . . . . . . . . . . . . . . . . 1167
8.147LoggingQosPolicy Class Reference . . . . . . . . . . . . . . . . . 1169
8.148LogLevel Class Reference . . . . . . . . . . . . . . . . . . . . . . 1171
8.149LogMessage Class Reference . . . . . . . . . . . . . . . . . . . . . 1173
8.150LogPrintFormat Class Reference . . . . . . . . . . . . . . . . . . 1174
8.151LogVerbosity Class Reference . . . . . . . . . . . . . . . . . . . . 1177
8.152LongDoubleSeq Class Reference . . . . . . . . . . . . . . . . . . . 1179
8.153LongSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1181
8.154MultiChannelQosPolicy Class Reference . . . . . . . . . . . . . . 1187
8.155MultiTopic Interface Reference . . . . . . . . . . . . . . . . . . . 1190
8.156ObjectHolder Class Reference . . . . . . . . . . . . . . . . . . . . 1194
8.157OfferedDeadlineMissedStatus Class Reference . . . . . . . . . . . 1195
8.158OfferedIncompatibleQosStatus Class Reference . . . . . . . . . . 1197
8.159OwnershipQosPolicy Class Reference . . . . . . . . . . . . . . . . 1199
8.160OwnershipQosPolicyKind Class Reference . . . . . . . . . . . . . 1207
8.161OwnershipStrengthQosPolicy Class Reference . . . . . . . . . . . 1209
8.162ParticipantBuiltinTopicData Class Reference . . . . . . . . . . . 1211
8.163ParticipantBuiltinTopicDataDataReader Class Reference . . . . . 1214
8.164ParticipantBuiltinTopicDataSeq Class Reference . . . . . . . . . 1215
8.165ParticipantBuiltinTopicDataTypeSupport Class Reference . . . . 1216
8.166PartitionQosPolicy Class Reference . . . . . . . . . . . . . . . . . 1217
8.167PresentationQosPolicy Class Reference . . . . . . . . . . . . . . . 1221
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

xii

CONTENTS
8.168PresentationQosPolicyAccessScopeKind Class Reference . . . . . 1226
8.169PRIVATE MEMBER Class Reference . . . . . . . . . . . . . . . 1228
8.170ProductVersion t Class Reference . . . . . . . . . . . . . . . . . . 1229
8.171ProfileQosPolicy Class Reference . . . . . . . . . . . . . . . . . . 1231
8.172Property t Class Reference . . . . . . . . . . . . . . . . . . . . . 1234
8.173PropertyQosPolicy Class Reference . . . . . . . . . . . . . . . . . 1236
8.174PropertyQosPolicyHelper Class Reference . . . . . . . . . . . . . 1239
8.175PropertySeq Class Reference . . . . . . . . . . . . . . . . . . . . 1244
8.176ProtocolVersion t Class Reference . . . . . . . . . . . . . . . . . . 1245
8.177PUBLIC MEMBER Class Reference . . . . . . . . . . . . . . . . 1248
8.178PublicationBuiltinTopicData Class Reference . . . . . . . . . . . 1249
8.179PublicationBuiltinTopicDataDataReader Class Reference . . . . 1256
8.180PublicationBuiltinTopicDataSeq Class Reference . . . . . . . . . 1257
8.181PublicationBuiltinTopicDataTypeSupport Class Reference . . . . 1258
8.182PublicationMatchedStatus Class Reference . . . . . . . . . . . . . 1259
8.183Publisher Interface Reference . . . . . . . . . . . . . . . . . . . . 1262
8.184PublisherAdapter Class Reference

. . . . . . . . . . . . . . . . . 1288

8.185PublisherListener Interface Reference . . . . . . . . . . . . . . . . 1289


8.186PublisherQos Class Reference . . . . . . . . . . . . . . . . . . . . 1290
8.187PublisherSeq Class Reference . . . . . . . . . . . . . . . . . . . . 1293
8.188PublishModeQosPolicy Class Reference . . . . . . . . . . . . . . 1295
8.189PublishModeQosPolicyKind Class Reference . . . . . . . . . . . . 1298
8.190Qos Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1300
8.191QosPolicy Class Reference . . . . . . . . . . . . . . . . . . . . . . 1301
8.192QosPolicyCount Class Reference . . . . . . . . . . . . . . . . . . 1302
8.193QosPolicyCountSeq Class Reference . . . . . . . . . . . . . . . . 1304
8.194QosPolicyId t Class Reference . . . . . . . . . . . . . . . . . . . . 1305
8.195QueryCondition Interface Reference . . . . . . . . . . . . . . . . 1311
8.196ReadCondition Interface Reference . . . . . . . . . . . . . . . . . 1313
8.197ReaderDataLifecycleQosPolicy Class Reference . . . . . . . . . . 1315
8.198ReceiverPoolQosPolicy Class Reference . . . . . . . . . . . . . . . 1318
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS

xiii

8.199RefilterQosPolicyKind Class Reference . . . . . . . . . . . . . . . 1322


8.200ReliabilityQosPolicy Class Reference . . . . . . . . . . . . . . . . 1324
8.201ReliabilityQosPolicyAcknowledgmentModeKind Class Reference . 1329
8.202ReliabilityQosPolicyKind Class Reference . . . . . . . . . . . . . 1331
8.203ReliableReaderActivityChangedStatus Class Reference . . . . . . 1333
8.204ReliableWriterCacheChangedStatus Class Reference . . . . . . . 1336
8.205ReliableWriterCacheEventCount Class Reference . . . . . . . . . 1340
8.206RemoteParticipantPurgeKind Class Reference . . . . . . . . . . . 1341
8.207RequestedDeadlineMissedStatus Class Reference . . . . . . . . . 1344
8.208RequestedIncompatibleQosStatus Class Reference . . . . . . . . . 1346
8.209ResourceLimitsQosPolicy Class Reference . . . . . . . . . . . . . 1348
8.210RETCODE ALREADY DELETED Class Reference . . . . . . . 1354
8.211RETCODE BAD PARAMETER Class Reference . . . . . . . . . 1355
8.212RETCODE ERROR Class Reference . . . . . . . . . . . . . . . . 1356
8.213RETCODE ILLEGAL OPERATION Class Reference . . . . . . 1357
8.214RETCODE IMMUTABLE POLICY Class Reference . . . . . . . 1358
8.215RETCODE INCONSISTENT POLICY Class Reference . . . . . 1359
8.216RETCODE NO DATA Class Reference . . . . . . . . . . . . . . 1360
8.217RETCODE NOT ENABLED Class Reference . . . . . . . . . . . 1361
8.218RETCODE OUT OF RESOURCES Class Reference . . . . . . . 1362
8.219RETCODE PRECONDITION NOT MET Class Reference . . . 1363
8.220RETCODE TIMEOUT Class Reference . . . . . . . . . . . . . . 1364
8.221RETCODE UNSUPPORTED Class Reference . . . . . . . . . . 1365
8.222RtpsReliableReaderProtocol t Class Reference . . . . . . . . . . . 1366
8.223RtpsReliableWriterProtocol t Class Reference . . . . . . . . . . . 1372
8.224RtpsReservedPortKind Class Reference

. . . . . . . . . . . . . . 1388

8.225RtpsWellKnownPorts t Class Reference . . . . . . . . . . . . . . 1390


8.226SampleIdentity t Class Reference . . . . . . . . . . . . . . . . . . 1396
8.227SampleInfo Class Reference . . . . . . . . . . . . . . . . . . . . . 1398
8.228SampleInfoSeq Class Reference . . . . . . . . . . . . . . . . . . . 1409
8.229SampleLostStatus Class Reference . . . . . . . . . . . . . . . . . 1410
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

xiv

CONTENTS

8.230SampleLostStatusKind Class Reference . . . . . . . . . . . . . . . 1412


8.231SampleRejectedStatus Class Reference . . . . . . . . . . . . . . . 1418
8.232SampleRejectedStatusKind Class Reference . . . . . . . . . . . . 1420
8.233SampleStateKind Class Reference . . . . . . . . . . . . . . . . . . 1426
8.234Sequence Interface Reference . . . . . . . . . . . . . . . . . . . . 1428
8.235SequenceNumber t Class Reference . . . . . . . . . . . . . . . . . 1431
8.236ShmemTransport Interface Reference . . . . . . . . . . . . . . . . 1435
8.237ShmemTransport.Property t Class Reference . . . . . . . . . . . 1439
8.238ShortSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . 1442
8.239StatusCondition Interface Reference . . . . . . . . . . . . . . . . 1448
8.240StatusKind Class Reference . . . . . . . . . . . . . . . . . . . . . 1451
8.241StringDataReader Class Reference . . . . . . . . . . . . . . . . . 1462
8.242StringDataWriter Class Reference . . . . . . . . . . . . . . . . . . 1465
8.243StringSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . 1467
8.244StringTypeSupport Class Reference . . . . . . . . . . . . . . . . . 1470
8.245StructMember Class Reference . . . . . . . . . . . . . . . . . . . 1474
8.246Subscriber Interface Reference . . . . . . . . . . . . . . . . . . . . 1476
8.247SubscriberAdapter Class Reference . . . . . . . . . . . . . . . . . 1502
8.248SubscriberListener Interface Reference . . . . . . . . . . . . . . . 1503
8.249SubscriberQos Class Reference . . . . . . . . . . . . . . . . . . . 1505
8.250SubscriberSeq Class Reference . . . . . . . . . . . . . . . . . . . . 1507
8.251SubscriptionBuiltinTopicData Class Reference . . . . . . . . . . . 1509
8.252SubscriptionBuiltinTopicDataDataReader Class Reference . . . . 1516
8.253SubscriptionBuiltinTopicDataSeq Class Reference . . . . . . . . . 1517
8.254SubscriptionBuiltinTopicDataTypeSupport Class Reference . . . 1518
8.255SubscriptionMatchedStatus Class Reference . . . . . . . . . . . . 1519
8.256SystemException Class Reference . . . . . . . . . . . . . . . . . . 1522
8.257SystemResourceLimitsQosPolicy Class Reference . . . . . . . . . 1523
8.258TCKind Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1525
8.259ThreadSettings t Class Reference . . . . . . . . . . . . . . . . . . 1530
8.260ThreadSettingsCpuRotationKind Class Reference . . . . . . . . . 1533
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS

xv

8.261ThreadSettingsKind Class Reference . . . . . . . . . . . . . . . . 1535


8.262Time t Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 1537
8.263TimeBasedFilterQosPolicy Class Reference . . . . . . . . . . . . 1541
8.264Topic Interface Reference . . . . . . . . . . . . . . . . . . . . . . 1545
8.265TopicAdapter Class Reference . . . . . . . . . . . . . . . . . . . . 1550
8.266TopicBuiltinTopicData Class Reference . . . . . . . . . . . . . . . 1552
8.267TopicBuiltinTopicDataDataReader Class Reference . . . . . . . . 1556
8.268TopicBuiltinTopicDataSeq Class Reference . . . . . . . . . . . . . 1557
8.269TopicBuiltinTopicDataTypeSupport Class Reference . . . . . . . 1558
8.270TopicDataQosPolicy Class Reference . . . . . . . . . . . . . . . . 1559
8.271TopicDescription Interface Reference . . . . . . . . . . . . . . . . 1561
8.272TopicListener Interface Reference . . . . . . . . . . . . . . . . . . 1564
8.273TopicQos Class Reference . . . . . . . . . . . . . . . . . . . . . . 1566
8.274Transport Interface Reference . . . . . . . . . . . . . . . . . . . . 1569
8.275Transport.Property t Class Reference . . . . . . . . . . . . . . . . 1570
8.276TransportBuiltinKind Class Reference . . . . . . . . . . . . . . . 1578
8.277TransportBuiltinQosPolicy Class Reference . . . . . . . . . . . . 1580
8.278TransportMulticastMapping t Class Reference . . . . . . . . . . . 1582
8.279TransportMulticastMappingFunction t Class Reference . . . . . . 1585
8.280TransportMulticastMappingQosPolicy Class Reference . . . . . . 1587
8.281TransportMulticastMappingSeq Class Reference . . . . . . . . . . 1589
8.282TransportMulticastQosPolicy Class Reference . . . . . . . . . . . 1590
8.283TransportMulticastQosPolicyKind Class Reference . . . . . . . . 1593
8.284TransportMulticastSettings t Class Reference . . . . . . . . . . . 1594
8.285TransportMulticastSettingsSeq Class Reference . . . . . . . . . . 1597
8.286TransportPriorityQosPolicy Class Reference . . . . . . . . . . . . 1598
8.287TransportSelectionQosPolicy Class Reference . . . . . . . . . . . 1600
8.288TransportSupport Class Reference . . . . . . . . . . . . . . . . . 1602
8.289TransportUnicastQosPolicy Class Reference . . . . . . . . . . . . 1605
8.290TransportUnicastSettings t Class Reference . . . . . . . . . . . . 1608
8.291TransportUnicastSettingsSeq Class Reference . . . . . . . . . . . 1610
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

xvi

CONTENTS

8.292TypeCode Class Reference . . . . . . . . . . . . . . . . . . . . . . 1611


8.293TypeCodeFactory Class Reference . . . . . . . . . . . . . . . . . 1647
8.294TypeConsistencyEnforcementQosPolicy Class Reference . . . . . 1661
8.295TypeConsistencyKind Class Reference . . . . . . . . . . . . . . . 1663
8.296TypeSupport Interface Reference . . . . . . . . . . . . . . . . . . 1665
8.297TypeSupportQosPolicy Class Reference . . . . . . . . . . . . . . 1666
8.298UDPv4Transport Interface Reference . . . . . . . . . . . . . . . . 1668
8.299UDPv4Transport.Property t Class Reference . . . . . . . . . . . 1672
8.300UDPv6Transport Interface Reference . . . . . . . . . . . . . . . . 1680
8.301UDPv6Transport.Property t Class Reference . . . . . . . . . . . 1684
8.302Union Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 1691
8.303UnionMember Class Reference . . . . . . . . . . . . . . . . . . . 1692
8.304UserDataQosPolicy Class Reference

. . . . . . . . . . . . . . . . 1694

8.305UserException Class Reference . . . . . . . . . . . . . . . . . . . 1696


8.306ValueMember Class Reference . . . . . . . . . . . . . . . . . . . . 1697
8.307VendorId t Class Reference . . . . . . . . . . . . . . . . . . . . . 1699
8.308Version Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1701
8.309ViewStateKind Class Reference . . . . . . . . . . . . . . . . . . . 1703
8.310VM ABSTRACT Class Reference . . . . . . . . . . . . . . . . . . 1705
8.311VM CUSTOM Class Reference . . . . . . . . . . . . . . . . . . . 1706
8.312VM NONE Class Reference . . . . . . . . . . . . . . . . . . . . . 1707
8.313VM TRUNCATABLE Class Reference . . . . . . . . . . . . . . . 1708
8.314WaitSet Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1709
8.315WaitSetProperty t Class Reference . . . . . . . . . . . . . . . . . 1719
8.316WcharSeq Class Reference . . . . . . . . . . . . . . . . . . . . . . 1721
8.317WireProtocolQosPolicy Class Reference . . . . . . . . . . . . . . 1723
8.318WireProtocolQosPolicyAutoKind Class Reference . . . . . . . . . 1732
8.319WriteParams t Class Reference . . . . . . . . . . . . . . . . . . . 1733
8.320WriterContentFilter Interface Reference . . . . . . . . . . . . . . 1737
8.321WriterDataLifecycleQosPolicy Class Reference . . . . . . . . . . . 1738
8.322WstringSeq Class Reference . . . . . . . . . . . . . . . . . . . . . 1741
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

CONTENTS
9 Example Documentation

xvii
1743

9.1

HelloWorld.idl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1743

9.2

HelloWorldDataReader.java . . . . . . . . . . . . . . . . . . . . . 1745

9.3

HelloWorldPublisher.java . . . . . . . . . . . . . . . . . . . . . . 1761

9.4

HelloWorldSeq.java . . . . . . . . . . . . . . . . . . . . . . . . . . 1765

9.5

HelloWorldSubscriber.java . . . . . . . . . . . . . . . . . . . . . . 1770

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 1

RTI Connext
Core Libraries and Utilities
Real-Time Innovations, Inc.
RTI Connext is network middleware for real-time distributed applications. It
provides the communications services that programmers need to distribute timecritical data between embedded and/or enterprise devices or nodes. RTI Connext uses the publish-subscribe communications model to make data distribution efficient and robust.
The RTI Connext Application Programming Interface (API) is based on the
OMGs Data Distribution Service (DDS) specification. The most recent publication of this specification can be found in the Catalog of OMG Specifications
under Middleware Specifications.

1.1

Feedback and Support for this Release.

For more information, visit our knowledge base (accessible from


https://support.rti.com/) to see sample code, general information on
RTI Connext, performance information, troubleshooting tips, and technical
details.
By its very nature, the knowledge base is continuously evolving and improving. We hope that you will find it helpful. If there are questions that
you would like to see addressed or comments you would like to share, please
send e-mail to [email protected]. We can only guarantee a response for customers with a current maintenance contract or subscription. To purchase a
maintenance contract or subscription, contact your local RTI representative

RTI Connext

(see http://www.rti.com/company/contact.html), send an email request to


[email protected], or call +1 (408) 990-7400.
Please do not hesitate to contact RTI with questions or comments about this
release. We welcome any input on how to improve RTI Connext to suit your
needs.

1.2

Available Documentation.

The documentation for this release is provided in two forms: the HTML API
reference documentation and PDF documents. If you are new to RTI Connext,
the Documentation Roadmap (p. 277) will provide direction on how to learn
about this product.

1.2.1

The PDF documents for the Core Libraries and Utilities are:

Whats New. An overview of the new features in this release.


Release Notes. System requirements, compatibility, whats fixed in this
release, and known issues.
Getting Started Guide. Download and installation instructions. It also
lays out the core value and concepts behind the product and takes you
step-by-step through the creation of a simple example application. Developers should read this document first.
Getting Started Guide, Database Addendum. Additional installation
and setup information for database usage.
Getting Started Guide, Embedded Systems Addendum. Additional installation and setup information for embedded systems.
Users Manual. Introduction to RTI Connext, product tour and conceptual presentation of the functionality of RTI Connext.
Platform Notes. Specific details, such as compilation setting and libraries, related to building and using RTI Connext on the various supported platforms.
QoS Reference Guide. A compact summary of supported Quality of Service (QoS) policies.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

1.2 Available Documentation.

XML-Based Application Creation Getting Started Guide. Details


on how to use XML-Based Application Creation, an experimental feature
in this release.
C API Reference Manual. A consolidated PDF version of the HTML C
API reference documentation.
C++ API Reference Manual. A consolidated PDF version of the HTML
C++ API reference documentation.
Java API Reference Manual. A consolidate PDF version of the HTML
Java API reference documentation.
.NET API Reference Manual. A consolidated PDF version of the HTML
.Net API reference documentation.

1.2.2

The HTML API Reference documentation contains:

DDS API Reference (p. 280) - The DDS API reference.


RTI Connext API Reference (p. 294) - RTI Connext APIs independent of the DDS standard.
Programming How-Tos (p. 295) - Describes and shows the common
tasks done using the API.
Programming Tools (p. 297) - RTI Connext helper tools.
The HTML API Reference documentation can be accessed through the tree view
in the left frame of the web browser window. The bulk of the documentation is
found under the entry labeled Modules.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

RTI Connext

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 2

Module Index
2.1

Modules

Here is a list of all modules:


Thread Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Documentation Roadmap . . . . . . . . . . . . . . . . . . . . . . . . .
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DDS API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Domain Module . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DomainParticipantFactory . . . . . . . . . . . . . . . . . . . . .
DomainParticipants . . . . . . . . . . . . . . . . . . . . . . . .
Built-in Topics . . . . . . . . . . . . . . . . . . . . . . . . . . .
Topic Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User Data Type Support . . . . . . . . . . . . . . . . . . . . .
Type Code Support . . . . . . . . . . . . . . . . . . . . . . . .
Built-in Types . . . . . . . . . . . . . . . . . . . . . . . . . . .
KeyedString Built-in Type . . . . . . . . . . . . . . . . . . .
Octets Built-in Type . . . . . . . . . . . . . . . . . . . . . . .
KeyedOctets Built-in Type . . . . . . . . . . . . . . . . . . .
Dynamic Data . . . . . . . . . . . . . . . . . . . . . . . . . . .
Publication Module . . . . . . . . . . . . . . . . . . . . . . . . . .
Publishers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Writers . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flow Controllers . . . . . . . . . . . . . . . . . . . . . . . . . .
Subscription Module . . . . . . . . . . . . . . . . . . . . . . . . . .
Subscribers . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DataReaders . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Read Conditions . . . . . . . . . . . . . . . . . . . . . . . . .

116
277
278
280
147
149
151
157
161
162
164
165
170
141
142
143
175
180
181
184
186
192
195
198
200

Module Index
Query Conditions . . . . . . . . . . . . . . . . . . . . . . . . .
Data Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample States . . . . . . . . . . . . . . . . . . . . . . . . . . .
View States . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instance States . . . . . . . . . . . . . . . . . . . . . . . . . .
Infrastructure Module . . . . . . . . . . . . . . . . . . . . . . . . .
Conditions and WaitSets . . . . . . . . . . . . . . . . . . . . .
Time Support . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entity Support . . . . . . . . . . . . . . . . . . . . . . . . . . .
GUID Support . . . . . . . . . . . . . . . . . . . . . . . . . . .
Object Support . . . . . . . . . . . . . . . . . . . . . . . . . . .
QoS Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ASYNCHRONOUS PUBLISHER . . . . . . . . . . . . . . .
AVAILABILITY . . . . . . . . . . . . . . . . . . . . . . . . .
BATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . .
DATA READER PROTOCOL . . . . . . . . . . . . . . . . .
DATA READER RESOURCE LIMITS . . . . . . . . . . . .
DATA WRITER PROTOCOL . . . . . . . . . . . . . . . . .
DATA WRITER RESOURCE LIMITS . . . . . . . . . . . .
DEADLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DESTINATION ORDER . . . . . . . . . . . . . . . . . . . .
DISCOVERY CONFIG . . . . . . . . . . . . . . . . . . . . .
DISCOVERY . . . . . . . . . . . . . . . . . . . . . . . . . . .
NDDS DISCOVERY PEERS . . . . . . . . . . . . . . . .
DOMAIN PARTICIPANT RESOURCE LIMITS . . . . . . .
DURABILITY . . . . . . . . . . . . . . . . . . . . . . . . . .
DURABILITY SERVICE . . . . . . . . . . . . . . . . . . . .
ENTITY FACTORY . . . . . . . . . . . . . . . . . . . . . . .
ENTITY NAME . . . . . . . . . . . . . . . . . . . . . . . . .
EVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EXCLUSIVE AREA . . . . . . . . . . . . . . . . . . . . . . .
GROUP DATA . . . . . . . . . . . . . . . . . . . . . . . . . .
HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LATENCY BUDGET . . . . . . . . . . . . . . . . . . . . . .
LIFESPAN . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LIVELINESS . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOCATORFILTER . . . . . . . . . . . . . . . . . . . . . . .
LOGGING . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MULTICHANNEL . . . . . . . . . . . . . . . . . . . . . . . .
OWNERSHIP . . . . . . . . . . . . . . . . . . . . . . . . . .
OWNERSHIP STRENGTH . . . . . . . . . . . . . . . . . . .
PARTITION . . . . . . . . . . . . . . . . . . . . . . . . . . .
PRESENTATION . . . . . . . . . . . . . . . . . . . . . . . .
PROFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

201
202
203
204
205
206
45
71
72
78
86
94
41
43
44
46
47
48
50
51
52
53
54
56
57
66
68
69
73
74
75
76
77
79
80
81
82
83
84
85
87
88
89
90
91

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

2.1 Modules
PROPERTY . . . . . . . . . . . . . . . . . . . . . . . . . . .
PUBLISH MODE . . . . . . . . . . . . . . . . . . . . . . . .
READER DATA LIFECYCLE . . . . . . . . . . . . . . . . .
RECEIVER POOL . . . . . . . . . . . . . . . . . . . . . . .
RELIABILITY . . . . . . . . . . . . . . . . . . . . . . . . . .
RESOURCE LIMITS . . . . . . . . . . . . . . . . . . . . . .
SYSTEM RESOURCE LIMITS . . . . . . . . . . . . . . . .
TIME BASED FILTER . . . . . . . . . . . . . . . . . . . . .
TOPIC DATA . . . . . . . . . . . . . . . . . . . . . . . . . .
TRANSPORT BUILTIN . . . . . . . . . . . . . . . . . . . .
TRANSPORT MULTICAST MAPPING . . . . . . . . . . .
TRANSPORT MULTICAST . . . . . . . . . . . . . . . . . .
TRANSPORT PRIORITY . . . . . . . . . . . . . . . . . . .
TRANSPORT SELECTION . . . . . . . . . . . . . . . . . .
TRANSPORT UNICAST . . . . . . . . . . . . . . . . . . . .
TYPE CONSISTENCY ENFORCEMENT . . . . . . . . . .
TYPESUPPORT . . . . . . . . . . . . . . . . . . . . . . . . .
USER DATA . . . . . . . . . . . . . . . . . . . . . . . . . . .
WIRE PROTOCOL . . . . . . . . . . . . . . . . . . . . . . .
WRITER DATA LIFECYCLE . . . . . . . . . . . . . . . . .
Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequence Number Support . . . . . . . . . . . . . . . . . . . .
Status Kinds . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exception Codes . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequence Support . . . . . . . . . . . . . . . . . . . . . . . . .
Built-in Sequences . . . . . . . . . . . . . . . . . . . . . . . .
Queries and Filters Syntax . . . . . . . . . . . . . . . . . . . . . .
RTI Connext API Reference . . . . . . . . . . . . . . . . . . . . . . . .
Clock Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-channel DataWriters . . . . . . . . . . . . . . . . . . . . . .
Pluggable Transports . . . . . . . . . . . . . . . . . . . . . . . . .
Using Transport Plugins . . . . . . . . . . . . . . . . . . . . . .
Built-in Transport Plugins . . . . . . . . . . . . . . . . . . . . .
Configuration Utilities . . . . . . . . . . . . . . . . . . . . . . . . .
Durability and Persistence . . . . . . . . . . . . . . . . . . . . . . .
System Properties . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring QoS Profiles with XML . . . . . . . . . . . . . . . . .
Programming How-Tos . . . . . . . . . . . . . . . . . . . . . . . . . .
Publication Example . . . . . . . . . . . . . . . . . . . . . . . . . .
Subscription Example . . . . . . . . . . . . . . . . . . . . . . . . .
Participant Use Cases . . . . . . . . . . . . . . . . . . . . . . . . .
Topic Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FlowController Use Cases . . . . . . . . . . . . . . . . . . . . . . .
Publisher Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .
DataWriter Use Cases . . . . . . . . . . . . . . . . . . . . . . . . .
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7
92
93
103
104
105
106
115
117
118
119
122
123
126
127
128
129
130
132
134
140
107
109
110
133
144
208
286
294
145
210
213
219
222
224
225
231
233
295
237
238
239
241
243
247
248

Module Index
Subscriber Use Cases . . . . . . .
DataReader Use Cases . . . . . .
Entity Use Cases . . . . . . . . .
Waitset Use Cases . . . . . . . .
Transport Use Cases . . . . . . .
Filter Use Cases . . . . . . . . .
Creating Custom Content Filters
Large Data Use Cases . . . . . .
Programming Tools . . . . . . . . .
rtiddsgen . . . . . . . . . . . . .
rtiddsping . . . . . . . . . . . . .
rtiddsspy . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

250
253
257
261
263
265
271
275
297
298
311
318

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 3

Namespace Index
3.1

Package List

Here are the packages with brief descriptions (if available):


com.rti (RTI ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
com.rti.dds (DDS ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
com.rti.dds.domain (Contains the com.rti.dds.domain.DomainParticipant
(p. 654) class that acts as an entrypoint of RTI Connext
and acts as a factory for many of the classes.
The
com.rti.dds.domain.DomainParticipant (p. 654) also
acts as a container for the other objects that make up RTI
Connext ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
com.rti.dds.domain.builtin (Builtin topic (p. 359) for accessing information about the DomainParticipants discovered by RTI
Connext ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
com.rti.dds.dynamicdata (<<eXtension>> ( p. 278) The Dynamic Data API provides a way to interact with arbitrarily
complex data types at runtime without the need for code generation ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
com.rti.dds.infrastructure (Defines the abstract classes and the interfaces that are refined by the other modules. Contains common definitions such as return codes, status values, and QoS
policies ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

10

Namespace Index
com.rti.dds.publication
(Contains
the
com.rti.dds.publication.FlowController
(p. 964),
com.rti.dds.publication.Publisher
(p. 1262),
and
com.rti.dds.publication.DataWriter
(p. 557)
classes
as
well
as
the
com.rti.dds.publication.PublisherListener
(p. 1289)
and
com.rti.dds.publication.DataWriterListener
(p. 586) interfaces, and more generally, all that is needed on
the publication (p. 349) side ) . . . . . . . . . . . . . . . . .
com.rti.dds.publication.builtin (Builtin topic (p. 359) for accessing information about the Publications discovered by RTI
Connext ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
com.rti.dds.subscription
(Contains
the
com.rti.dds.subscription.Subscriber
(p. 1476),
com.rti.dds.subscription.DataReader
(p. 487),
com.rti.dds.subscription.ReadCondition
(p. 1313),
and
com.rti.dds.subscription.QueryCondition
(p. 1311)
classes,
as
well
as
the
com.rti.dds.subscription.SubscriberListener (p. 1503)
and
com.rti.dds.subscription.DataReaderListener
(p. 518) interfaces, and more generally, all that is needed on
the subscription (p. 353) side ) . . . . . . . . . . . . . . . .
com.rti.dds.subscription.builtin (Builtin topic (p. 359) for accessing information about the Subscriptions discovered by RTI
Connext ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
com.rti.dds.topic
(Contains
the
com.rti.dds.topic.Topic
(p. 1545),
com.rti.dds.topic.ContentFilteredTopic
(p. 471), and com.rti.dds.topic.MultiTopic (p. 1190)
classes, the com.rti.dds.topic.TopicListener (p. 1564)
interface, and more generally, all that is needed by an
application to define com.rti.dds.topic.Topic (p. 1545)
objects and attach QoS policies to them ) . . . . . . . . . . .
com.rti.dds.topic.builtin (Builtin topic (p. 359) for accessing information about the Topics discovered by RTI Connext ) . . . .
com.rti.dds.type.builtin (<<eXtension>> ( p. 278) RTI Connext
provides a set of very simple data types for you to use with
the topics in your application ) . . . . . . . . . . . . . . . . .
com.rti.dds.typecode
(<<eXtension>>
( p. 278)
A
com.rti.dds.typecode.TypeCode ( p. 1611) is a mechanism for representing a type at runtime. RTI Connext
can use type codes to send type definitions on the network.
You will need to understand this API in order to use the
Dynamic Data (p. 175) capability or to inspect the type
information you receive from remote readers and writers ) . .
com.rti.dds.util (Utility types that support the DDS API ) . . . . .
com.rti.ndds (DDS extensions ) . . . . . . . . . . . . . . . . . . . . .

349

352

353

358

359
361

362

368
372
373

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

3.1 Package List

11

com.rti.ndds.config (Utility APIs independent of the DDS standard )374


com.rti.ndds.example (Programming HowTos: Code templates for
common use cases ) . . . . . . . . . . . . . . . . . . . . . . . . 375
com.rti.ndds.transport (APIs related to RTI Connext pluggable
transports ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

12

Namespace Index

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 4

Class Index
4.1

Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:


AbstractBuiltinTopicDataTypeSupport . . . . . . . . . . . . . . . . .
ParticipantBuiltinTopicDataTypeSupport . . . . . . . . . . . . . .
PublicationBuiltinTopicDataTypeSupport . . . . . . . . . . . . . .
SubscriptionBuiltinTopicDataTypeSupport . . . . . . . . . . . . .
TopicBuiltinTopicDataTypeSupport . . . . . . . . . . . . . . . . .
AcknowledgmentInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AckResponseData t . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AllocationSettings t . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BuiltinTopicReaderResourceLimits t . . . . . . . . . . . . . . . . . . .
ChannelSettings t . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ChannelSettingsSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
StatusCondition . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ReadCondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
QueryCondition . . . . . . . . . . . . . . . . . . . . . . . . . .
ConditionSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ContentFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WriterContentFilter . . . . . . . . . . . . . . . . . . . . . . . . . .
ContentFilterProperty t . . . . . . . . . . . . . . . . . . . . . . . . . .
Cookie t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CookieSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Copyable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DynamicData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstanceHandle t . . . . . . . . . . . . . . . . . . . . . . . . . . . .

383
1216
1258
1518
1558
393
394
395
426
454
457
464
1448
1313
1311
465
467
1737
476
478
479
480
817
1055

14

Class Index
StringSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1467
WstringSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1741
Time t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537
WriteParams t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733
SampleInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398
BuiltinTopicKey t . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
BytesSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
KeyedBytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
KeyedBytesSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
KeyedString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098
KeyedStringSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
AbstractPrimitiveSequence . . . . . . . . . . . . . . . . . . . . . . 385
BooleanSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
ByteSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
CharSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
WcharSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721
DoubleSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
LongDoubleSeq . . . . . . . . . . . . . . . . . . . . . . . . . . 1179
FloatSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
IntSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
LongSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181
ShortSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442
Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
DataWriterResourceLimitsInstanceReplacementKind . . . . . . 617
DestinationOrderQosPolicyKind . . . . . . . . . . . . . . . . . 634
DiscoveryPluginPromiscuityKind . . . . . . . . . . . . . . . . . 648
DurabilityQosPolicyKind . . . . . . . . . . . . . . . . . . . . . 807
HistoryQosPolicyKind . . . . . . . . . . . . . . . . . . . . . . . 1050
LivelinessQosPolicyKind . . . . . . . . . . . . . . . . . . . . . . 1144
OwnershipQosPolicyKind . . . . . . . . . . . . . . . . . . . . . 1207
PresentationQosPolicyAccessScopeKind . . . . . . . . . . . . . 1226
PublishModeQosPolicyKind . . . . . . . . . . . . . . . . . . . . 1298
QosPolicyId t . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305
RefilterQosPolicyKind . . . . . . . . . . . . . . . . . . . . . . . 1322
ReliabilityQosPolicyAcknowledgmentModeKind . . . . . . . . . 1329
ReliabilityQosPolicyKind . . . . . . . . . . . . . . . . . . . . . 1331
RemoteParticipantPurgeKind . . . . . . . . . . . . . . . . . . . 1341
ThreadSettingsCpuRotationKind . . . . . . . . . . . . . . . . . 1533
TransportMulticastQosPolicyKind . . . . . . . . . . . . . . . . 1593
TypeConsistencyKind . . . . . . . . . . . . . . . . . . . . . . . 1663
WireProtocolQosPolicyAutoKind . . . . . . . . . . . . . . . . . 1732
FlowControllerSchedulingPolicy . . . . . . . . . . . . . . . . . . 970
SampleLostStatusKind . . . . . . . . . . . . . . . . . . . . . . . 1412
SampleRejectedStatusKind . . . . . . . . . . . . . . . . . . . . 1420
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

4.1 Class Hierarchy

15

ExtensibilityKind . . . . . . . . . . . . . . . . . . . . . . . . . . 956
TCKind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525
LogCategory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
LogLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
LogPrintFormat . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
LogVerbosity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
Foo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
FooSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
DataReaderCacheStatus . . . . . . . . . . . . . . . . . . . . . . . . . . 517
DataReaderProtocolStatus . . . . . . . . . . . . . . . . . . . . . . . . 526
DataReaderSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
DataWriterCacheStatus . . . . . . . . . . . . . . . . . . . . . . . . . . 585
DataWriterProtocolStatus . . . . . . . . . . . . . . . . . . . . . . . . . 598
DiscoveryBuiltinReaderFragmentationResourceLimits t . . . . . . . . 636
DiscoveryConfigBuiltinPluginKind . . . . . . . . . . . . . . . . . . . . 638
DomainParticipantFactory . . . . . . . . . . . . . . . . . . . . . . . . . 742
Duration t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
DynamicDataInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
DynamicDataMemberInfo . . . . . . . . . . . . . . . . . . . . . . . . . 887
DynamicDataProperty t . . . . . . . . . . . . . . . . . . . . . . . . . . 890
DynamicDataTypeProperty t . . . . . . . . . . . . . . . . . . . . . . . 897
DynamicDataTypeSerializationProperty t . . . . . . . . . . . . . . . . 899
EndpointGroup t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
EndpointGroupSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
DomainParticipant . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
DomainEntity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
DataWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
DynamicDataWriter . . . . . . . . . . . . . . . . . . . . . . . 907
BytesDataWriter . . . . . . . . . . . . . . . . . . . . . . . . . 437
KeyedBytesDataWriter . . . . . . . . . . . . . . . . . . . . . 1081
KeyedStringDataWriter . . . . . . . . . . . . . . . . . . . . . 1109
StringDataWriter . . . . . . . . . . . . . . . . . . . . . . . . . 1465
FooDataWriter . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262
DataReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
DynamicDataReader . . . . . . . . . . . . . . . . . . . . . . . 892
BytesDataReader . . . . . . . . . . . . . . . . . . . . . . . . . 433
KeyedBytesDataReader . . . . . . . . . . . . . . . . . . . . . 1073
KeyedStringDataReader . . . . . . . . . . . . . . . . . . . . . 1101
StringDataReader . . . . . . . . . . . . . . . . . . . . . . . . 1462
FooDataReader . . . . . . . . . . . . . . . . . . . . . . . . . . 979
Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476
Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545
EnumMember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

16

Class Index
ExpressionProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
FilterSampleInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
FlowController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
FlowControllerProperty t . . . . . . . . . . . . . . . . . . . . . . . . . 968
FlowControllerTokenBucketProperty t . . . . . . . . . . . . . . . . . . 973
FooTypeSupport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
GuardCondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
GUID t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044
InconsistentTopicStatus . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
InetAddressSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
InstanceHandleSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
InstanceStateKind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
LibraryVersion t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
Listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
DataWriterListener . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
DataWriterAdapter . . . . . . . . . . . . . . . . . . . . . . . . 580
PublisherAdapter . . . . . . . . . . . . . . . . . . . . . . . . . 1288
PublisherListener . . . . . . . . . . . . . . . . . . . . . . . . . . 1289
DomainParticipantListener . . . . . . . . . . . . . . . . . . . 771
DomainParticipantAdapter . . . . . . . . . . . . . . . . . 736
PublisherAdapter . . . . . . . . . . . . . . . . . . . . . . . . . 1288
DataReaderListener . . . . . . . . . . . . . . . . . . . . . . . . . . 518
DataReaderAdapter . . . . . . . . . . . . . . . . . . . . . . . . 514
SubscriberAdapter . . . . . . . . . . . . . . . . . . . . . . . . 1502
DomainParticipantAdapter . . . . . . . . . . . . . . . . . 736
SubscriberListener . . . . . . . . . . . . . . . . . . . . . . . . . 1503
DomainParticipantListener . . . . . . . . . . . . . . . . . . . 771
SubscriberAdapter . . . . . . . . . . . . . . . . . . . . . . . . 1502
TopicListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1564
DomainParticipantListener . . . . . . . . . . . . . . . . . . . . 771
TopicAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1550
EntityHowTo.MyEntityListener . . . . . . . . . . . . . . . . . . . . 941
LivelinessChangedStatus . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
LivelinessLostStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
Locator t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
LocatorFilter t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154
LocatorFilterSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
LocatorSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
LoggerDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
LogMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
ObjectHolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
OfferedDeadlineMissedStatus . . . . . . . . . . . . . . . . . . . . . . . 1195
OfferedIncompatibleQosStatus . . . . . . . . . . . . . . . . . . . . . . 1197
ParticipantBuiltinTopicData . . . . . . . . . . . . . . . . . . . . . . . 1211
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

4.1 Class Hierarchy


ParticipantBuiltinTopicDataDataReader . . . . .
ParticipantBuiltinTopicDataSeq . . . . . . . . .
PRIVATE MEMBER . . . . . . . . . . . . . . .
ProductVersion t . . . . . . . . . . . . . . . . . .
Property t . . . . . . . . . . . . . . . . . . . . . .
PropertyQosPolicyHelper . . . . . . . . . . . . .
PropertySeq . . . . . . . . . . . . . . . . . . . . .
ProtocolVersion t . . . . . . . . . . . . . . . . . .
PUBLIC MEMBER . . . . . . . . . . . . . . . .
PublicationBuiltinTopicData . . . . . . . . . . .
PublicationBuiltinTopicDataDataReader . . . . .
PublicationBuiltinTopicDataSeq . . . . . . . . .
PublicationMatchedStatus . . . . . . . . . . . . .
PublisherSeq . . . . . . . . . . . . . . . . . . . .
Qos . . . . . . . . . . . . . . . . . . . . . . . . .
DomainParticipantFactoryQos . . . . . . . .
DomainParticipantQos . . . . . . . . . . . . .
DataWriterQos . . . . . . . . . . . . . . . . .
PublisherQos . . . . . . . . . . . . . . . . . .
DataReaderQos . . . . . . . . . . . . . . . . .
SubscriberQos . . . . . . . . . . . . . . . . .
TopicQos . . . . . . . . . . . . . . . . . . . .
QosPolicy . . . . . . . . . . . . . . . . . . . . . .
AsynchronousPublisherQosPolicy . . . . . . .
AvailabilityQosPolicy . . . . . . . . . . . . .
BatchQosPolicy . . . . . . . . . . . . . . . . .
DatabaseQosPolicy . . . . . . . . . . . . . . .
DataReaderProtocolQosPolicy . . . . . . . .
DataReaderResourceLimitsQosPolicy . . . . .
DataWriterProtocolQosPolicy . . . . . . . . .
DataWriterResourceLimitsQosPolicy . . . . .
DeadlineQosPolicy . . . . . . . . . . . . . . .
DestinationOrderQosPolicy . . . . . . . . . .
DiscoveryConfigQosPolicy . . . . . . . . . . .
DiscoveryQosPolicy . . . . . . . . . . . . . .
DomainParticipantResourceLimitsQosPolicy .
DurabilityQosPolicy . . . . . . . . . . . . . .
DurabilityServiceQosPolicy . . . . . . . . . .
EntityFactoryQosPolicy . . . . . . . . . . . .
EntityNameQosPolicy . . . . . . . . . . . . .
EventQosPolicy . . . . . . . . . . . . . . . . .
ExclusiveAreaQosPolicy . . . . . . . . . . . .
GroupDataQosPolicy . . . . . . . . . . . . . .
HistoryQosPolicy . . . . . . . . . . . . . . . .
LatencyBudgetQosPolicy . . . . . . . . . . .

17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

1214
1215
1228
1229
1234
1239
1244
1245
1248
1249
1256
1257
1259
1293
1300
769
773
610
1290
536
1505
1566
1301
397
402
412
482
521
542
592
621
628
631
639
649
778
802
810
938
942
949
952
1039
1046
1124

18

Class Index
LifespanQosPolicy . . . . . . . . . . . .
LivelinessQosPolicy . . . . . . . . . . . .
LocatorFilterQosPolicy . . . . . . . . .
LoggingQosPolicy . . . . . . . . . . . .
MultiChannelQosPolicy . . . . . . . . .
OwnershipQosPolicy . . . . . . . . . . .
OwnershipStrengthQosPolicy . . . . . .
PartitionQosPolicy . . . . . . . . . . . .
PresentationQosPolicy . . . . . . . . . .
ProfileQosPolicy . . . . . . . . . . . . .
PropertyQosPolicy . . . . . . . . . . . .
PublishModeQosPolicy . . . . . . . . . .
ReaderDataLifecycleQosPolicy . . . . .
ReceiverPoolQosPolicy . . . . . . . . . .
ReliabilityQosPolicy . . . . . . . . . . .
ResourceLimitsQosPolicy . . . . . . . .
SystemResourceLimitsQosPolicy . . . .
TimeBasedFilterQosPolicy . . . . . . .
TopicDataQosPolicy . . . . . . . . . . .
TransportBuiltinQosPolicy . . . . . . .
TransportMulticastMappingQosPolicy .
TransportMulticastQosPolicy . . . . . .
TransportPriorityQosPolicy . . . . . . .
TransportSelectionQosPolicy . . . . . .
TransportUnicastQosPolicy . . . . . . .
TypeConsistencyEnforcementQosPolicy
TypeSupportQosPolicy . . . . . . . . .
UserDataQosPolicy . . . . . . . . . . . .
WireProtocolQosPolicy . . . . . . . . .
WriterDataLifecycleQosPolicy . . . . . .
QosPolicyCount . . . . . . . . . . . . . . .
QosPolicyCountSeq . . . . . . . . . . . . .
ReliableReaderActivityChangedStatus . . .
ReliableWriterCacheChangedStatus . . . .
ReliableWriterCacheEventCount . . . . . .
RequestedDeadlineMissedStatus . . . . . .
RequestedIncompatibleQosStatus . . . . . .
RETCODE ERROR . . . . . . . . . . . . .
RETCODE ALREADY DELETED . .
RETCODE BAD PARAMETER . . . .
RETCODE ILLEGAL OPERATION .
RETCODE IMMUTABLE POLICY . .
RETCODE INCONSISTENT POLICY
RETCODE NO DATA . . . . . . . . .
RETCODE NOT ENABLED . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1128
1140
1157
1169
1187
1199
1209
1217
1221
1231
1236
1295
1315
1318
1324
1348
1523
1541
1559
1580
1587
1590
1598
1600
1605
1661
1666
1694
1723
1738
1302
1304
1333
1336
1340
1344
1346
1356
1354
1355
1357
1358
1359
1360
1361

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

4.1 Class Hierarchy

19

RETCODE OUT OF RESOURCES . . . . . . . . . . . . . . . . . 1362


RETCODE PRECONDITION NOT MET . . . . . . . . . . . . . 1363
RETCODE TIMEOUT . . . . . . . . . . . . . . . . . . . . . . . . 1364
RETCODE UNSUPPORTED . . . . . . . . . . . . . . . . . . . . . 1365
RtpsReliableReaderProtocol t . . . . . . . . . . . . . . . . . . . . . . . 1366
RtpsReliableWriterProtocol t . . . . . . . . . . . . . . . . . . . . . . . 1372
RtpsReservedPortKind . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
RtpsWellKnownPorts t . . . . . . . . . . . . . . . . . . . . . . . . . . 1390
SampleIdentity t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396
SampleLostStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1410
SampleRejectedStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418
SampleStateKind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426
Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428
DynamicDataSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
SampleInfoSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409
BytesSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
KeyedBytesSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
KeyedStringSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
AbstractPrimitiveSequence . . . . . . . . . . . . . . . . . . . . . . 385
AbstractSequence . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
AbstractPrimitiveSequence . . . . . . . . . . . . . . . . . . . . 385
LoanableSequence . . . . . . . . . . . . . . . . . . . . . . . . . 1146
SampleInfoSeq . . . . . . . . . . . . . . . . . . . . . . . . . . 1409
BytesSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
KeyedBytesSeq . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
KeyedStringSeq . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
FooSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
FooSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
SequenceNumber t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1431
StatusKind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451
StructMember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474
SubscriberSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1507
SubscriptionBuiltinTopicData . . . . . . . . . . . . . . . . . . . . . . . 1509
SubscriptionBuiltinTopicDataDataReader . . . . . . . . . . . . . . . . 1516
SubscriptionBuiltinTopicDataSeq . . . . . . . . . . . . . . . . . . . . . 1517
SubscriptionMatchedStatus . . . . . . . . . . . . . . . . . . . . . . . . 1519
SystemException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1522
BAD PARAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
BAD TYPECODE . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
ThreadSettings t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1530
ThreadSettingsKind . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535
TopicBuiltinTopicData . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552
TopicBuiltinTopicDataDataReader . . . . . . . . . . . . . . . . . . . . 1556
TopicBuiltinTopicDataSeq . . . . . . . . . . . . . . . . . . . . . . . . . 1557
TopicDescription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

20

Class Index
ContentFilteredTopic . . . . . . . .
MultiTopic . . . . . . . . . . . . . .
Topic . . . . . . . . . . . . . . . . .
Transport . . . . . . . . . . . . . . . . .
ShmemTransport . . . . . . . . . . .
UDPv4Transport . . . . . . . . . . .
UDPv6Transport . . . . . . . . . . .
Transport.Property t . . . . . . . . . . .
ShmemTransport.Property t . . . .
UDPv4Transport.Property t . . . .
UDPv6Transport.Property t . . . .
TransportBuiltinKind . . . . . . . . . .
TransportMulticastMapping t . . . . . .
TransportMulticastMappingFunction t .
TransportMulticastMappingSeq . . . . .
TransportMulticastSettings t . . . . . .
TransportMulticastSettingsSeq . . . . .
TransportSupport . . . . . . . . . . . .
TransportUnicastSettings t . . . . . . .
TransportUnicastSettingsSeq . . . . . .
TypeCode . . . . . . . . . . . . . . . . .
TypeCodeFactory . . . . . . . . . . . .
TypeSupport . . . . . . . . . . . . . . .
DynamicDataTypeSupport . . . . .
BytesTypeSupport . . . . . . . . . .
KeyedBytesTypeSupport . . . . . .
KeyedStringTypeSupport . . . . . .
StringTypeSupport . . . . . . . . . .
Union . . . . . . . . . . . . . . . . . . .
UnionMember . . . . . . . . . . . . . .
UserException . . . . . . . . . . . . . .
BadKind . . . . . . . . . . . . . . .
BadMemberId . . . . . . . . . . . .
BadMemberName . . . . . . . . . .
Bounds . . . . . . . . . . . . . . . .
ValueMember . . . . . . . . . . . . . . .
VendorId t . . . . . . . . . . . . . . . .
Version . . . . . . . . . . . . . . . . . .
ViewStateKind . . . . . . . . . . . . . .
VM ABSTRACT . . . . . . . . . . . . .
VM CUSTOM . . . . . . . . . . . . . .
VM NONE . . . . . . . . . . . . . . . .
VM TRUNCATABLE . . . . . . . . . .
WaitSet . . . . . . . . . . . . . . . . . .
WaitSetProperty t . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

471
1190
1545
1569
1435
1668
1680
1570
1439
1672
1684
1578
1582
1585
1589
1594
1597
1602
1608
1610
1611
1647
1665
901
450
1094
1120
1470
1691
1692
1696
409
410
411
423
1697
1699
1701
1703
1705
1706
1707
1708
1709
1719

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 5

Class Index
5.1

Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
AbstractBuiltinTopicDataTypeSupport . . . . . . . . . . . . . . 383
AbstractPrimitiveSequence . . . . . . . . . . . . . . . . . . . . . 385
AbstractSequence (Abstract sequence ) . . . . . . . . . . . . . . . . 390
AcknowledgmentInfo (Information about an application-level acknowledged sample ) . . . . . . . . . . . . . . . . . . . . . . . 393
AckResponseData t (Data payload of an application-level acknowledgment ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
AllocationSettings t (Resource allocation settings ) . . . . . . . . . 395
AsynchronousPublisherQosPolicy (Configures the mechanism
that sends user data in an external middleware thread ) . . . 397
AvailabilityQosPolicy (Configures the availability of data ) . . . . . 402
BAD PARAM (The exception BadKind (p. 409) is thrown when
an inappropriate operation is invoked on a TypeCode object ) 407
BAD TYPECODE (The exception BadKind (p. 409) is thrown
when an inappropriate operation is invoked on a TypeCode
object ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
BadKind (The exception BadKind (p. 409) is thrown when an inappropriate operation is invoked on a TypeCode object ) . . . . 409
BadMemberId (The specified com.rti.dds.typecode.TypeCode
(p. 1611) member ID is invalid ) . . . . . . . . . . . . . . . . . 410
BadMemberName (The specified com.rti.dds.typecode.TypeCode
(p. 1611) member name is invalid ) . . . . . . . . . . . . . . . 411
BatchQosPolicy (Used to configure batching of multiple samples into
a single network packet in order to increase throughput for
small samples ) . . . . . . . . . . . . . . . . . . . . . . . . . . 412

22

Class Index
BooleanSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< boolean > ) . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Bounds (A user exception thrown when a parameter is not within the
legal bounds ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
BuiltinTopicKey t (The key type of the built-in topic (p. 359) types )424
BuiltinTopicReaderResourceLimits t (Built-in topic (p. 359)
readers resource limits ) . . . . . . . . . . . . . . . . . . . . . 426
Bytes (Built-in type consisting of a variable-length array of opaque
bytes ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
BytesDataReader
(<<interface>>
Instantiates
DataReader
<
( p. 279)
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes
>
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
BytesDataWriter
(<<interface>>
( p. 279)
Instantiates
DataWriter
<
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes
>
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
ByteSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< byte > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
BytesSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes > ) . 447
BytesTypeSupport
(<<interface>>
( p. 279)
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes type
support ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
ChannelSettings t (Type used to configure the properties of a channel ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
ChannelSettingsSeq
(Declares
IDL
sequence<
com.rti.dds.infrastructure.ChannelSettings t (p. 454)
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
CharSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< char > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Condition
(<<interface>>
( p. 279)
Root
class
for
all the conditions that may be attached to a
com.rti.dds.infrastructure.WaitSet (p. 1709) ) . . . . . . 464
ConditionSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.infrastructure.Condition (p. 464) > ) . . . 465
ContentFilter
(<<interface>>
( p. 279)
Interface to be used by a custom filter of a
com.rti.dds.topic.ContentFilteredTopic (p. 471) ) . . . . 467
ContentFilteredTopic (<<interface>> ( p. 279) Specialization of
com.rti.dds.topic.TopicDescription (p. 1561) that allows
for content-based subscriptions ) . . . . . . . . . . . . . . . . 471
ContentFilterProperty t (<<eXtension>> ( p. 278) Type used
to provide all the required information to enable content filtering ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

23

Cookie t (<<eXtension>> ( p. 278) Sequence of bytes identifying


a written data sample, used when writing with parameters ) . 478
CookieSeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Copyable (<<eXtension>> ( p. 278) <<interface>> ( p. 279) Interface for all the user-defined data type classes that support
copy ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
DatabaseQosPolicy (Various threads and resource limits settings
used by RTI Connext to control its internal database ) . . . . 482
DataReader (<<interface>> ( p. 279) Allows the application to:
(1) declare the data it wishes to receive (i.e. make a subscription (p. 353)) and (2) access the data received by the
attached com.rti.dds.subscription.Subscriber (p. 1476) ) 487
DataReaderAdapter (<<eXtension>> ( p. 278) A listener
adapter in the spirit of the Java AWT listener adapters. (The
Adapter provides empty implementations for the listener
methods) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
DataReaderCacheStatus (<<eXtension>> ( p. 278) The status
of the readers cache ) . . . . . . . . . . . . . . . . . . . . . . 517
DataReaderListener
(<<interface>>
( p. 279)
com.rti.dds.infrastructure.Listener (p. 1130) for reader
status ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
DataReaderProtocolQosPolicy
(Along
with
com.rti.dds.infrastructure.WireProtocolQosPolicy
(p. 1723) and com.rti.dds.infrastructure.DataWriterProtocolQosPolicy
(p. 592), this QoS policy configures the DDS on-the-network
protocol (RTPS) ) . . . . . . . . . . . . . . . . . . . . . . . . 521
DataReaderProtocolStatus (<<eXtension>> ( p. 278) The status of a readers internal protocol related metrics, like the
number of samples received, filtered, rejected; and status of
wire protocol traffic ) . . . . . . . . . . . . . . . . . . . . . . . 526
DataReaderQos
(QoS
policies
supported
by
a
com.rti.dds.subscription.DataReader (p. 487) entity
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
DataReaderResourceLimitsQosPolicy (Various settings that
configure how a com.rti.dds.subscription.DataReader
(p. 487) allocates and uses physical memory for internal resources ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
DataReaderSeq
(Declares
IDL
sequence
<
com.rti.dds.subscription.DataReader (p. 487) > ) . . . . 555
DataWriter (<<interface>> ( p. 279) Allows an application to
set the value of the data to be published under a given
com.rti.dds.topic.Topic (p. 1545) ) . . . . . . . . . . . . . . 557
DataWriterAdapter (<<eXtension>> ( p. 278) A listener adapter
in the spirit of the Java AWT listener adapters. (The Adapter
provides empty implementations for the listener methods or
functions.) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

24

Class Index
DataWriterCacheStatus (<<eXtension>> ( p. 278) The status of
the writers cache ) . . . . . . . . . . . . . . . . . . . . . . . .
DataWriterListener
(<<interface>>
( p. 279)
com.rti.dds.infrastructure.Listener (p. 1130) for writer
status ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DataWriterProtocolQosPolicy (Protocol that applies only to
com.rti.dds.publication.DataWriter (p. 557) instances ) .
DataWriterProtocolStatus (<<eXtension>> ( p. 278) The status of a writers internal protocol related metrics, like the
number of samples pushed, pulled, filtered; and status of wire
protocol traffic ) . . . . . . . . . . . . . . . . . . . . . . . . .
DataWriterQos
(QoS
policies
supported
by
a
com.rti.dds.publication.DataWriter
(p. 557)
entity
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DataWriterResourceLimitsInstanceReplacementKind
(Sets
the kinds of instances that can be replaced when instance
resource limits are reached ) . . . . . . . . . . . . . . . . . . .
DataWriterResourceLimitsQosPolicy (Various settings that configure how a com.rti.dds.publication.DataWriter (p. 557)
allocates and uses physical memory for internal resources ) .
DeadlineQosPolicy (Expresses the maximum duration (deadline)
within which an instance is expected to be updated ) . . . . .
DestinationOrderQosPolicy
(Controls
how
the
middleware will deal with data sent by multiple
com.rti.dds.publication.DataWriter
(p. 557)
entities for the same instance of data (i.e., same
com.rti.dds.topic.Topic (p. 1545) and key) ) . . . . . . . .
DestinationOrderQosPolicyKind (Kinds of destination order ) . .
DiscoveryBuiltinReaderFragmentationResourceLimits t . . .
DiscoveryConfigBuiltinPluginKind (Built-in discovery plugins
that can be used ) . . . . . . . . . . . . . . . . . . . . . . . .
DiscoveryConfigQosPolicy (Settings for discovery configuration ) .
DiscoveryPluginPromiscuityKind (<<eXtension>> ( p. 278)
Type used to indicate promiscuity mode of the discovery plugin ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DiscoveryQosPolicy (Configures the mechanism used by the middleware to automatically discover and connect with new remote
applications ) . . . . . . . . . . . . . . . . . . . . . . . . . . .
DomainEntity
(<<interface>>
( p. 279)
Abstract
base class for all DDS entities except for the
com.rti.dds.domain.DomainParticipant (p. 654) ) . . . .
DomainParticipant (<<interface>> ( p. 279) Container for all
com.rti.dds.infrastructure.DomainEntity (p. 653) objects ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

585

586
592

598

610

617

621
628

631
634
636
638
639

648

649

653

654

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

25

DomainParticipantAdapter (<<eXtension>> ( p. 278) A listener adapter in the spirit of the Java AWT listener adapters.
(The Adapter provides empty implementations for the listener
methods) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
DomainParticipantFactory
(<<singleton>>
( p. 279)
<<interface>> ( p. 279) Allows creation and destruction of com.rti.dds.domain.DomainParticipant (p. 654)
objects ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
DomainParticipantFactoryQos (QoS policies supported by
a
com.rti.dds.domain.DomainParticipantFactory
(p. 742) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
DomainParticipantListener (<<interface>> ( p. 279) Listener
for participant status ) . . . . . . . . . . . . . . . . . . . . . . 771
DomainParticipantQos
(QoS
policies
supported
by
a
com.rti.dds.domain.DomainParticipant (p. 654) entity ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
DomainParticipantResourceLimitsQosPolicy
(Various
settings
that
configure
how
a
com.rti.dds.domain.DomainParticipant (p. 654) allocates and uses physical memory for internal resources,
including the maximum sizes of various properties ) . . . . . 778
DoubleSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< double > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
DurabilityQosPolicy (This QoS policy specifies whether or not
RTI Connext will store and deliver previously published data
samples to new com.rti.dds.subscription.DataReader
(p. 487) entities that join the network later ) . . . . . . . . . . 802
DurabilityQosPolicyKind (Kinds of durability ) . . . . . . . . . . . 807
DurabilityServiceQosPolicy
(Various
settings
to
configure
the
external
RTI
Persistence
Service
used by RTI Connext for DataWriters with a
com.rti.dds.infrastructure.DurabilityQosPolicy
(p. 802) setting of com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSIST
DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TR
DURABILITY QOS ) . . . . . . . . . . . . . . . . . . . . . . 810
Duration t (Type for duration representation ) . . . . . . . . . . . . 813
DynamicData (A sample of any complex data type, which can be
inspected and manipulated reflectively ) . . . . . . . . . . . . 817
DynamicDataInfo
(A
descriptor
for
a
com.rti.dds.dynamicdata.DynamicData (p. 817) object ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
DynamicDataMemberInfo (A descriptor for a single member (i.e.
field) of dynamically defined data type ) . . . . . . . . . . . . 887
DynamicDataProperty t (A collection of attributes used to configure com.rti.dds.dynamicdata.DynamicData (p. 817) objects ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

26

Class Index
DynamicDataReader (Reads (subscribes to) objects of type
com.rti.dds.dynamicdata.DynamicData (p. 817) ) . . . . 892
DynamicDataSeq
(An
ordered
collection
of
com.rti.dds.dynamicdata.DynamicData (p. 817) elements ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
DynamicDataTypeProperty t (A collection of attributes used
to configure com.rti.dds.dynamicdata.DynamicData
(p. 817) objects ) . . . . . . . . . . . . . . . . . . . . . . . . . 897
DynamicDataTypeSerializationProperty t (Properties that govern how data of a certain type will be serialized on the network
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
DynamicDataTypeSupport
(A
factory
for
registering
a
dynamically
defined
type
and
creating
com.rti.dds.dynamicdata.DynamicData (p. 817) objects ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
DynamicDataWriter (Writes (publishes) objects of type
com.rti.dds.dynamicdata.DynamicData (p. 817) ) . . . . 907
EndpointGroup t (Specifies a group of endpoints that can be collectively identified by a name and satisfied by a quorum ) . . . . 928
EndpointGroupSeq
(A
sequence
of
com.rti.dds.infrastructure.EndpointGroup t (p. 928) ) . 930
Entity (<<interface>> ( p. 279) Abstract base class for all the DDS
objects that support QoS policies, a listener, and a status
condition ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
EntityFactoryQosPolicy
(A
QoS
policy
for
all
com.rti.dds.infrastructure.Entity
(p. 931)
types
that can act as factories for one or more other
com.rti.dds.infrastructure.Entity (p. 931) types ) . . . . . 938
EntityHowTo.MyEntityListener . . . . . . . . . . . . . . . . . . . 941
EntityNameQosPolicy (Assigns a name and a role name to
a
com.rti.dds.domain.DomainParticipant
(p. 654),
com.rti.dds.publication.DataWriter
(p. 557)
or
com.rti.dds.subscription.DataReader (p. 487). These
names will be visible during the discovery process and in RTI
tools to help you visualize and debug your system ) . . . . . . 942
Enum (A superclass for all type-safe enumerated types ) . . . . . . . 944
EnumMember (A description of a member of an enumeration ) . . . 947
EventQosPolicy (Settings for event ) . . . . . . . . . . . . . . . . . . 949
ExclusiveAreaQosPolicy (Configures multi-thread concurrency and
deadlock prevention capabilities ) . . . . . . . . . . . . . . . . 952
ExpressionProperty . . . . . . . . . . . . . . . . . . . . . . . . . . 955
ExtensibilityKind (Type to indicate the extensibility of a type ) . . 956
FilterSampleInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
FloatSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< float > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

27

FlowController (<<interface>> ( p. 279) A flow controller


is the object responsible for shaping the network
traffic by determining when attached asynchronous
com.rti.dds.publication.DataWriter (p. 557) instances
are allowed to write data ) . . . . . . . . . . . . . . . . . . . . 964
FlowControllerProperty t (Determines the flow control characteristics of the com.rti.dds.publication.FlowController
(p. 964) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
FlowControllerSchedulingPolicy (Kinds of flow controller scheduling policy ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
FlowControllerTokenBucketProperty t
(Com.rti.dds.publication.FlowController uses the popular token bucket approach for open loop network flow control.
The flow control characteristics are determined by the token
bucket properties ) . . . . . . . . . . . . . . . . . . . . . . . . 973
Foo (A representative user-defined data type ) . . . . . . . . . . . . . 977
FooDataReader
(<<interface>> ( p. 279)
<<generic>>
( p. 279) User data type-specific data reader ) . . . . . . . . . 979
FooDataWriter (<<interface>> ( p. 279) <<generic>> ( p. 279)
User data type specific data writer ) . . . . . . . . . . . . . . 1012
FooSeq (<<interface>> ( p. 279) <<generic>> ( p. 279) A
type-safe, ordered collection of elements.
The type of
these elements is referred to in this documentation as
com.rti.ndds.example.Foo (p. 977) ) . . . . . . . . . . . . 1034
FooTypeSupport (<<interface>> ( p. 279) <<generic>>
( p. 279) User data type specific interface ) . . . . . . . . . . . 1036
GroupDataQosPolicy (Attaches a buffer of opaque data that is distributed by means of Built-in Topics (p. 157) during discovery ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
GuardCondition
(<<interface>>
( p. 279)
A
specific
com.rti.dds.infrastructure.Condition (p. 464) whose
trigger value is completely under the control of the
application ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
GUID t (Type for GUID (Global Unique Identifier) representation ) 1044
HistoryQosPolicy (Specifies the behavior of RTI Connext in the case
where the value of a sample changes (one or more times) before
it can be successfully communicated to one or more existing
subscribers ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
HistoryQosPolicyKind (Kinds of history ) . . . . . . . . . . . . . . 1050
InconsistentTopicStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.INCONSISTENT TOPIC STATUS ) . . . . . . . . . . . . . . . . . . . . . . . . 1052
InetAddressSeq
(Declares
IDL
sequence<
com.rti.dds.infrastructure.java.net.InetAddress > ) . . . . . . 1054
InstanceHandle t (Type definition for an instance handle ) . . . . . 1055
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

28

Class Index
InstanceHandleSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
<
com.rti.dds.infrastructure.InstanceHandle t
(p. 1055) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
InstanceStateKind (Indicates is the samples are from a live
com.rti.dds.publication.DataWriter (p. 557) or not ) . . 1061
IntSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.infrastructure.int > ) . . . . . . . . . . . . . . . 1064
KeyedBytes (Built-in type consisting of a variable-length array of
opaque bytes and a string that is the key ) . . . . . . . . . . . 1070
KeyedBytesDataReader
(<<interface>>
( p. 279)
Instantiates
DataReader
<
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
KeyedBytesDataWriter
(<<interface>>
( p. 279)
Instantiates
DataWriter
<
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
KeyedBytesSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
KeyedBytesTypeSupport
(<<interface>>
( p. 279)
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes
type support ) . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
KeyedString (Keyed string built-in type ) . . . . . . . . . . . . . . . 1098
KeyedStringDataReader
(<<interface>>
( p. 279)
Instantiates
DataReader
<
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
KeyedStringDataWriter
(<<interface>>
( p. 279)
Instantiates
DataWriter
<
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
KeyedStringSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
KeyedStringTypeSupport (<<interface>> ( p. 279) Keyed
string type support ) . . . . . . . . . . . . . . . . . . . . . . . 1120
LatencyBudgetQosPolicy (Provides a hint as to the maximum acceptable delay from the time the data is written to the time
it is received by the subscribing applications ) . . . . . . . . . 1124
LibraryVersion t (The version of a single library shipped as part of
an RTI Connext distribution ) . . . . . . . . . . . . . . . . . 1126
LifespanQosPolicy (Specifies how long the data written by the
com.rti.dds.publication.DataWriter (p. 557) is considered valid ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

29

Listener (<<interface>> ( p. 279) Abstract base class for all Listener (p. 1130) interfaces ) . . . . . . . . . . . . . . . . . . . 1130
LivelinessChangedStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.LIVELINESS CHANGED STATUS ) . . . . . . . . . . . . . . . . . . . . . . 1135
LivelinessLostStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.LIVELINESS LOST STATUS ) . . . . . . . . . . . . . . . . . . . . . . . . . 1138
LivelinessQosPolicy (Specifies and configures the mechanism that
allows com.rti.dds.subscription.DataReader (p. 487) entities to detect when com.rti.dds.publication.DataWriter
(p. 557) entities become disconnected or dead. ) . . . . . . . 1140
LivelinessQosPolicyKind (Kinds of liveliness ) . . . . . . . . . . . . 1144
LoanableSequence (A sequence capable of storing its elements directly or taking out a loan on them from an internal middleware store ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
Locator t (<<eXtension>> ( p. 278) Type used to represent the
addressing information needed to send a message to an RTPS
Endpoint using one of the supported transports ) . . . . . . . 1150
LocatorFilter t (Specifies the configuration of an individual channel
within a MultiChannel DataWriter ) . . . . . . . . . . . . . . 1154
LocatorFilterQosPolicy (The QoS policy used to report the
configuration of a MultiChannel DataWriter as part of
builtin.PublicationBuiltinTopicData ) . . . . . . . . . . . . . 1157
LocatorFilterSeq
(Declares
IDL
sequence<
com.rti.dds.infrastructure.LocatorFilter t
(p. 1154)
> ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
LocatorSeq
(Declares
IDL
sequence
<
com.rti.dds.infrastructure.Locator t (p. 1150) > ) . . . . 1160
LogCategory (Categories of logged messages ) . . . . . . . . . . . . . 1161
Logger (<<interface>> ( p. 279) The singleton type used to configure RTI Connext logging ) . . . . . . . . . . . . . . . . . . . . 1163
LoggerDevice (<<interface>> ( p. 279) Logging device interface.
Use for user-defined logging devices ) . . . . . . . . . . . . . . 1167
LoggingQosPolicy (Configures the RTI Connext logging facility ) . 1169
LogLevel (Level category assigned to RTI Connext log messages returned to an output device ) . . . . . . . . . . . . . . . . . . . 1171
LogMessage (Log message ) . . . . . . . . . . . . . . . . . . . . . . . 1173
LogPrintFormat (The format used to output RTI Connext diagnostic information ) . . . . . . . . . . . . . . . . . . . . . . . . . 1174
LogVerbosity (The verbosities at which RTI Connext diagnostic information is logged ) . . . . . . . . . . . . . . . . . . . . . . . 1177
LongDoubleSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.infrastructure.LongDouble > ) . . . . . . . . . 1179
LongSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< long > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

30

Class Index
MultiChannelQosPolicy (Configures the ability of a DataWriter to
send data on different multicast groups (addresses) based on
the value of the data ) . . . . . . . . . . . . . . . . . . . . . . 1187
MultiTopic
([Not
supported
(optional)]
<<interface>>
( p. 279)
A
specialization
of
that
com.rti.dds.topic.TopicDescription
(p. 1561)
allows subscriptions that combine/filter/rearrange data
coming from several topics ) . . . . . . . . . . . . . . . . . . . 1190
ObjectHolder (<<eXtension>> ( p. 278) Holder of object instance )1194
OfferedDeadlineMissedStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED DEADLINE MISSED STATUS ) . . . . . . . . . . . . . . . . 1195
OfferedIncompatibleQosStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED INCOMPATIBLE QOS STATUS ) . . . . . . . . . . . . . . . 1197
OwnershipQosPolicy (Specifies whether it is allowed for multiple
com.rti.dds.publication.DataWriter (p. 557) (s) to write
the same instance of the data and if so, how these modifications should be arbitrated ) . . . . . . . . . . . . . . . . . . . 1199
OwnershipQosPolicyKind (Kinds of ownership ) . . . . . . . . . . 1207
OwnershipStrengthQosPolicy
(Specifies
the
value
of
the strength used to arbitrate among multiple
com.rti.dds.publication.DataWriter (p. 557) objects
that attempt to modify the same instance of a data type
(identified by com.rti.dds.topic.Topic (p. 1545) + key) ) . 1209
ParticipantBuiltinTopicData (Entry created when a DomainParticipant (p. 654) object is discovered ) . . . . . . . . . . . . . 1211
ParticipantBuiltinTopicDataDataReader
(Instantiates
DataReader < builtin.ParticipantBuiltinTopicData
(p. 1211) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
ParticipantBuiltinTopicDataSeq
(Instantiates
com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< builtin.ParticipantBuiltinTopicData (p. 1211) > ) . . 1215
ParticipantBuiltinTopicDataTypeSupport
(Instantiates
TypeSupport < builtin.ParticipantBuiltinTopicData
(p. 1211) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
PartitionQosPolicy (Set of strings that introduces a
logical partition among the topics visible by a
com.rti.dds.publication.Publisher (p. 1262) and a
com.rti.dds.subscription.Subscriber (p. 1476) ) . . . . . . 1217
PresentationQosPolicy (Specifies how the samples representing
changes to data instances are presented to a subscribing application ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
PresentationQosPolicyAccessScopeKind (Kinds of presentation
access scope ) . . . . . . . . . . . . . . . . . . . . . . . . . . 1226
PRIVATE MEMBER (Constant used to indicate that a value type
member is private ) . . . . . . . . . . . . . . . . . . . . . . . . 1228
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

31

ProductVersion t (<<eXtension>> ( p. 278) Type used to represent the current version of RTI Connext ) . . . . . . . . . . . 1229
ProfileQosPolicy (Configures the way that XML documents containing QoS profiles are loaded by RTI Connext ) . . . . . . . . . 1231
Property t (Properties are name/value pairs objects ) . . . . . . . . 1234
PropertyQosPolicy (Stores name/value(string) pairs that can be
used to configure certain parameters of RTI Connext that are
not exposed through formal QoS policies. Can also be used
to store and propagate application-specific name/value pairs
that can be retrieved by user code during discovery ) . . . . . 1236
PropertyQosPolicyHelper (Policy Helpers which facilitate management of the properties in the input policy ) . . . . . . . . . . 1239
PropertySeq
(Declares
IDL
sequence
<
com.rti.dds.infrastructure.Property t
(p. 1234)
>
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
ProtocolVersion t (<<eXtension>> ( p. 278) Type used to represent the version of the RTPS protocol ) . . . . . . . . . . . . 1245
PUBLIC MEMBER (Constant used to indicate that a value type
member is public ) . . . . . . . . . . . . . . . . . . . . . . . . 1248
PublicationBuiltinTopicData
(Entry
created
when
a
com.rti.dds.publication.DataWriter (p. 557) is discovered in association with its Publisher (p. 1262) ) . . . . . 1249
PublicationBuiltinTopicDataDataReader
(Instantiates
DataReader < builtin.PublicationBuiltinTopicData
(p. 1249) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
PublicationBuiltinTopicDataSeq
(Instantiates
com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< builtin.PublicationBuiltinTopicData (p. 1249) > ) . . 1257
PublicationBuiltinTopicDataTypeSupport
(Instantiates
TypeSupport < builtin.PublicationBuiltinTopicData
(p. 1249) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
PublicationMatchedStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.PUBLICATION MATCHED STATUS ) . . . . . . . . . . . . . . . . . . . . . . 1259
Publisher (<<interface>> ( p. 279) A publisher is the object responsible for the actual dissemination of publications ) . . . . 1262
PublisherAdapter (<<eXtension>> ( p. 278) A listener adapter in
the spirit of the Java AWT listener adapters. (The Adapter
provides empty implementations for the listener methods) ) . 1288
PublisherListener
(<<interface>>
( p. 279)
com.rti.dds.infrastructure.Listener
(p. 1130)
for
com.rti.dds.publication.Publisher
(p. 1262)
status
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289
PublisherQos
(QoS
policies
supported
by
a
com.rti.dds.publication.Publisher
(p. 1262)
entity
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

32

Class Index
PublisherSeq
(Declares
IDL
sequence
<
com.rti.dds.publication.Publisher (p. 1262) > ) . . . . . .
PublishModeQosPolicy (Specifies how RTI Connext sends application data on the network. This QoS policy can be used to tell
RTI Connext to use its own thread to send data, instead of
the user thread ) . . . . . . . . . . . . . . . . . . . . . . . . .
PublishModeQosPolicyKind (Kinds of publishing mode ) . . . . .
Qos (An abstract base class for all QoS types ) . . . . . . . . . . . . .
QosPolicy (The base class for all QoS policies ) . . . . . . . . . . . .
QosPolicyCount
(Type
to
hold
a
counter
for
a
(p. 1305)
com.rti.dds.infrastructure.QosPolicyId t
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
QosPolicyCountSeq
(Declares
IDL
sequence
<
com.rti.dds.infrastructure.QosPolicyCount (p. 1302) > )
QosPolicyId t (Type to identify QosPolicies ) . . . . . . . . . . . .
QueryCondition (<<interface>> ( p. 279) These are specialised
com.rti.dds.subscription.ReadCondition (p. 1313) objects that allow the application to also specify a filter on the
locally available data ) . . . . . . . . . . . . . . . . . . . . . .
ReadCondition (<<interface>> ( p. 279) Conditions specifically dedicated to read operations and attached to one
com.rti.dds.subscription.DataReader (p. 487) ) . . . . .
ReaderDataLifecycleQosPolicy (Controls how a DataReader manages the lifecycle of the data that it has received ) . . . . . .
ReceiverPoolQosPolicy (Configures threads used by RTI Connext
to receive and process data from transports (for example,
UDP sockets) ) . . . . . . . . . . . . . . . . . . . . . . . . . .
RefilterQosPolicyKind (<<eXtension>> ( p. 278) Kinds of Refiltering ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ReliabilityQosPolicy (Indicates the level of reliability offered/requested by RTI Connext ) . . . . . . . . . . . . . . .
ReliabilityQosPolicyAcknowledgmentModeKind (Kinds of acknowledgment ) . . . . . . . . . . . . . . . . . . . . . . . . . .
ReliabilityQosPolicyKind (Kinds of reliability ) . . . . . . . . . . .
ReliableReaderActivityChangedStatus
(<<eXtension>>
( p. 278) Describes the activity (i.e. are acknowledgements
forthcoming) of reliable readers matched to a reliable writer )
ReliableWriterCacheChangedStatus
(<<eXtension>>
( p. 278) A summary of the state of a data writers cache of
unacknowledged samples written ) . . . . . . . . . . . . . . .
ReliableWriterCacheEventCount (<<eXtension>> ( p. 278)
The number of times the number of unacknowledged samples in the cache of a reliable writer hit a certain well-defined
threshold ) . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1293

1295
1298
1300
1301

1302
1304
1305

1311

1313
1315

1318
1322
1324
1329
1331

1333

1336

1340

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

33

RemoteParticipantPurgeKind (Available behaviors for halting


communication with remote participants (and their contained
entities) with which discovery communication has been lost ) 1341
RequestedDeadlineMissedStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED DEADLINE MISSED STATUS ) . . . . . . . . . . . . . . . . 1344
RequestedIncompatibleQosStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED INCOMPATIBLE QOS STATUS ) . . . . . . . . . . . . . . . 1346
ResourceLimitsQosPolicy (Controls the amount of physical memory allocated for DDS entities, if dynamic allocations are
allowed, and how they occur. Also controls memory usage
among different instance values for keyed topics ) . . . . . . . 1348
RETCODE ALREADY DELETED (The object target of this operation has already been deleted ) . . . . . . . . . . . . . . . 1354
RETCODE BAD PARAMETER (Illegal parameter value ) . . . 1355
RETCODE ERROR (Generic, unspecified error ) . . . . . . . . . . 1356
RETCODE ILLEGAL OPERATION (The operation was called
under improper circumstances ) . . . . . . . . . . . . . . . . . 1357
RETCODE IMMUTABLE POLICY (Application attempted to
modify an immutable QoS policy ) . . . . . . . . . . . . . . . 1358
RETCODE INCONSISTENT POLICY (Application specified a
set of QoS policies that are not consistent with each other ) . 1359
RETCODE NO DATA (Indicates a transient situation where the
operation did not return any data but there is no inherent
error ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1360
RETCODE NOT ENABLED
(Operation
invoked
on
a
com.rti.dds.infrastructure.Entity (p. 931) that is not yet
enabled ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1361
RETCODE OUT OF RESOURCES (RTI Connext ran out of the
resources needed to complete the operation ) . . . . . . . . . 1362
RETCODE PRECONDITION NOT MET (A pre-condition for
the operation was not met ) . . . . . . . . . . . . . . . . . . . 1363
RETCODE TIMEOUT (The operation timed out ) . . . . . . . . . 1364
RETCODE UNSUPPORTED (Unsupported operation. Can only
returned by operations that are unsupported ) . . . . . . . . 1365
RtpsReliableReaderProtocol t (Qos (p. 1300) related to reliable
reader protocol defined in RTPS ) . . . . . . . . . . . . . . . 1366
RtpsReliableWriterProtocol t (QoS related to the reliable writer
protocol defined in RTPS ) . . . . . . . . . . . . . . . . . . . 1372
RtpsReservedPortKind (RTPS reserved port kind, used to identify
the types of ports that can be reserved on domain (p. 328)
participant enable ) . . . . . . . . . . . . . . . . . . . . . . . . 1388
RtpsWellKnownPorts t (RTPS well-known port mapping configuration ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1390
SampleIdentity t (Type definition for an Sample Identity ) . . . . . 1396
SampleInfo (Information that accompanies each sample that is read
or taken ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

34

Class Index
SampleInfoSeq
(Declares
IDL
sequence
<
com.rti.dds.subscription.SampleInfo (p. 1398) > ) . . . . 1409
SampleLostStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.SAMPLE LOST STATUS STATUS ) . . . . . . . . . . . . . . . . . . . 1410
SampleLostStatusKind (Kinds of reasons why a sample was lost ) . 1412
SampleRejectedStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.SAMPLE REJECTED STATUS ) . . . . . . . . . . . . . . . . . . . . . 1418
SampleRejectedStatusKind (Kinds of reasons for rejecting a sample ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1420
SampleStateKind (Indicates whether or not a sample has ever been
read ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426
Sequence (<<interface>> ( p. 279) <<generic>> ( p. 279) A
type-safe, ordered collection of elements.
The type of
these elements is referred to in this documentation as
com.rti.ndds.example.Foo (p. 977) ) . . . . . . . . . . . . 1428
SequenceNumber t (Type for sequence number representation ) . . 1431
ShmemTransport (Built-in transport (p. 376) plug-in for interprocess communications using shared memory ) . . . . . . . . 1435
ShmemTransport.Property t
(Subclass
of
com.rti.ndds.transport.Transport.Property t (p. 1570)
allowing specification of parameters that are specific to the
shared-memory transport (p. 376) ) . . . . . . . . . . . . . . 1439
ShortSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< short > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442
StatusCondition
(<<interface>>
( p. 279)
A
specific
com.rti.dds.infrastructure.Condition
(p. 464)
that
is associated with each com.rti.dds.infrastructure.Entity
(p. 931) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448
StatusKind (Type for status kinds ) . . . . . . . . . . . . . . . . . . 1451
StringDataReader
(<<interface>>
( p. 279)
Instantiates
DataReader < com.rti.dds.infrastructure.String > ) . . . . . . 1462
StringDataWriter
(<<interface>>
( p. 279)
Instantiates
DataWriter < com.rti.dds.infrastructure.String > ) . . . . . . 1465
StringSeq
(Declares
IDL
sequence
<
com.rti.dds.infrastructure.String > ) . . . . . . . . . . . . . . 1467
StringTypeSupport (<<interface>> ( p. 279) String type support )1470
StructMember (A description of a member of a struct ) . . . . . . . 1474
Subscriber (<<interface>> ( p. 279) A subscriber is the object responsible for actually receiving data from a subscription
(p. 353) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476
SubscriberAdapter (A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods) ) . . . . . . . . . . . . . . . . . 1502
SubscriberListener
(<<interface>>
( p. 279)
com.rti.dds.infrastructure.Listener (p. 1130) for status about a subscriber ) . . . . . . . . . . . . . . . . . . . . . 1503
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

35

SubscriberQos
(QoS
policies
supported
by
a
com.rti.dds.subscription.Subscriber (p. 1476) entity
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1505
SubscriberSeq
(Declares
IDL
sequence
<
com.rti.dds.subscription.Subscriber (p. 1476) > ) . . . . 1507
SubscriptionBuiltinTopicData
(Entry
created
when
a
com.rti.dds.subscription.DataReader (p. 487) is discovered in association with its Subscriber (p. 1476) ) . . . . 1509
SubscriptionBuiltinTopicDataDataReader
<
(Instantiates
DataReader (p. 487)
builtin.SubscriptionBuiltinTopicData
(p. 1509)
>
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516
SubscriptionBuiltinTopicDataSeq
(Instantiates
com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< builtin.SubscriptionBuiltinTopicData (p. 1509) > ) . . 1517
SubscriptionBuiltinTopicDataTypeSupport
(Instantiates
TypeSupport < builtin.SubscriptionBuiltinTopicData
(p. 1509) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518
SubscriptionMatchedStatus (Com.rti.dds.infrastructure.StatusKind.StatusKind.SUBSCRIPTION MATCHED STATUS ) . . . . . . . . . . . . . . . . . . . . . . 1519
SystemException (System exception ) . . . . . . . . . . . . . . . . . 1522
SystemResourceLimitsQosPolicy
(Configures
com.rti.dds.domain.DomainParticipant
(p. 654)independent
resources
used
by
RTI
Connext.
Mainly used to change the maximum number of
com.rti.dds.domain.DomainParticipant (p. 654) entities that can be created within a single process (address
space) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1523
TCKind (Enumeration type for com.rti.dds.typecode.TypeCode
(p. 1611) kinds ) . . . . . . . . . . . . . . . . . . . . . . . . . 1525
ThreadSettings t (The properties of a thread of execution ) . . . . . 1530
ThreadSettingsCpuRotationKind
(Determines
how
com.rti.dds.infrastructure.ThreadSettings t.cpu list (p. 1531) affects processor affinity for thread-related QoS
policies that apply to multiple threads ) . . . . . . . . . . . . 1533
ThreadSettingsKind (A collection of flags used to configure threads
of execution ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535
Time t (Type for time representation ) . . . . . . . . . . . . . . . . . 1537
TimeBasedFilterQosPolicy
(Filter
that
allows
a
com.rti.dds.subscription.DataReader (p. 487) to specify
that it is interested only in (potentially) a subset of the values
of the data ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541
Topic (<<interface>> ( p. 279) The most basic description of the
data to be published and subscribed ) . . . . . . . . . . . . . 1545
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

36

Class Index
TopicAdapter (<<eXtension>> ( p. 278) A listener adapter in the
spirit of the Java AWT listener adapters. (The Adapter provides empty implementations for the listener methods) ) . . . 1550
TopicBuiltinTopicData (Entry created when a Topic (p. 1545) object discovered ) . . . . . . . . . . . . . . . . . . . . . . . . . 1552
TopicBuiltinTopicDataDataReader (Instantiates DataReader <
builtin.TopicBuiltinTopicData (p. 1552) > ) . . . . . . . . 1556
TopicBuiltinTopicDataSeq
(Instantiates
com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< builtin.TopicBuiltinTopicData (p. 1552) > ) . . . . . . 1557
TopicBuiltinTopicDataTypeSupport (Instantiates TypeSupport
(p. 1665) < builtin.TopicBuiltinTopicData (p. 1552) > ) 1558
TopicDataQosPolicy (Attaches a buffer of opaque data that is distributed by means of Built-in Topics (p. 157) during discovery ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559
TopicDescription (Com.rti.dds.topic.Topic entity and associated elements ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561
TopicListener
(<<interface>>
( p. 279)
com.rti.dds.infrastructure.Listener
(p. 1130)
for
com.rti.dds.topic.Topic (p. 1545) entities ) . . . . . . . . . 1564
TopicQos (QoS policies supported by a com.rti.dds.topic.Topic
(p. 1545) entity ) . . . . . . . . . . . . . . . . . . . . . . . . . 1566
Transport (RTI Connexts abstract pluggable transport (p. 376) interface ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569
Transport.Property t (Base structure that must be inherited by
derived Transport (p. 1569) Plugin classes ) . . . . . . . . . 1570
TransportBuiltinKind (Built-in transport kind ) . . . . . . . . . . . 1578
TransportBuiltinQosPolicy (Specifies which built-in transports are
used ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580
TransportMulticastMapping t (Type representing a list of multicast mapping elements ) . . . . . . . . . . . . . . . . . . . . . 1582
TransportMulticastMappingFunction t (Type representing an
external mapping function ) . . . . . . . . . . . . . . . . . . . 1585
TransportMulticastMappingQosPolicy (Specifies the multicast
address on which a com.rti.dds.subscription.DataReader
(p. 487) wants to receive its data.
It can also specify a port number as well as a subset of the available
(at the com.rti.dds.domain.DomainParticipant (p. 654)
level) transports with which to receive the multicast data ) . 1587
TransportMulticastMappingSeq (Declares IDL sequence<
com.rti.dds.infrastructure.TransportMulticastSettings t (p. 1594) > ) . . . . . . . . . . . . . . . . . . . . . . . . . . 1589
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List


TransportMulticastQosPolicy (Specifies the multicast address on
which a com.rti.dds.subscription.DataReader (p. 487)
wants to receive its data.
It can also specify a port
number as well as a subset of the available (at the
com.rti.dds.domain.DomainParticipant (p. 654) level)
transports with which to receive the multicast data ) . . . . .
TransportMulticastQosPolicyKind (Transport Multicast Policy
Kind ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TransportMulticastSettings t (Type representing a list of multicast locators ) . . . . . . . . . . . . . . . . . . . . . . . . . . .
TransportMulticastSettingsSeq (Declares IDL sequence<
com.rti.dds.infrastructure.TransportMulticastSettings
t (p. 1594) > ) . . . . . . . . . . . . . . . . . . . . . . . . . .
TransportPriorityQosPolicy (This QoS policy allows the application to take advantage of transports that are capable of sending messages with different priorities ) . . . . . . . . . . . . .
TransportSelectionQosPolicy (Specifies the physical transports a com.rti.dds.publication.DataWriter (p. 557) or
com.rti.dds.subscription.DataReader (p. 487) may use
to send or receive data ) . . . . . . . . . . . . . . . . . . . . .
TransportSupport (<<interface>> ( p. 279) The utility class used
to configure RTI Connext pluggable transports ) . . . . . . .
TransportUnicastQosPolicy (Specifies a subset of transports and a
port number that can be used by an Entity (p. 931) to receive
data ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TransportUnicastSettings t (Type representing a list of unicast locators ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TransportUnicastSettingsSeq
(Declares
IDL
sequence<
com.rti.dds.infrastructure.TransportUnicastSettings t (p. 1608) > ) . . . . . . . . . . . . . . . . . . . . . . . . . .
TypeCode (The definition of a particular data type, which you can
use to inspect the name, members, and other properties of
types generated with rtiddsgen (p. 298) or to modify types
you define yourself at runtime ) . . . . . . . . . . . . . . . . .
TypeCodeFactory (A singleton factory for creating, copying, and
deleting data type definitions dynamically ) . . . . . . . . . .
TypeConsistencyEnforcementQosPolicy (Defines the rules for
determining whether the type used to publish a given topic
(p. 359) is consistent with that used to subscribe to it ) . . .
TypeConsistencyKind (Kinds of type consistency ) . . . . . . . . .
TypeSupport (<<interface>> ( p. 279) An abstract marker interface that has to be specialized for each concrete user data type
that will be used by the application ) . . . . . . . . . . . . . .
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

37

1590
1593
1594
1597

1598

1600
1602

1605
1608

1610

1611
1647

1661
1663

1665

38

Class Index
TypeSupportQosPolicy (Allows you to attach application-specific
values to a DataWriter or DataReader that are passed to the
serialization or deserialization routine of the associated data
type ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1666
UDPv4Transport (Built-in transport (p. 376) plug-in using
UDP/IPv4 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1668
UDPv4Transport.Property t (Configurable IPv4/UDP TransportPlugin properties ) . . . . . . . . . . . . . . . . . . . . . . . . 1672
UDPv6Transport (Built-in transport (p. 376) plug-in using
UDP/IPv6 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1680
UDPv6Transport.Property t (Configurable IPv6/UDP TransportPlugin properties ) . . . . . . . . . . . . . . . . . . . . . . . . 1684
Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691
UnionMember (A description of a member of a union ) . . . . . . . 1692
UserDataQosPolicy (Attaches a buffer of opaque data that is distributed by means of Built-in Topics (p. 157) during discovery ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694
UserException (User exception ) . . . . . . . . . . . . . . . . . . . . 1696
ValueMember (A description of a member of a value type ) . . . . . 1697
VendorId t (<<eXtension>> ( p. 278) Type used to represent the
vendor of the service implementing the RTPS protocol ) . . . 1699
Version (<<interface>> ( p. 279) The version of an RTI Connext
distribution ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701
ViewStateKind (Indicates whether or not an instance is new ) . . . 1703
VM ABSTRACT (Constant used to indicate that a value type has
the abstract modifier ) . . . . . . . . . . . . . . . . . . . . . 1705
VM CUSTOM (Constant used to indicate that a value type has the
custom modifier ) . . . . . . . . . . . . . . . . . . . . . . . . . 1706
VM NONE (Constant used to indicate that a value type has no modifiers ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1707
VM TRUNCATABLE (Constant used to indicate that a value type
has the truncatable modifier ) . . . . . . . . . . . . . . . . . 1708
WaitSet
(<<interface>> ( p. 279)
Allows
an
application to wait until one or more of the attached
com.rti.dds.infrastructure.Condition (p. 464) objects
has a trigger value of com.rti.dds.infrastructure.true or
else until the timeout expires ) . . . . . . . . . . . . . . . . . 1709
WaitSetProperty t (<<eXtension>> ( p. 278) Specifies the
com.rti.dds.infrastructure.WaitSet (p. 1709) behavior for
multiple trigger events ) . . . . . . . . . . . . . . . . . . . . . 1719
WcharSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.infrastructure.char > ) . . . . . . . . . . . . . . 1721
WireProtocolQosPolicy (Specifies the wire-protocol-related attributes for the com.rti.dds.domain.DomainParticipant
(p. 654) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

5.1 Class List

39

WireProtocolQosPolicyAutoKind (Kind of auto mechanism used


to calculate the GUID prefix ) . . . . . . . . . . . . . . . . . . 1732
WriteParams t
(<<eXtension>>
( p. 278)
Input
parameters
for
writing
with
com.rti.ndds.example.FooDataWriter.write w params (p. 1026), com.rti.ndds.example.FooDataWriter.dispose w params (p. 1031), com.rti.ndds.example.FooDataWriter.register (p. 1016),
instance w params
com.rti.ndds.example.FooDataWriter.unregister instance w params (p. 1021) ) . . . . . . . . . . . . . . . . 1733
WriterContentFilter . . . . . . . . . . . . . . . . . . . . . . . . . . 1737
WriterDataLifecycleQosPolicy
(Controls
how
a
com.rti.dds.publication.DataWriter (p. 557) handles
the lifecycle of the instances (keys) that it is registered to
manage ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1738
WstringSeq (Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence
< com.rti.dds.infrastructure.char > ) . . . . . . . . . . . . . 1741

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

40

Class Index

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 6

Module Documentation
6.1

ASYNCHRONOUS PUBLISHER

<<eXtension>> ( p. 278) Specifies the asynchronous publishing settings of


the com.rti.dds.publication.Publisher (p. 1262) instances.

Classes
class AsynchronousPublisherQosPolicy
Configures the mechanism that sends user data in an external middleware
thread.

Variables
static final QosPolicyId t ASYNCHRONOUSPUBLISHER QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
( p. 397)

6.1.1

for

Detailed Description

<<eXtension>> ( p. 278) Specifies the asynchronous publishing settings of


the com.rti.dds.publication.Publisher (p. 1262) instances.

42

Module Documentation

6.1.2

Variable Documentation

6.1.2.1

final QosPolicyId t ASYNCHRONOUSPUBLISHER QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.AsynchronousPublisherQosP


(p. 397)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.2 AVAILABILITY

6.2

43

AVAILABILITY

<<eXtension>> ( p. 278) Configures the availability of data.

Classes
class AvailabilityQosPolicy
Configures the availability of data.

class EndpointGroup t
Specifies a group of endpoints that can be collectively identified by a name
and satisfied by a quorum.

class EndpointGroupSeq
A sequence of com.rti.dds.infrastructure.EndpointGroup t ( p. 928).

Variables
static final QosPolicyId t AVAILABILITY QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.AvailabilityQosPolicy ( p. 402)

6.2.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures the availability of data.

6.2.2

Variable Documentation

6.2.2.1

final QosPolicyId t AVAILABILITY QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.AvailabilityQosPolicy


(p. 402)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

44

Module Documentation

6.3

BATCH

<<eXtension>> ( p. 278) Batch QoS policy used to enable batching in


com.rti.dds.publication.DataWriter (p. 557) instances.

Classes
class BatchQosPolicy
Used to configure batching of multiple samples into a single network packet
in order to increase throughput for small samples.

Variables
static final QosPolicyId t BATCH QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.BatchQosPolicy ( p. 412)

6.3.1

for

Detailed Description

<<eXtension>> ( p. 278) Batch QoS policy used to enable batching in


com.rti.dds.publication.DataWriter (p. 557) instances.

6.3.2

Variable Documentation

6.3.2.1

final QosPolicyId t BATCH QOS POLICY ID [static,


inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.BatchQosPolicy


(p. 412)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.4 Conditions and WaitSets

6.4

45

Conditions and WaitSets

com.rti.dds.infrastructure.Condition
(p. 464)
com.rti.dds.infrastructure.WaitSet (p. 1709) and related items.

and

Classes
interface Condition
<<interface>> (p. 279) Root class for all the conditions that may be attached to a com.rti.dds.infrastructure.WaitSet ( p. 1709).

class ConditionSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.Condition ( p. 464) >.

class GuardCondition
<<interface>> (p. 279) A specific com.rti.dds.infrastructure.Condition
( p. 464) whose trigger value is completely under the control of the application.

interface StatusCondition
<<interface>> (p. 279) A specific com.rti.dds.infrastructure.Condition
( p. 464) that is associated with each com.rti.dds.infrastructure.Entity
( p. 931).

class WaitSet
<<interface>> (p. 279) Allows an application to wait until one or more
of the attached com.rti.dds.infrastructure.Condition ( p. 464) objects has
a trigger value of com.rti.dds.infrastructure.true or else until the timeout
expires.

class WaitSetProperty t
<<eXtension>>
(p. 278)
Specifies
the
com.rti.dds.infrastructure.WaitSet ( p. 1709) behavior for multiple
trigger events.

6.4.1

Detailed Description

com.rti.dds.infrastructure.Condition
(p. 464)
com.rti.dds.infrastructure.WaitSet (p. 1709) and related items.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

and

46

Module Documentation

6.5

DATABASE

<<eXtension>> ( p. 278) Various threads and resource limits settings used


by RTI Connext to control its internal database.

Classes
class DatabaseQosPolicy
Various threads and resource limits settings used by RTI Connext to control
its internal database.

Variables
static final QosPolicyId t DATABASE QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.DatabaseQosPolicy ( p. 482)

6.5.1

for

Detailed Description

<<eXtension>> ( p. 278) Various threads and resource limits settings used


by RTI Connext to control its internal database.

6.5.2

Variable Documentation

6.5.2.1

final QosPolicyId t DATABASE QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DatabaseQosPolicy


(p. 482)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.6 DATA READER PROTOCOL

6.6

47

DATA READER PROTOCOL

<<eXtension>> ( p. 278) Specifies the DataReader-specific protocol QoS.

Classes
class DataReaderProtocolQosPolicy
Along
with
com.rti.dds.infrastructure.WireProtocolQosPolicy
( p. 1723) and com.rti.dds.infrastructure.DataWriterProtocolQosPolicy
( p. 592), this QoS policy configures the DDS on-the-network protocol
(RTPS).

Variables
static final QosPolicyId t
POLICY ID

DATAREADERPROTOCOL QOS -

<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.DataReaderProtocolQosPolicy ( p. 521)

6.6.1

Detailed Description

<<eXtension>> ( p. 278) Specifies the DataReader-specific protocol QoS.

6.6.2

Variable Documentation

6.6.2.1

final QosPolicyId t DATAREADERPROTOCOL QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DataReaderProtocolQosPolicy


(p. 521)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

48

Module Documentation

6.7

DATA READER RESOURCE LIMITS

<<eXtension>> ( p. 278) Various settings that configure how DataReaders


allocate and use physical memory for internal resources.

Classes
class DataReaderResourceLimitsQosPolicy
Various
settings
that
com.rti.dds.subscription.DataReader
physical memory for internal resources.

configure
how
( p. 487) allocates and

a
uses

Variables
static final int AUTO MAX TOTAL INSTANCES
<<eXtension>>
(p. 278)
This
value
is
used
to
make
com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy.max total instances ( p. 551) equal to com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max instances ( p. 1352).

static final QosPolicyId t DATAREADERRESOURCELIMITS QOS POLICY ID


<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy
( p. 542)

6.7.1

Detailed Description

<<eXtension>> ( p. 278) Various settings that configure how DataReaders


allocate and use physical memory for internal resources.

6.7.2

Variable Documentation

6.7.2.1

final int AUTO MAX TOTAL INSTANCES [static,


inherited]

<<eXtension>>
( p. 278)
This
value
is
used
to
make
com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy.max total instances (p. 551) equal to com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max instances (p. 1352).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.7 DATA READER RESOURCE LIMITS


6.7.2.2

49

final QosPolicyId t DATAREADERRESOURCELIMITS QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy


(p. 542)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

50

Module Documentation

6.8

DATA WRITER PROTOCOL

<<eXtension>> ( p. 278) Along with com.rti.dds.infrastructure.WireProtocolQosPolicy


(p. 1723) and com.rti.dds.infrastructure.DataReaderProtocolQosPolicy
(p. 521), this QoS policy configures the DDS on-the-network protocol (RTPS).

Classes
class DataWriterProtocolQosPolicy
Protocol that applies only to com.rti.dds.publication.DataWriter ( p. 557)
instances.

Variables
static final QosPolicyId t
POLICY ID

DATAWRITERPROTOCOL QOS -

<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.DataWriterProtocolQosPolicy ( p. 592)

6.8.1

Detailed Description

<<eXtension>> ( p. 278) Along with com.rti.dds.infrastructure.WireProtocolQosPolicy


(p. 1723) and com.rti.dds.infrastructure.DataReaderProtocolQosPolicy
(p. 521), this QoS policy configures the DDS on-the-network protocol (RTPS).

6.8.2

Variable Documentation

6.8.2.1

final QosPolicyId t DATAWRITERPROTOCOL QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DataWriterProtocolQosPolic


(p. 592)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.9 DATA WRITER RESOURCE LIMITS

6.9

51

DATA WRITER RESOURCE LIMITS

<<eXtension>> ( p. 278) Various settings that configure how a


com.rti.dds.publication.DataWriter (p. 557) allocates and uses physical memory for internal resources.

Classes
class DataWriterResourceLimitsInstanceReplacementKind
Sets the kinds of instances that can be replaced when instance resource limits
are reached.

class DataWriterResourceLimitsQosPolicy
Various
settings
that
configure
how
a
com.rti.dds.publication.DataWriter ( p. 557) allocates and uses physical
memory for internal resources.

Variables
static final QosPolicyId t DATA WRITER RESOURCE LIMITS QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.DataWriterResourceLimitsQosPolicy
( p. 621)

6.9.1

Detailed Description

<<eXtension>> ( p. 278) Various settings that configure how a


com.rti.dds.publication.DataWriter (p. 557) allocates and uses physical memory for internal resources.

6.9.2

Variable Documentation

6.9.2.1

final QosPolicyId t DATA WRITER RESOURCE LIMITS QOS POLICY ID [static,


inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DataWriterResourceLimitsQosPolicy


(p. 621)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

52

Module Documentation

6.10

DEADLINE

Expresses the maximum duration (deadline) within which an instance is expected to be updated.

Classes
class DeadlineQosPolicy
Expresses the maximum duration (deadline) within which an instance is expected to be updated.

Variables
static final QosPolicyId t DEADLINE QOS POLICY ID
Identifier for com.rti.dds.infrastructure.DeadlineQosPolicy ( p. 628).

6.10.1

Detailed Description

Expresses the maximum duration (deadline) within which an instance is expected to be updated.

6.10.2

Variable Documentation

6.10.2.1

final QosPolicyId t DEADLINE QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.DeadlineQosPolicy (p. 628).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.11 DESTINATION ORDER

6.11

53

DESTINATION ORDER

Controls the criteria used to determine the logical order among changes made
by com.rti.dds.publication.Publisher (p. 1262) entities to the same instance
of data (i.e., matching com.rti.dds.topic.Topic (p. 1545) and key).

Classes
class DestinationOrderQosPolicy
Controls how the middleware will deal with data sent by multiple
com.rti.dds.publication.DataWriter ( p. 557) entities for the same instance of data (i.e., same com.rti.dds.topic.Topic ( p. 1545) and key).

class DestinationOrderQosPolicyKind
Kinds of destination order.

Variables
static final QosPolicyId t DESTINATIONORDER QOS POLICY ID
Identifier for com.rti.dds.infrastructure.DestinationOrderQosPolicy
( p. 631).

6.11.1

Detailed Description

Controls the criteria used to determine the logical order among changes made
by com.rti.dds.publication.Publisher (p. 1262) entities to the same instance
of data (i.e., matching com.rti.dds.topic.Topic (p. 1545) and key).

6.11.2

Variable Documentation

6.11.2.1

final QosPolicyId t DESTINATIONORDER QOS POLICY ID [static, inherited]

Identifier
(p. 631).

for

com.rti.dds.infrastructure.DestinationOrderQosPolicy

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

54

Module Documentation

6.12

DISCOVERY CONFIG

<<eXtension>> ( p. 278) Specifies the discovery configuration QoS.

Classes
class BuiltinTopicReaderResourceLimits t
Built-in topic ( p. 359) readers resource limits.

class DiscoveryConfigBuiltinPluginKind
Built-in discovery plugins that can be used.

class DiscoveryConfigQosPolicy
Settings for discovery configuration.

class RemoteParticipantPurgeKind
Available behaviors for halting communication with remote participants (and
their contained entities) with which discovery communication has been lost.

Variables
static final int SDP
Built-in discovery plugins that can be used.

static final int MASK NONE = 0


A bit-mask (list) of built-in discovery plugins.

static final int MASK ALL = 0xefff


A bit-mask (list) of built-in discovery plugins.

static final QosPolicyId t DISCOVERYCONFIG QOS POLICY ID


<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.DiscoveryConfigQosPolicy ( p. 639)

6.12.1

for

Detailed Description

<<eXtension>> ( p. 278) Specifies the discovery configuration QoS.


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.12 DISCOVERY CONFIG

6.12.2

Variable Documentation

6.12.2.1

final int SDP [static, inherited]

55

Built-in discovery plugins that can be used.


See also:
com.rti.dds.infrastructure.DiscoveryConfigBuiltinPluginKindMask
(p. 55)

6.12.2.2

.SDP

final int MASK NONE = 0 [static, inherited]

A bit-mask (list) of built-in discovery plugins.


The bit-mask is an efficient and compact representation of a fixed-length list of
com.rti.dds.infrastructure.DiscoveryConfigBuiltinPluginKind (p. 638)
values.
QoS:
com.rti.dds.infrastructure.DiscoveryConfigQosPolicy (p. 639)
.MASK NONE

6.12.2.3

final int MASK ALL = 0xefff [static, inherited]

A bit-mask (list) of built-in discovery plugins.


The bit-mask is an efficient and compact representation of a fixed-length list of
com.rti.dds.infrastructure.DiscoveryConfigBuiltinPluginKind (p. 638)
values.
QoS:
com.rti.dds.infrastructure.DiscoveryConfigQosPolicy (p. 639)
.MASK ALL

6.12.2.4

final QosPolicyId t DISCOVERYCONFIG QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DiscoveryConfigQosPolicy


(p. 639)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

56

Module Documentation

6.13

DISCOVERY

<<eXtension>> ( p. 278) Specifies the attributes required to discover participants in the domain.

Modules
NDDS DISCOVERY PEERS
Environment variable or a file that specifies the default values of
com.rti.dds.infrastructure.DiscoveryQosPolicy.initial peers ( p. 651)
and
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses
( p. 650)
contained
in
the
com.rti.dds.domain.DomainParticipantQos.discovery
( p. 776)
qos policy.

Classes
class DiscoveryQosPolicy
Configures the mechanism used by the middleware to automatically discover
and connect with new remote applications.

Variables
static final QosPolicyId t DISCOVERY QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.DiscoveryQosPolicy ( p. 649)

6.13.1

for

Detailed Description

<<eXtension>> ( p. 278) Specifies the attributes required to discover participants in the domain.

6.13.2

Variable Documentation

6.13.2.1

final QosPolicyId t DISCOVERY QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DiscoveryQosPolicy


(p. 649)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.14 NDDS DISCOVERY PEERS

6.14

57

NDDS DISCOVERY PEERS

Environment variable or a file that specifies the default values of


(p. 651)
com.rti.dds.infrastructure.DiscoveryQosPolicy.initial peers
and
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses
(p. 650)
contained
in
the
com.rti.dds.domain.DomainParticipantQos.discovery
(p. 776)
qos
policy.

The default value of the com.rti.dds.domain.DomainParticipantQos


(p. 773) is obtained by calling com.rti.dds.domain.DomainParticipantFactory.get default participant qos() (p. 750).
NDDS DISCOVERY PEERS
specifies
the
default
value
of
the
com.rti.dds.infrastructure.DiscoveryQosPolicy.initial peers
(p. 651)
and
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses
(p. 650)
fields,
when
the
default
participant QoS policies have not been explictly set by the user (i.e.,
com.rti.dds.domain.DomainParticipantFactory.set default participant qos() (p. 751) has never been called or was called using
com.rti.dds.domain.DomainParticipantFactory.PARTICIPANT QOS DEFAULT (p. 149)).
does
not
contain
If
NDDS DISCOVERY PEERS
a
multicast
address,
then
the
string
sequence
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650) is cleared and the RTI discovery process will not listen for
discovery messages via multicast.
contains
one
or
more
If
NDDS DISCOVERY PEERS
multicast
addresses,
the
addresses
will
be
stored
in
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650), starting at element 0. They will be stored in the order in
which they appear in NDDS DISCOVERY PEERS.
Note: IPv4 multicast addresses must have a prefix. Therefore, when using the
UDPv6 transport: if there are any IPv4 multicast addresses in the peers list,
make sure they have udpv4:// in front of them (such as udpv4://239.255.0.1).
Note:
Currently,
RTI Connext will only listen for discovery
traffic
on
the
first
multicast
address
(element
0)
in
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650).
NDDS DISCOVERY PEERS provides a mechanism to dynamically switch the
discovery configuration of an RTI Connext application without recompilation.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

58

Module Documentation

The application programmer is free to not use the default values; instead use
values supplied by other means.
NDDS DISCOVERY PEERS can be specified either in an environment variable
as comma (,) separated "peer descriptors" (see Peer Descriptor Format
(p. 58)) or in a file. These formats are described below.

6.14.1

Peer Descriptor Format

A peer descriptor string specifies a range of participants at


a given locator.
Peer descriptor strings are used in the
(p. 651)
com.rti.dds.infrastructure.DiscoveryQosPolicy.initial peers
field and the com.rti.dds.domain.DomainParticipant.add peer() (p. 720)
operation.
The anatomy of a peer descriptor is illustrated below using a special StarFabric transport example.
A peer descriptor consists of:
optional Participant ID. If a simple integer is specified, it indicates the maximum
participant ID to be contacted by the RTI Connext discovery mechanism
at the given locator. If that integer is enclosed in square brackets (e.g.:
[2]) only that Participant ID will be used. You can also specify a range
in the form of [a,b]: in this case only the Participant IDs in that specific
range are contacted. If omitted, a default value of 4 is implied.
Locator. See Locator Format (p. 58).
These are separated by the @ character. The separator may be omitted if a
participant ID limit is not explictly specified.
Note that the participant ID limit only applies to unicast locators; it is ignored for multicast locators (and therefore should be omitted for multicast peer
descriptors).
6.14.1.1

Locator Format

A locator string specifies a transport and an address in string format. Locators


are used to form peer descriptors. A locator is equivalent to a peer descriptor
with the default maximum participant ID.
A locator consists of:
optional Transport name (alias or class). This identifies the set of transport plugins (Transport Aliases (p. 377)) that may be used to parse the address
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.14 NDDS DISCOVERY PEERS

59

portion of the locator. Note that a transport class name is an implicit alias
that is used to refer to all the transport plugin instances of that class.
optional Address. See Address Format (p. 59).
These are separated by the //: string. The separator is specified if and only
if a transport name is specified.
If a transport name is specified, the address may be omitted; in that case, all
the unicast addresses (across all transport plugin instances) associated with the
transport class are implied. Thus, a locator string may specify several addresses.
If an address is specified, the transport name and the separator string
may be omitted; in that case all the available transport plugins (for the
com.rti.dds.infrastructure.Entity (p. 931)) may be used to parse the address string.
6.14.1.2

Address Format

An address string specifies a transport-independent network address that qualifies a transport-dependent address string.
Addresses are used to form locators.
Addresses are also used in
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650), and com.rti.dds.infrastructure.TransportMulticastSettings t.receive address (p. 1595) fields. An address is equivalent to a locator in
which the transport name and separator are omitted.
An address consists of:
optional Network Address. An address in IPv4 or IPv6 string notation. If omitted, the network address of the transport is implied (Transport Network
Address (p. 381)).
optional Transport Address.
A string that is passed to the transport for processing.
The transport maps this string into
com.rti.ndds.transport.Transport.Property t.address bit count
(p. 1573) bits. If omitted the network address is used as the fully qualified
address.
These are separated by the # character. If a separator is specified, it must be
followed by a non-empty string which is passed to the transport plugin.
The
bits
resulting
from
the
transport
address
string
are
prepended with the network address.
The least significant
com.rti.ndds.transport.Transport.Property t.address bit count
(p. 1573) bits of the network address are ignored (Transport Network
Address (p. 381)).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

60

Module Documentation

If the separator is omitted and the string is not a valid IPv4 or IPv6 address,
it is treated as a transport address with an implicit network address (of the
transport plugin).

6.14.2

NDDS DISCOVERY PEERS Environment Variable Format

NDDS DISCOVERY PEERS can be specified via an environment variable of


the same name, consisting of a sequence of peer descriptors separated by the
comma (,) character.
Examples
Multicast (maximum participant ID is irrelevant)
239.255.0.1
Default maximum participant ID on localhost
localhost
Default maximum participant ID on host 192.168.1.1 (IPv4)
192.168.1.1
Default maximum participant ID on host FAA0::0 (IPv6)
FAA0::1
Default maximum participant ID on host FAA0::0#localhost (could be a UDPv4
transport plugin registered at network address of FAA0::0) (IPv6)
FAA0::0#localhost
Default maximum participant ID on host himalaya accessed using the udpv4
transport plugin(s) (IPv4)
udpv4://himalaya
Default maximum participant ID on localhost using the udpv4 transport plugin(s) registered at network address FAA0::0
udpv4://FAA0::0#localhost
Default maximum participant ID on all unicast addresses accessed via the
udpv4 (UDPv4) transport plugin(s)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.14 NDDS DISCOVERY PEERS

61

udpv4://
Default maximum participant ID on host 0/0/R (StarFabric)
0/0/R
#0/0/R
Default maximum participant ID on host 0/0/R (StarFabric) using the starfabric (StarFabric) transport plugin(s)
starfabric://0/0/R
starfabric://#0/0/R
Default maximum participant ID on host 0/0/R (StarFabric) using the starfabric (StarFabric) transport plugin(s) registered at network address FAA0::0
starfabric://FBB0::0#0/0/R
Default maximum participant ID on all unicast addresses accessed via the starfabric (StarFabric) transport plugin(s)
starfabric://
Default maximum participant ID on all unicast addresses accessed via the
shmem (shared memory) transport plugin(s)
shmem://
Default maximum participant ID on all unicast addresses accessed via the
shmem (shared memory) transport plugin(s) registered at network address
FCC0::0
shmem://FCC0::0
Default maximum participant ID on hosts himalaya and gangotri
himalaya,gangotri
Maximum participant ID of 1 on hosts himalaya and gangotri
1@himalaya,1@gangotri
Combinations of above
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

62

Module Documentation
239.255.0.1,localhost,192.168.1.1,0/0/R
FAA0::1,FAA0::0#localhost,FBB0::0#0/0/R
udpv4://himalaya,udpv4://FAA0::0#localhost,#0/0/R
starfabric://0/0/R,starfabric://FBB0::0#0/0/R,shmem://
starfabric://,shmem://FCC0::0,1@himalaya,1@gangotri

6.14.3

NDDS DISCOVERY PEERS File Format

NDDS DISCOVERY PEERS can be specified via a file of the same name in the
programs current working directory. A NDDS DISCOVERY PEERS file would
contain a sequence of peer descriptors separated by whitespace or the comma
(,) character. The file may also contain comments starting with a semicolon
(;) character till the end of the line.
Example:
;; NDDS_DISCOVERY_PEERS - Default Discovery Configuration File
;;
;;
;; NOTE:
;;
1. This file must be in the current working directory, i.e.
;;
in the folder from which the application is launched.
;;
;;
2. This file takes precedence over the environment variable NDDS_DISCOVERY_PEERS
;;
;; Multicast
239.255.0.1

; The default RTI Connext discovery multicast address

;; Unicast
localhost,192.168.1.1

; A comma can be used a separator

FAA0::1

; Whitespace can be used as a separator

FAA0::0#localhost

1@himalaya
1@gangotri

;; UDPv4
udpv4://himalaya
udpv4://FAA0::0#localhost

;; Shared Memory
shmem://
builtin.shmem://
shmem://FCC0::0

; Maximum participant ID of 1 on himalaya

; himalaya via udpv4 transport plugin(s)


; localhost via updv4 transport
; plugin registered at network address FAA0::0

; All shmem transport plugin(s)


; The builtin shmem transport plugin
; Shared memory transport plugin registered
;
at network address FCC0::0

;; StarFabric
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.14 NDDS DISCOVERY PEERS


0/0/R
starfabric://0/0/R
starfabric://FBB0::0#0/0/R
starfabric://

6.14.4

;
;
;
;
;
;

63

StarFabric node 0/0/R


0/0/R accessed via starfabric
transport plugin(s)
StarFabric transport plugin registered
at network address FBB0::0
All starfabric transport plugin(s)

NDDS DISCOVERY PEERS Precedence

If the current working directory from which the RTI Connext application is
launched contains a file called NDDS DISCOVERY PEERS, and an environment variable named NDDS DISCOVERY PEERS is also defined, the file takes
precedence; the environment variable is ignored.

6.14.5

NDDS DISCOVERY PEERS Default Value

If NDDS DISCOVERY PEERS is not specified (either as a file in the current


working directory, or as an environment variable), it implicitly defaults to the
following.
;; Multicast (only on platforms which allow UDPv4 multicast out of the box)
;;
;; This allows any RTI Connext applications anywhere on the local network to
;; discover each other over UDPv4.
builtin.udpv4://239.255.0.1

;;
;;
;;
;;
;;

; RTI Connexts default discovery multicast address

Unicast - UDPv4 (on all platforms)


This allows two RTI Connext applications using participant IDs up to the maximum
default participant ID on the local host and domain to discover each
other over UDP/IPv4.

builtin.udpv4://127.0.0.1

;;
;;
;;
;;
;;

Unicast - Shared Memory (only on platforms that support shared memory)


This allows two RTI Connext applications using participant IDs up to the maximum
default participant ID on the local host and domain to discover each
other over shared memory.

builtin.shmem://

6.14.6

Builtin Transport Class Names

The class names for the builtin transport plugins are:


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

64

Module Documentation
shmem - com.rti.ndds.transport.ShmemTransport (p. 1435)
udpv4 - com.rti.ndds.transport.UDPv4Transport (p. 1668)
udpv6 - com.rti.ndds.transport.UDPv6Transport (p. 1680)

These may be used as the transport names in the Locator Format (p. 58).

6.14.7

NDDS DISCOVERY PEERS


Communication

and

Local

Host

Suppose you want to communicate with other RTI Connext applications on the
same host and you are setting NDDS DISCOVERY PEERS explicitly (generally
in order to use unicast discovery with applications on other hosts).
If the local host platform does not support the shared memory transport, then
you can include the name of the local host in the NDDS DISCOVERY PEERS
list.
If the local host platform supports the shared memory transport, then you can
do one of the following:
Include shmem:// in the NDDS DISCOVERY PEERS list. This will
cause shared memory to be used for discovery and data traffic for applications on the same host.
or:
Include the name of the local host in the NDDS DISCOVERY PEERS list and disable the shared memory transport in the
com.rti.dds.infrastructure.TransportBuiltinQosPolicy (p. 1580) of
the com.rti.dds.domain.DomainParticipant (p. 654). This will cause
UDP loopback to be used for discovery and data traffic for applications
on the same host.
(To check if your platform supports shared memory, see the Platform Notes.)
See also:
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650)
com.rti.dds.infrastructure.DiscoveryQosPolicy.initial peers
(p. 651)
com.rti.dds.domain.DomainParticipant.add peer() (p. 720)
com.rti.dds.domain.DomainParticipantFactory.PARTICIPANT QOS DEFAULT (p. 149)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.14 NDDS DISCOVERY PEERS


com.rti.dds.domain.DomainParticipantFactory.get default participant qos() (p. 750)
Transport Aliases (p. 377)
Transport Network Address (p. 381)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

65

66

Module Documentation

6.15

DOMAIN PARTICIPANT RESOURCE LIMITS

<<eXtension>> ( p. 278) Various settings that configure how a


com.rti.dds.domain.DomainParticipant (p. 654) allocates and uses
physical memory for internal resources, including the maximum sizes of various
properties.

Classes
class AllocationSettings t
Resource allocation settings.

class DomainParticipantResourceLimitsQosPolicy
Various
settings
that
configure
how
a
com.rti.dds.domain.DomainParticipant ( p. 654) allocates and uses
physical memory for internal resources, including the maximum sizes of
various properties.

Variables
static final QosPolicyId t DOMAINPARTICIPANTRESOURCELIMITS QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.DomainParticipantResourceLimitsQosPolicy
( p. 778)

6.15.1

Detailed Description

<<eXtension>> ( p. 278) Various settings that configure how a


com.rti.dds.domain.DomainParticipant (p. 654) allocates and uses
physical memory for internal resources, including the maximum sizes of various
properties.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.15 DOMAIN PARTICIPANT RESOURCE LIMITS

6.15.2

Variable Documentation

6.15.2.1

final QosPolicyId t DOMAINPARTICIPANTRESOURCELIMITS QOS POLICY ID [static,


inherited]

67

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.DomainParticipantResourceLimitsQosP


(p. 778)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

68

Module Documentation

6.16

DURABILITY

This QoS policy specifies whether or not RTI Connext will


store and deliver previously published data samples to new
com.rti.dds.subscription.DataReader (p. 487) entities that join the
network later.

Classes
class DurabilityQosPolicy
This QoS policy specifies whether or not RTI Connext will
store and deliver previously published data samples to new
com.rti.dds.subscription.DataReader ( p. 487) entities that join the
network later.

class DurabilityQosPolicyKind
Kinds of durability.

Variables
static final QosPolicyId t DURABILITY QOS POLICY ID
Identifier for com.rti.dds.infrastructure.DurabilityQosPolicy ( p. 802).

6.16.1

Detailed Description

This QoS policy specifies whether or not RTI Connext will


store and deliver previously published data samples to new
com.rti.dds.subscription.DataReader (p. 487) entities that join the
network later.

6.16.2

Variable Documentation

6.16.2.1

final QosPolicyId t DURABILITY QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.DurabilityQosPolicy (p. 802).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.17 DURABILITY SERVICE

6.17

69

DURABILITY SERVICE

Various
settings
to
configure
the
external
RTI
Persistence Service used by RTI Connext for DataWriters with a
com.rti.dds.infrastructure.DurabilityQosPolicy (p. 802) setting of
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSISTENT DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TRANSIENT
DURABILITY QOS.

Classes
class DurabilityServiceQosPolicy

Various
settings
to
configure
the
external
RTI
Persistence Service used by RTI Connext for DataWriters with a
com.rti.dds.infrastructure.DurabilityQosPolicy ( p. 802) setting of
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSISTENT DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TRANSIENT DURABILITY QOS.

Variables
static
final
POLICY ID

QosPolicyId t

DURABILITY SERVICE QOS -

Identifier for com.rti.dds.infrastructure.DurabilityServiceQosPolicy


( p. 810).

6.17.1

Detailed Description

Various
settings
to
configure
the
external
RTI
Persistence Service used by RTI Connext for DataWriters with a
com.rti.dds.infrastructure.DurabilityQosPolicy (p. 802) setting of
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSISTENT DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TRANSIENT
DURABILITY QOS.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

70

Module Documentation

6.17.2

Variable Documentation

6.17.2.1

final QosPolicyId t DURABILITY SERVICE QOS POLICY ID [static, inherited]

Identifier
(p. 810).

for

com.rti.dds.infrastructure.DurabilityServiceQosPolicy

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.18 Time Support

6.18

Time Support

Time and duration types and defines.

Classes
class Duration t
Type for duration representation.

class Time t
Type for time representation.

6.18.1

Detailed Description

Time and duration types and defines.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

71

72

Module Documentation

6.19

Entity Support

com.rti.dds.infrastructure.Entity (p. 931), com.rti.dds.infrastructure.Listener


(p. 1130) and related items.

Classes
interface DomainEntity
<<interface>> (p. 279) Abstract base class for all DDS entities except for
the com.rti.dds.domain.DomainParticipant ( p. 654).

interface Entity
<<interface>> (p. 279) Abstract base class for all the DDS objects that
support QoS policies, a listener, and a status condition.

interface Listener
<<interface>> (p. 279) Abstract base class for all Listener ( p. 1130) interfaces.

6.19.1

Detailed Description

com.rti.dds.infrastructure.Entity (p. 931), com.rti.dds.infrastructure.Listener


(p. 1130) and related items.
subtypes
are
crecom.rti.dds.infrastructure.Entity
(p. 931)
ated and destroyed by factory objects.
With the exception of
com.rti.dds.domain.DomainParticipant
(p. 654),
whose
factory
is
com.rti.dds.domain.DomainParticipantFactory
(p. 742),
all
com.rti.dds.infrastructure.Entity (p. 931) factory objects are themselves
com.rti.dds.infrastructure.Entity (p. 931) subtypes as well.
Important: all com.rti.dds.infrastructure.Entity (p. 931) delete operations
are inherently thread-unsafe. The user must take extreme care that a given
com.rti.dds.infrastructure.Entity (p. 931) is not destroyed in one thread
while being used concurrently (including being deleted concurrently) in another
thread. An operations effect in the presence of the concurrent deletion of the
operations target com.rti.dds.infrastructure.Entity (p. 931) is undefined.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.20 ENTITY FACTORY

6.20

73

ENTITY FACTORY

A QoS policy for all com.rti.dds.infrastructure.Entity (p. 931) types that


can act as factories for one or more other com.rti.dds.infrastructure.Entity
(p. 931) types.

Classes
class EntityFactoryQosPolicy
A
QoS
policy
for
all
com.rti.dds.infrastructure.Entity
( p. 931) types that can act as factories for one or more other
com.rti.dds.infrastructure.Entity ( p. 931) types.

Variables
static final QosPolicyId t ENTITYFACTORY QOS POLICY ID
Identifier
( p. 938).

6.20.1

for

com.rti.dds.infrastructure.EntityFactoryQosPolicy

Detailed Description

A QoS policy for all com.rti.dds.infrastructure.Entity (p. 931) types that


can act as factories for one or more other com.rti.dds.infrastructure.Entity
(p. 931) types.

6.20.2

Variable Documentation

6.20.2.1

final QosPolicyId t ENTITYFACTORY QOS POLICY ID


[static, inherited]

Identifier
(p. 938).

for

com.rti.dds.infrastructure.EntityFactoryQosPolicy

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

74

Module Documentation

6.21

ENTITY NAME

Assigns
a
name
to
a
<<eXtension>>
( p. 278)
com.rti.dds.domain.DomainParticipant (p. 654).
This name will be
visible during the discovery process and in RTI tools to help you visualize and
debug your system.

Classes
class EntityNameQosPolicy
Assigns
a
name
and
a
role
name
to
a
com.rti.dds.domain.DomainParticipant
( p. 654),
com.rti.dds.publication.DataWriter
( p. 557)
or
com.rti.dds.subscription.DataReader ( p. 487).
These names will
be visible during the discovery process and in RTI tools to help you visualize
and debug your system.

6.21.1

Detailed Description

<<eXtension>>
( p. 278)
Assigns
a
name
to
a
com.rti.dds.domain.DomainParticipant (p. 654).
This name will be
visible during the discovery process and in RTI tools to help you visualize and
debug your system.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.22 EVENT

6.22

75

EVENT

<<eXtension>> ( p. 278) Configures the internal thread in a DomainParticipant that handles timed events.

Classes
class EventQosPolicy
Settings for event.

Variables
static final QosPolicyId t EVENT QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.EventQosPolicy ( p. 949)

6.22.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures the internal thread in a DomainParticipant that handles timed events.

6.22.2

Variable Documentation

6.22.2.1

final QosPolicyId t EVENT QOS POLICY ID [static,


inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.EventQosPolicy


(p. 949)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

76

Module Documentation

6.23

EXCLUSIVE AREA

<<eXtension>> ( p. 278) Configures multi-thread concurrency and deadlock


prevention capabilities.

Classes
class ExclusiveAreaQosPolicy
Configures multi-thread concurrency and deadlock prevention capabilities.

Variables
static final QosPolicyId t EXCLUSIVEAREA QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.ExclusiveAreaQosPolicy ( p. 952)

6.23.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures multi-thread concurrency and deadlock


prevention capabilities.

6.23.2

Variable Documentation

6.23.2.1

final QosPolicyId t EXCLUSIVEAREA QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.ExclusiveAreaQosPolicy


(p. 952)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.24 GROUP DATA

6.24

77

GROUP DATA

Attaches a buffer of opaque data that is distributed by means of Built-in


Topics (p. 157) during discovery.

Classes
class GroupDataQosPolicy
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

Variables
static final QosPolicyId t GROUPDATA QOS POLICY ID
Identifier
( p. 1039).

6.24.1

for

com.rti.dds.infrastructure.GroupDataQosPolicy

Detailed Description

Attaches a buffer of opaque data that is distributed by means of Built-in


Topics (p. 157) during discovery.

6.24.2

Variable Documentation

6.24.2.1

final QosPolicyId t GROUPDATA QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.GroupDataQosPolicy (p. 1039).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

78

Module Documentation

6.25

GUID Support

<<eXtension>> ( p. 278) GUID type and defines.

Classes
class GUID t
Type for GUID (Global Unique Identifier) representation.

6.25.1

Detailed Description

<<eXtension>> ( p. 278) GUID type and defines.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.26 HISTORY

6.26

79

HISTORY

Specifies the behavior of RTI Connext in the case where the value of an instance
changes (one or more times) before it can be successfully communicated to one
or more existing subscribers.

Classes
class HistoryQosPolicy
Specifies the behavior of RTI Connext in the case where the value of a sample
changes (one or more times) before it can be successfully communicated to
one or more existing subscribers.

class HistoryQosPolicyKind
Kinds of history.

class RefilterQosPolicyKind
<<eXtension>> (p. 278) Kinds of Refiltering

Variables
static final QosPolicyId t HISTORY QOS POLICY ID
Identifier for com.rti.dds.infrastructure.HistoryQosPolicy ( p. 1046).

6.26.1

Detailed Description

Specifies the behavior of RTI Connext in the case where the value of an instance
changes (one or more times) before it can be successfully communicated to one
or more existing subscribers.

6.26.2

Variable Documentation

6.26.2.1

final QosPolicyId t HISTORY QOS POLICY ID [static,


inherited]

Identifier for com.rti.dds.infrastructure.HistoryQosPolicy (p. 1046).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

80

Module Documentation

6.27

LATENCY BUDGET

Provides a hint as to the maximum acceptable delay from the time the data is
written to the time it is received by the subscribing applications.

Classes
class LatencyBudgetQosPolicy
Provides a hint as to the maximum acceptable delay from the time the data
is written to the time it is received by the subscribing applications.

Variables
static final QosPolicyId t LATENCYBUDGET QOS POLICY ID
Identifier
( p. 1124).

6.27.1

for

com.rti.dds.infrastructure.LatencyBudgetQosPolicy

Detailed Description

Provides a hint as to the maximum acceptable delay from the time the data is
written to the time it is received by the subscribing applications.

6.27.2

Variable Documentation

6.27.2.1

final QosPolicyId t LATENCYBUDGET QOS POLICY ID [static, inherited]

Identifier
(p. 1124).

for

com.rti.dds.infrastructure.LatencyBudgetQosPolicy

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.28 LIFESPAN

6.28

81

LIFESPAN

Specifies
how
long
the
data
written
by
com.rti.dds.publication.DataWriter (p. 557) is considered valid.

the

Classes
class LifespanQosPolicy
Specifies
how
long
the
data
written
by
com.rti.dds.publication.DataWriter ( p. 557) is considered valid.

the

Variables
static final QosPolicyId t LIFESPAN QOS POLICY ID
Identifier for com.rti.dds.infrastructure.LifespanQosPolicy ( p. 1128).

6.28.1

Detailed Description

Specifies
how
long
the
data
written
by
com.rti.dds.publication.DataWriter (p. 557) is considered valid.

6.28.2

Variable Documentation

6.28.2.1

final QosPolicyId t LIFESPAN QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.LifespanQosPolicy (p. 1128).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

the

82

Module Documentation

6.29

LIVELINESS

Specifies
and
configures
the
mechanism
that
allows
com.rti.dds.subscription.DataReader (p. 487) entities to detect when
com.rti.dds.publication.DataWriter (p. 557) entities become disconnected
or dead..

Classes
class LivelinessQosPolicy
Specifies
and
configures
the
mechanism
that
allows
com.rti.dds.subscription.DataReader ( p. 487) entities to detect
when com.rti.dds.publication.DataWriter ( p. 557) entities become
disconnected or dead..

class LivelinessQosPolicyKind
Kinds of liveliness.

Variables
static final QosPolicyId t LIVELINESS QOS POLICY ID
Identifier for com.rti.dds.infrastructure.LivelinessQosPolicy ( p. 1140).

6.29.1

Detailed Description

Specifies
and
configures
the
mechanism
that
allows
com.rti.dds.subscription.DataReader (p. 487) entities to detect when
com.rti.dds.publication.DataWriter (p. 557) entities become disconnected
or dead..

6.29.2

Variable Documentation

6.29.2.1

final QosPolicyId t LIVELINESS QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.LivelinessQosPolicy (p. 1140).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.30 LOCATORFILTER

6.30

83

LOCATORFILTER

<<eXtension>> ( p. 278) The QoS policy used to report the configuration of


a MultiChannel DataWriter as part of builtin.PublicationBuiltinTopicData.

Classes
class LocatorFilter t
Specifies the configuration of an individual channel within a MultiChannel
DataWriter.

class LocatorFilterQosPolicy
The QoS policy used to report the configuration of a MultiChannel
DataWriter as part of builtin.PublicationBuiltinTopicData.

class LocatorFilterSeq
Declares IDL sequence< com.rti.dds.infrastructure.LocatorFilter t ( p. 1154) >.

Variables
static final QosPolicyId t LOCATORFILTER QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.LocatorFilterQosPolicy ( p. 1157)

6.30.1

for

Detailed Description

<<eXtension>> ( p. 278) The QoS policy used to report the configuration of


a MultiChannel DataWriter as part of builtin.PublicationBuiltinTopicData.

6.30.2

Variable Documentation

6.30.2.1

final QosPolicyId t LOCATORFILTER QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.LocatorFilterQosPolicy


(p. 1157)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

84

Module Documentation

6.31

LOGGING

<<eXtension>> ( p. 278) Configures the RTI Connext logging facility.

Classes
class LoggingQosPolicy
Configures the RTI Connext logging facility.

Variables
static final QosPolicyId t LOGGING QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.LoggingQosPolicy ( p. 1169)

6.31.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures the RTI Connext logging facility.

6.31.2

Variable Documentation

6.31.2.1

final QosPolicyId t LOGGING QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.LoggingQosPolicy


(p. 1169)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.32 MULTICHANNEL

6.32

85

MULTICHANNEL

<<eXtension>> ( p. 278) Configures the ability of a DataWriter to send data


on different multicast groups (addresses) based on the value of the data.

Classes
class ChannelSettings t
Type used to configure the properties of a channel.

class ChannelSettingsSeq
Declares IDL sequence< com.rti.dds.infrastructure.ChannelSettings t
( p. 454) >.

class MultiChannelQosPolicy
Configures the ability of a DataWriter to send data on different multicast
groups (addresses) based on the value of the data.

Variables
static final QosPolicyId t MULTICHANNEL QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.MultiChannelQosPolicy ( p. 1187)

6.32.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures the ability of a DataWriter to send data


on different multicast groups (addresses) based on the value of the data.

6.32.2

Variable Documentation

6.32.2.1

final QosPolicyId t MULTICHANNEL QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.MultiChannelQosPolicy


(p. 1187)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

86

Module Documentation

6.33

Object Support

<<eXtension>> ( p. 278) Object related items.

Classes
interface Copyable
<<eXtension>> (p. 278) <<interface>> (p. 279) Interface for all the
user-defined data type classes that support copy.

class ObjectHolder
<<eXtension>> (p. 278) Holder of object instance

6.33.1

Detailed Description

<<eXtension>> ( p. 278) Object related items.


A user-defined type class implements this interface to indicate that the class can be copied.
This is typically used in
com.rti.ndds.example.FooDataReader.take next sample (p. 994) or
com.rti.ndds.example.FooDataReader.read next sample (p. 993).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.34 OWNERSHIP

6.34

87

OWNERSHIP

Specifies
whether
it
is
allowed
for
multiple
com.rti.dds.publication.DataWriter (p. 557) (s) to write the same
instance of the data and if so, how these modifications should be arbitrated.

Classes
class OwnershipQosPolicy
Specifies
whether
it
is
allowed
for
multiple
com.rti.dds.publication.DataWriter ( p. 557) (s) to write the same
instance of the data and if so, how these modifications should be arbitrated.

class OwnershipQosPolicyKind
Kinds of ownership.

Variables
static final QosPolicyId t OWNERSHIP QOS POLICY ID
Identifier
( p. 1199).

6.34.1

for

com.rti.dds.infrastructure.OwnershipQosPolicy

Detailed Description

Specifies
whether
it
is
allowed
for
multiple
com.rti.dds.publication.DataWriter (p. 557) (s) to write the same
instance of the data and if so, how these modifications should be arbitrated.

6.34.2

Variable Documentation

6.34.2.1

final QosPolicyId t OWNERSHIP QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.OwnershipQosPolicy (p. 1199).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

88

Module Documentation

6.35

OWNERSHIP STRENGTH

Specifies the value of the strength used to arbitrate among multiple


com.rti.dds.publication.DataWriter (p. 557) objects that attempt to modify the same instance of a data type (identified by com.rti.dds.topic.Topic
(p. 1545) + key).

Classes
class OwnershipStrengthQosPolicy
Specifies the value of the strength used to arbitrate among multiple com.rti.dds.publication.DataWriter ( p. 557) objects that attempt to modify the same instance of a data type (identified by
com.rti.dds.topic.Topic ( p. 1545) + key).

Variables
static final QosPolicyId t
POLICY ID

OWNERSHIPSTRENGTH QOS -

Identifier for com.rti.dds.infrastructure.OwnershipStrengthQosPolicy


( p. 1209).

6.35.1

Detailed Description

Specifies the value of the strength used to arbitrate among multiple


com.rti.dds.publication.DataWriter (p. 557) objects that attempt to modify the same instance of a data type (identified by com.rti.dds.topic.Topic
(p. 1545) + key).

6.35.2

Variable Documentation

6.35.2.1

final QosPolicyId t OWNERSHIPSTRENGTH QOS POLICY ID [static, inherited]

Identifier for com.rti.dds.infrastructure.OwnershipStrengthQosPolicy


(p. 1209).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.36 PARTITION

6.36

89

PARTITION

Set of strings that introduces a logical partition among the topics visible by a com.rti.dds.publication.Publisher (p. 1262) and a
com.rti.dds.subscription.Subscriber (p. 1476).

Classes
class PartitionQosPolicy
Set of strings that introduces a logical partition among the topics visible by a com.rti.dds.publication.Publisher ( p. 1262) and a
com.rti.dds.subscription.Subscriber ( p. 1476).

Variables
static final QosPolicyId t PARTITION QOS POLICY ID
Identifier for com.rti.dds.infrastructure.PartitionQosPolicy ( p. 1217).

6.36.1

Detailed Description

Set of strings that introduces a logical partition among the topics visible by a com.rti.dds.publication.Publisher (p. 1262) and a
com.rti.dds.subscription.Subscriber (p. 1476).

6.36.2

Variable Documentation

6.36.2.1

final QosPolicyId t PARTITION QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.PartitionQosPolicy (p. 1217).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

90

Module Documentation

6.37

PRESENTATION

Specifies how the samples representing changes to data instances are presented
to a subscribing application.

Classes
class PresentationQosPolicy
Specifies how the samples representing changes to data instances are presented to a subscribing application.

class PresentationQosPolicyAccessScopeKind
Kinds of presentation access scope.

Variables
static final QosPolicyId t PRESENTATION QOS POLICY ID
Identifier
( p. 1221).

6.37.1

for

com.rti.dds.infrastructure.PresentationQosPolicy

Detailed Description

Specifies how the samples representing changes to data instances are presented
to a subscribing application.

6.37.2

Variable Documentation

6.37.2.1

final QosPolicyId t PRESENTATION QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.PresentationQosPolicy (p. 1221).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.38 PROFILE

6.38

91

PROFILE

<<eXtension>> ( p. 278) Configures the way that XML documents containing QoS profiles are loaded by RTI Connext.

Classes
class ProfileQosPolicy
Configures the way that XML documents containing QoS profiles are loaded
by RTI Connext.

Variables
static final QosPolicyId t PROFILE QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.ProfileQosPolicy ( p. 1231)

6.38.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures the way that XML documents containing QoS profiles are loaded by RTI Connext.

6.38.2

Variable Documentation

6.38.2.1

final QosPolicyId t PROFILE QOS POLICY ID [static,


inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.ProfileQosPolicy


(p. 1231)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

92

Module Documentation

6.39

PROPERTY

<<eXtension>> ( p. 278) Stores name/value (string) pairs that can be used


to configure certain parameters of RTI Connext that are not exposed through
formal QoS policies. Can also be used to store and propagate application-specific
name/value pairs that can be retrieved by user code during discovery.

Classes
class Property t
Properties are name/value pairs objects.

class PropertyQosPolicy
Stores name/value(string) pairs that can be used to configure certain parameters of RTI Connext that are not exposed through formal QoS policies. Can
also be used to store and propagate application-specific name/value pairs that
can be retrieved by user code during discovery.

class PropertyQosPolicyHelper
Policy Helpers which facilitate management of the properties in the input
policy.

class PropertySeq
Declares IDL
( p. 1234) >.

6.39.1

sequence

<

com.rti.dds.infrastructure.Property t

Detailed Description

<<eXtension>> ( p. 278) Stores name/value (string) pairs that can be used


to configure certain parameters of RTI Connext that are not exposed through
formal QoS policies. Can also be used to store and propagate application-specific
name/value pairs that can be retrieved by user code during discovery.
RTI Connext will automatically set some system properties in the
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236) associated with a
com.rti.dds.domain.DomainParticipantQos (p. 773). See System Properties (p. 231) for additional details.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.40 PUBLISH MODE

6.40

93

PUBLISH MODE

<<eXtension>> ( p. 278) Specifies how RTI Connext sends application data


on the network. This QoS policy can be used to tell RTI Connext to use its
own thread to send data, instead of the user thread.

Classes
class PublishModeQosPolicy
Specifies how RTI Connext sends application data on the network. This QoS
policy can be used to tell RTI Connext to use its own thread to send data,
instead of the user thread.

class PublishModeQosPolicyKind
Kinds of publishing mode.

Variables
static final QosPolicyId t PUBLISHMODE QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.PublishModeQosPolicy ( p. 1295)

6.40.1

for

Detailed Description

<<eXtension>> ( p. 278) Specifies how RTI Connext sends application data


on the network. This QoS policy can be used to tell RTI Connext to use its
own thread to send data, instead of the user thread.

6.40.2

Variable Documentation

6.40.2.1

final QosPolicyId t PUBLISHMODE QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.PublishModeQosPolicy


(p. 1295)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

94

Module Documentation

6.41

QoS Policies

Quality of Service (QoS) policies.

Modules
ASYNCHRONOUS PUBLISHER
<<eXtension>> (p. 278) Specifies the asynchronous publishing settings of
the com.rti.dds.publication.Publisher ( p. 1262) instances.

AVAILABILITY
<<eXtension>> (p. 278) Configures the availability of data.

BATCH
<<eXtension>> (p. 278) Batch QoS policy used to enable batching in
com.rti.dds.publication.DataWriter ( p. 557) instances.

DATABASE
<<eXtension>> (p. 278) Various threads and resource limits settings used
by RTI Connext to control its internal database.

DATA READER PROTOCOL


<<eXtension>> (p. 278) Specifies the DataReader-specific protocol QoS.

DATA READER RESOURCE LIMITS


<<eXtension>> (p. 278) Various settings that configure how DataReaders
allocate and use physical memory for internal resources.

DATA WRITER PROTOCOL


<<eXtension>> (p. 278) Along with com.rti.dds.infrastructure.WireProtocolQosPolicy
( p. 1723) and com.rti.dds.infrastructure.DataReaderProtocolQosPolicy
( p. 521), this QoS policy configures the DDS on-the-network protocol
(RTPS).

DATA WRITER RESOURCE LIMITS


<<eXtension>> (p. 278) Various settings that configure how a
com.rti.dds.publication.DataWriter ( p. 557) allocates and uses physical
memory for internal resources.

DEADLINE
Expresses the maximum duration (deadline) within which an instance is expected to be updated.

DESTINATION ORDER
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.41 QoS Policies

95

Controls the criteria used to determine the logical order among changes made
by com.rti.dds.publication.Publisher ( p. 1262) entities to the same instance of data (i.e., matching com.rti.dds.topic.Topic ( p. 1545) and key).

DISCOVERY CONFIG
<<eXtension>> (p. 278) Specifies the discovery configuration QoS.

DISCOVERY
<<eXtension>> (p. 278) Specifies the attributes required to discover participants in the domain.

DOMAIN PARTICIPANT RESOURCE LIMITS


<<eXtension>> (p. 278) Various settings that configure how a
com.rti.dds.domain.DomainParticipant ( p. 654) allocates and uses
physical memory for internal resources, including the maximum sizes of
various properties.

DURABILITY
This QoS policy specifies whether or not RTI Connext will
store and deliver previously published data samples to new
com.rti.dds.subscription.DataReader ( p. 487) entities that join the
network later.

DURABILITY SERVICE

Various
settings
to
configure
the
external
RTI
Persistence Service used by RTI Connext for DataWriters with a
com.rti.dds.infrastructure.DurabilityQosPolicy ( p. 802) setting of
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSISTENT DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TRANSIENT DURABILITY QOS.

ENTITY FACTORY
A
QoS
policy
for
all
com.rti.dds.infrastructure.Entity
( p. 931) types that can act as factories for one or more other
com.rti.dds.infrastructure.Entity ( p. 931) types.

ENTITY NAME
<<eXtension>>
(p. 278)
Assigns
a
name
to
a
com.rti.dds.domain.DomainParticipant ( p. 654).
This name will
be visible during the discovery process and in RTI tools to help you visualize
and debug your system.

EVENT
<<eXtension>> (p. 278) Configures the internal thread in a DomainParticipant that handles timed events.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

96

Module Documentation
EXCLUSIVE AREA
<<eXtension>> (p. 278) Configures multi-thread concurrency and deadlock prevention capabilities.

GROUP DATA
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

HISTORY
Specifies the behavior of RTI Connext in the case where the value of an
instance changes (one or more times) before it can be successfully communicated to one or more existing subscribers.

LATENCY BUDGET
Provides a hint as to the maximum acceptable delay from the time the data
is written to the time it is received by the subscribing applications.

LIFESPAN
Specifies
how
long
the
data
written
by
com.rti.dds.publication.DataWriter ( p. 557) is considered valid.

the

LIVELINESS
Specifies
and
configures
the
mechanism
that
allows
com.rti.dds.subscription.DataReader ( p. 487) entities to detect
when com.rti.dds.publication.DataWriter ( p. 557) entities become
disconnected or dead..

LOCATORFILTER
<<eXtension>> (p. 278) The QoS policy used to report the configuration of
a MultiChannel DataWriter as part of builtin.PublicationBuiltinTopicData.

LOGGING
<<eXtension>> (p. 278) Configures the RTI Connext logging facility.

MULTICHANNEL
<<eXtension>> (p. 278) Configures the ability of a DataWriter to send
data on different multicast groups (addresses) based on the value of the data.

OWNERSHIP
Specifies
whether
it
is
allowed
for
multiple
com.rti.dds.publication.DataWriter ( p. 557) (s) to write the same
instance of the data and if so, how these modifications should be arbitrated.

OWNERSHIP STRENGTH
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.41 QoS Policies

97

Specifies the value of the strength used to arbitrate among multiple com.rti.dds.publication.DataWriter ( p. 557) objects that attempt to modify the same instance of a data type (identified by
com.rti.dds.topic.Topic ( p. 1545) + key).

PARTITION
Set of strings that introduces a logical partition among the topics visible by a com.rti.dds.publication.Publisher ( p. 1262) and a
com.rti.dds.subscription.Subscriber ( p. 1476).

PRESENTATION
Specifies how the samples representing changes to data instances are presented to a subscribing application.

PROFILE
<<eXtension>> (p. 278) Configures the way that XML documents containing QoS profiles are loaded by RTI Connext.

PROPERTY
<<eXtension>> (p. 278) Stores name/value (string) pairs that can be used
to configure certain parameters of RTI Connext that are not exposed through
formal QoS policies. Can also be used to store and propagate applicationspecific name/value pairs that can be retrieved by user code during discovery.

PUBLISH MODE
<<eXtension>> (p. 278) Specifies how RTI Connext sends application data
on the network. This QoS policy can be used to tell RTI Connext to use its
own thread to send data, instead of the user thread.

READER DATA LIFECYCLE


Controls how a DataReader manages the lifecycle of the data that it has
received.

RECEIVER POOL
<<eXtension>> (p. 278) Configures threads used by RTI Connext to receive and process data from transports (for example, UDP sockets).

RELIABILITY
Indicates the level of reliability offered/requested by RTI Connext.

RESOURCE LIMITS
Controls the amount of physical memory allocated for DDS entities, if dynamic allocations are allowed, and how they occur. Also controls memory
usage among different instance values for keyed topics.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

98

Module Documentation
SYSTEM RESOURCE LIMITS
<<eXtension>> (p. 278) Configures DomainParticipant-independent resources used by RTI Connext.

TIME BASED FILTER


Filter that allows a com.rti.dds.subscription.DataReader ( p. 487) to
specify that it is interested only in (potentially) a subset of the values of
the data.

TOPIC DATA
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

TRANSPORT BUILTIN
<<eXtension>> (p. 278) Specifies which built-in transports are used.

TRANSPORT MULTICAST MAPPING


<<eXtension>> (p. 278) Specifies a list of topic expressions and addresses
that can be used by an Entity with a specific topic name to receive data.

TRANSPORT MULTICAST
<<eXtension>> (p. 278) Specifies the multicast address on which a
com.rti.dds.subscription.DataReader ( p. 487) wants to receive its data.
It can also specify a port number, as well as a subset of the available (at the
com.rti.dds.domain.DomainParticipant ( p. 654) level) transports with
which to receive the multicast data.

TRANSPORT PRIORITY
This QoS policy allows the application to take advantage of transports that
are capable of sending messages with different priorities.

TRANSPORT SELECTION
<<eXtension>>
(p. 278)
Specifies
the
physical
transports
that
a
com.rti.dds.publication.DataWriter
( p. 557)
or
com.rti.dds.subscription.DataReader ( p. 487) may use to send or
receive data.

TRANSPORT UNICAST
<<eXtension>> (p. 278) Specifies a subset of transports and a port number
that can be used by an Entity to receive data.

TYPE CONSISTENCY ENFORCEMENT


Defines the rules for determining whether the type used to publish a given
topic is consistent with that used to subscribe to it.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.41 QoS Policies

99

TYPESUPPORT
<<eXtension>> (p. 278) Allows you to attach application-specific values
to a DataWriter or DataReader that are passed to the serialization or deserialization routine of the associated data type.

USER DATA
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

WIRE PROTOCOL
<<eXtension>> (p. 278) Specifies the wire protocol related attributes for
the com.rti.dds.domain.DomainParticipant ( p. 654).

WRITER DATA LIFECYCLE


Controls how a DataWriter handles the lifecycle of the instances (keys) that
it is registered to manage.

Classes
class Qos
An abstract base class for all QoS types.

class QosPolicy
The base class for all QoS policies.

class QosPolicyCount
Type to hold a counter for a com.rti.dds.infrastructure.QosPolicyId t
( p. 1305).

class QosPolicyCountSeq
Declares IDL sequence < com.rti.dds.infrastructure.QosPolicyCount
( p. 1302) >.

class QosPolicyId t
Type to identify QosPolicies.

6.41.1

Detailed Description

Quality of Service (QoS) policies.


Data Distribution Service (DDS) relies on the use of QoS. A QoS is a set of
characteristics that controls some aspect of the behavior of DDS. A QoS is
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

100

Module Documentation

comprised of individual QoS policies (objects conceptually deriving from an


abstract QosPolicy class).
The QosPolicy provides the basic mechanism for an application to specify quality
of service parameters. It has an attribute name that is used to uniquely identify
each QosPolicy.
QosPolicy implementation is comprised of a name, an ID, and a type. The type
of a QosPolicy value may be atomic, such as an integer or float, or compound
(a structure). Compound types are used whenever multiple parameters must
be set coherently to define a consistent value for a QosPolicy.
QoS (i.e., a list of QosPolicy objects) may be associated with all
com.rti.dds.infrastructure.Entity (p. 931) objects in the system such as
com.rti.dds.topic.Topic (p. 1545), com.rti.dds.publication.DataWriter
(p. 557),
com.rti.dds.subscription.DataReader
(p. 487),
com.rti.dds.publication.Publisher
(p. 1262),
com.rti.dds.subscription.Subscriber
(p. 1476),
and
com.rti.dds.domain.DomainParticipant (p. 654).

6.41.2

Specifying QoS on entities

QosPolicies
can
be
set
programmatically
when
an
com.rti.dds.infrastructure.Entity (p. 931) is created, or modified with
the com.rti.dds.infrastructure.Entity (p. 931)s set qos (abstract)
(p. 932) method.
QosPolicies can also be configured from XML resources (files, strings). With
this approach, you can change the QoS without recompiling the application.
For more information, see Configuring QoS Profiles with XML (p. 233).
To customize a com.rti.dds.infrastructure.Entity (p. 931)s QoS before creating the entity, the correct pattern is:
First, initialize a QoS object with the appropriate INITIALIZER constructor.
Call the relevant get <entity> default qos() method.
Modify the QoS values as desired.
Finally, create the entity.
Each QosPolicy is treated independently from the others. This approach has
the advantage of being very extensible. However, there may be cases where
several policies are in conflict. Consistency checking is performed each time the
policies are modified via the set qos (abstract) (p. 932) operation, or when
the com.rti.dds.infrastructure.Entity (p. 931) is created.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.41 QoS Policies

101

When a policy is changed after being set to a given value, it is not required that the new value be applied instantaneously; RTI Connext is allowed to apply it after a transition phase. In addition, some QosPolicy
have immutable semantics, meaning that they can only be specified either at
com.rti.dds.infrastructure.Entity (p. 931) creation time or else prior to calling the com.rti.dds.infrastructure.Entity.enable (p. 935) operation on the
entity.
Each com.rti.dds.infrastructure.Entity (p. 931) can be configured with
a list of QosPolicy objects.
However, not all QosPolicies are supFor inported by each com.rti.dds.infrastructure.Entity (p. 931).
stance, a com.rti.dds.domain.DomainParticipant (p. 654) supports a different set of QosPolicies than a com.rti.dds.topic.Topic (p. 1545) or a
com.rti.dds.publication.Publisher (p. 1262).

6.41.3

QoS compatibility

In several cases, for communications to occur properly (or efficiently), a QosPolicy on the publisher side must be compatible with a corresponding policy on
the subscriber side. For example, if a com.rti.dds.subscription.Subscriber
(p. 1476) requests to receive data reliably while the corresponding
com.rti.dds.publication.Publisher (p. 1262) defines a best-effort policy,
communication will not happen as requested.
To address this issue and maintain the desirable decoupling of publication
and subscription as much as possible, the QosPolicy specification follows the
subscriber-requested, publisher-offered pattern.
In this pattern, the subscriber side can specify a requested value for
a particular QosPolicy. The publisher side specifes an offered value
for that QosPolicy.
RTI Connext will then determine whether the
value requested by the subscriber side is compatible with what is offered by the publisher side.
If the two policies are compatible, then
communication will be established. If the two policies are not compatible, RTI Connext will not establish communications between the two
com.rti.dds.infrastructure.Entity (p. 931) objects and will record this fact
by means of the com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED on
the
publisher
end
and
INCOMPATIBLE QOS STATUS
com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED INCOMPATIBLE QOS STATUS on the subscriber end. The application
can detect this fact by means of a com.rti.dds.infrastructure.Listener
(p. 1130) or a com.rti.dds.infrastructure.Condition (p. 464).
The following properties are defined on a QosPolicy.
RxO (p. 101) property
The QosPolicy objects that need to be set in a compatible manner between
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

102

Module Documentation
the publisher and subscriber end are indicated by the setting of the
RxO (p. 101) property:
RxO (p. 101) = YES indicates that the policy can be set both at
the publishing and subscribing ends and the values must be set in a
compatible manner. In this case the compatible values are explicitly
defined.
RxO (p. 101) = NO indicates that the policy can be set both at the
publishing and subscribing ends but the two settings are independent.
That is, all combinations of values are compatible.
RxO (p. 101) = N/A indicates that the policy can only be specified
at either the publishing or the subscribing end, but not at both ends.
So compatibility does not apply.
Changeable (p. 102) property
Determines whether a QosPolicy can be changed.
NO
(p. 102)

policy
can
only
be
specified
com.rti.dds.infrastructure.Entity (p. 931) creation time.

at

UNTIL ENABLE (p. 102) policy can only be changed before the
com.rti.dds.infrastructure.Entity (p. 931) is enabled.
YES (p. 102) policy can be changed at any time.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.42 READER DATA LIFECYCLE

6.42

103

READER DATA LIFECYCLE

Controls how a DataReader manages the lifecycle of the data that it has received.

Classes
class ReaderDataLifecycleQosPolicy
Controls how a DataReader manages the lifecycle of the data that it has
received.

Variables
static final QosPolicyId t
POLICY ID

READERDATALIFECYCLE QOS -

Identifier for com.rti.dds.infrastructure.ReaderDataLifecycleQosPolicy


( p. 1315).

6.42.1

Detailed Description

Controls how a DataReader manages the lifecycle of the data that it has received.

6.42.2

Variable Documentation

6.42.2.1

final QosPolicyId t READERDATALIFECYCLE QOS POLICY ID [static, inherited]

Identifier for com.rti.dds.infrastructure.ReaderDataLifecycleQosPolicy


(p. 1315).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

104

Module Documentation

6.43

RECEIVER POOL

<<eXtension>> ( p. 278) Configures threads used by RTI Connext to receive


and process data from transports (for example, UDP sockets).

Classes
class ReceiverPoolQosPolicy
Configures threads used by RTI Connext to receive and process data from
transports (for example, UDP sockets).

Variables
static final QosPolicyId t RECEIVERPOOL QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.ReceiverPoolQosPolicy ( p. 1318)

6.43.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures threads used by RTI Connext to receive


and process data from transports (for example, UDP sockets).

6.43.2

Variable Documentation

6.43.2.1

final QosPolicyId t RECEIVERPOOL QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.ReceiverPoolQosPolicy


(p. 1318)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.44 RELIABILITY

6.44

105

RELIABILITY

Indicates the level of reliability offered/requested by RTI Connext.

Classes
class ReliabilityQosPolicy
Indicates the level of reliability offered/requested by RTI Connext.

class ReliabilityQosPolicyAcknowledgmentModeKind
Kinds of acknowledgment.

class ReliabilityQosPolicyKind
Kinds of reliability.

Variables
static final QosPolicyId t RELIABILITY QOS POLICY ID
Identifier
( p. 1324).

6.44.1

for

com.rti.dds.infrastructure.ReliabilityQosPolicy

Detailed Description

Indicates the level of reliability offered/requested by RTI Connext.

6.44.2

Variable Documentation

6.44.2.1

final QosPolicyId t RELIABILITY QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.ReliabilityQosPolicy (p. 1324).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

106

Module Documentation

6.45

RESOURCE LIMITS

Controls the amount of physical memory allocated for DDS entities, if dynamic
allocations are allowed, and how they occur. Also controls memory usage among
different instance values for keyed topics.

Classes
class ResourceLimitsQosPolicy
Controls the amount of physical memory allocated for DDS entities, if dynamic allocations are allowed, and how they occur. Also controls memory
usage among different instance values for keyed topics.

Variables
static final QosPolicyId t RESOURCELIMITS QOS POLICY ID
Identifier for
( p. 1348).

com.rti.dds.infrastructure.ResourceLimitsQosPolicy

static final int LENGTH UNLIMITED


A special value indicating an unlimited quantity.

6.45.1

Detailed Description

Controls the amount of physical memory allocated for DDS entities, if dynamic
allocations are allowed, and how they occur. Also controls memory usage among
different instance values for keyed topics.

6.45.2

Variable Documentation

6.45.2.1

final QosPolicyId t RESOURCELIMITS QOS POLICY ID [static, inherited]

Identifier
(p. 1348).
6.45.2.2

for

com.rti.dds.infrastructure.ResourceLimitsQosPolicy

final int LENGTH UNLIMITED [static, inherited]

A special value indicating an unlimited quantity.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.46 Return Codes

6.46

107

Return Codes

Types of return codes.

Classes
class RETCODE ALREADY DELETED
The object target of this operation has already been deleted.

class RETCODE BAD PARAMETER


Illegal parameter value.

class RETCODE ERROR


Generic, unspecified error.

class RETCODE ILLEGAL OPERATION


The operation was called under improper circumstances.

class RETCODE IMMUTABLE POLICY


Application attempted to modify an immutable QoS policy.

class RETCODE INCONSISTENT POLICY


Application specified a set of QoS policies that are not consistent with each
other.

class RETCODE NO DATA


Indicates a transient situation where the operation did not return any data
but there is no inherent error.

class RETCODE NOT ENABLED


Operation invoked on a com.rti.dds.infrastructure.Entity ( p. 931) that is
not yet enabled.

class RETCODE OUT OF RESOURCES


RTI Connext ran out of the resources needed to complete the operation.

class RETCODE PRECONDITION NOT MET


A pre-condition for the operation was not met.

class RETCODE TIMEOUT


The operation timed out.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

108

Module Documentation
class RETCODE UNSUPPORTED
Unsupported operation. Can only returned by operations that are unsupported.

6.46.1

Detailed Description

Types of return codes.

6.46.2

Standard Return Codes

Any void operation that documents that it may throw an exception of type may
throw exactly com.rti.dds.infrastructure.RETCODE ERROR (p. 1356)
or
com.rti.dds.infrastructure.RETCODE ILLEGAL OPERATION
(p. 1357). Any such operation that takes one or more input parameters may
additionally throw the subclass com.rti.dds.infrastructure.RETCODE BAD PARAMETER (p. 1355).
Any operation on an object created from any of the factories may additionally throw the subclass
com.rti.dds.infrastructure.RETCODE ALREADY DELETED
(p. 1354). Any operation that is stated as optional may additionally throw
the subclass com.rti.dds.infrastructure.RETCODE UNSUPPORTED
(p. 1365).
Thus, the standard return codes are:
com.rti.dds.infrastructure.RETCODE OK
com.rti.dds.infrastructure.RETCODE ERROR (p. 1356)
com.rti.dds.infrastructure.RETCODE ILLEGAL OPERATION
(p. 1357)
com.rti.dds.infrastructure.RETCODE ALREADY DELETED
(p. 1354)
com.rti.dds.infrastructure.RETCODE BAD PARAMETER
(p. 1355)
com.rti.dds.infrastructure.RETCODE UNSUPPORTED
(p. 1365)
Operations that may throw any other exception type will state so explicitly.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.47 Sequence Number Support

6.47

Sequence Number Support

<<eXtension>> ( p. 278) Sequence number type and defines.

Classes
class SequenceNumber t
Type for sequence number representation.

6.47.1

Detailed Description

<<eXtension>> ( p. 278) Sequence number type and defines.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

109

110

Module Documentation

6.48

Status Kinds

Kinds of communication status.

Classes
class StatusKind
Type for status kinds.

Variables
static final int STATUS MASK NONE
No bits are set.

static final int STATUS MASK ALL


All bits are set.

6.48.1

Detailed Description

Kinds of communication status.


Entity:
com.rti.dds.infrastructure.Entity (p. 931)
QoS:
QoS Policies (p. 94)
Listener:
com.rti.dds.infrastructure.Listener (p. 1130)
Each concrete com.rti.dds.infrastructure.Entity (p. 931) is associated with
a set of Status objects whose value represents the communication status of that
entity. Each status value can be accessed with a corresponding method on the
com.rti.dds.infrastructure.Entity (p. 931).
When
these
status
values
change,
the
corresponding
com.rti.dds.infrastructure.StatusCondition (p. 1448) objects are activated and the proper com.rti.dds.infrastructure.Listener (p. 1130)
objects are invoked to asynchronously inform the application.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.48 Status Kinds

111

An
application
is
notified
of
communication
status
by
means
of
the
com.rti.dds.infrastructure.Listener
(p. 1130)
or
the
com.rti.dds.infrastructure.WaitSet
(p. 1709)
/
The
com.rti.dds.infrastructure.Condition (p. 464) mechanism.
two mechanisms may be combined in the application (e.g.,
using
com.rti.dds.infrastructure.WaitSet
(p. 1709)
(s)
/
com.rti.dds.infrastructure.Condition (p. 464) (s) to access the data
and com.rti.dds.infrastructure.Listener (p. 1130) (s) to be warned
asynchronously of erroneous communication statuses).
It is likely that the application will choose one or the other mechanism for each
particular communication status (not both). However, if both mechanisms are
enabled, then the com.rti.dds.infrastructure.Listener (p. 1130) mechanism
is used first and then the com.rti.dds.infrastructure.WaitSet (p. 1709) objects are signalled.
The statuses may be classified into:
read communication statuses: i.e., those that are related to arrival of data,
namely
com.rti.dds.infrastructure.StatusKind.StatusKind.DATA ON READERS STATUS and com.rti.dds.infrastructure.StatusKind.StatusKind.DATA AVAILABLE STATUS.
plain communication statuses: i.e., all the others.
Read communication statuses are treated slightly differently than
the others because they dont change independently.
In other
words,
at least two changes will appear at the same time
(com.rti.dds.infrastructure.StatusKind.StatusKind.DATA ON READERS STATUS
and
com.rti.dds.infrastructure.StatusKind.StatusKind.DATA AVAILABLE STATUS) and even several of the last kind may be part of the
set. This grouping has to be communicated to the application.
For each plain communication status, there is a corresponding structure to hold
the status value. These values contain the information related to the change of
status, as well as information related to the statuses themselves (e.g., contains
cumulative counts).

6.48.2

Changes in Status

Associated with each one of an com.rti.dds.infrastructure.Entity (p. 931)s


communication status is a logical StatusChangedFlag. This flag indicates
whether that particular communication status has changed since the last time
the status was read by the application. The way the status changes is slightly
different for the Plain Communication Status and the Read Communication
status.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

112

Module Documentation

6.48.2.1

Changes in plain communication status

For the plain communication status, the StatusChangedFlag flag is initially set to FALSE. It becomes TRUE whenever the plain communication status changes and it is reset to com.rti.dds.infrastructure.false
each time the application accesses the plain communication status
via the proper get <plain communication status>() operation on the
com.rti.dds.infrastructure.Entity (p. 931).
The communication status is also reset to FALSE whenever the associated listener operation is called as the listener implicitly accesses the status which is
passed as a parameter to the operation. The fact that the status is reset prior
to calling the listener means that if the application calls the get <plain communication status> from inside the listener it will see the status already reset.
An exception to this rule is when the associated listener is the nil listener. The
nil listener is treated as a NOOP and the act of calling the nil listener does
not reset the communication status.
For example, the value of the StatusChangedFlag associated with
the
com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED DEADLINE MISSED STATUS
will
become
TRUE
each
time
new
deadline
occurs
(which
increases
the
com.rti.dds.subscription.RequestedDeadlineMissedStatus.total count (p. 1344) field).
The value changes to FALSE when
the
application
accesses
the
status
via
the
corresponding
com.rti.dds.subscription.DataReader.get requested deadline missed status (p. 499) method on the proper Entity

6.48.2.2

Changes in read communication status

For the read communication status, the StatusChangedFlag flag is initially


set to FALSE. The StatusChangedFlag becomes TRUE when either a datasample arrives or else the com.rti.dds.subscription.ViewStateKind
(p. 1703),
com.rti.dds.subscription.SampleStateKind
(p. 1426),
of
or
com.rti.dds.subscription.InstanceStateKind
(p. 1061)
any existing sample changes for any reason other than a
call
to
com.rti.ndds.example.FooDataReader.read
(p. 981),
com.rti.ndds.example.FooDataReader.take (p. 983) or their variants.
Specifically any of the following events will cause the StatusChangedFlag to
become TRUE:
The arrival of new data.
A change in the com.rti.dds.subscription.InstanceStateKind
(p. 1061) of a contained instance. This can be caused by either:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.48 Status Kinds

113

The arrival of the notification that an instance has been disposed by:
the
com.rti.dds.publication.DataWriter
(p. 557)
that owns it if OWNERSHIP (p. 87) QoS kind=
com.rti.dds.infrastructure.OwnershipQosPolicyKind.OwnershipQosPolicyKind.EXCLUSIVE OWNERSHIP QOS
or
by
any
com.rti.dds.publication.DataWriter
(p. 557)
if
OWNERSHIP
(p. 87)
QoS
kind=
com.rti.dds.infrastructure.OwnershipQosPolicyKind.OwnershipQosPolicyKind.SHARED OWNERSHIP QOS
The loss of liveliness of the com.rti.dds.publication.DataWriter
(p. 557) of an instance for which there is no other
com.rti.dds.publication.DataWriter (p. 557).
The arrival of the notification that an instance has been unregistered
by the only com.rti.dds.publication.DataWriter (p. 557) that is
known to be writing the instance.
Depending on the kind of StatusChangedFlag, the flag transitions to FALSE
again as follows:
The
com.rti.dds.infrastructure.StatusKind.StatusKind.DATA AVAILABLE STATUS StatusChangedFlag becomes FALSE when
either the corresponding listener operation (on data available) is called or
the read or take operation (or their variants) is called on the associated
com.rti.dds.subscription.DataReader (p. 487).
The
com.rti.dds.infrastructure.StatusKind.StatusKind.DATA ON READERS STATUS StatusChangedFlag becomes FALSE when any of
the following events occurs:
The corresponding listener operation (on data on readers) is called.
The on data available listener operation is called on any
com.rti.dds.subscription.DataReader (p. 487) belonging to
the com.rti.dds.subscription.Subscriber (p. 1476).
The read or take operation (or their variants) is called on any
com.rti.dds.subscription.DataReader (p. 487) belonging to the
com.rti.dds.subscription.Subscriber (p. 1476).
See also:
com.rti.dds.infrastructure.Listener (p. 1130)
com.rti.dds.infrastructure.WaitSet
com.rti.dds.infrastructure.Condition (p. 464)

(p. 1709),

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

114

Module Documentation

6.48.3

Variable Documentation

6.48.3.1

final int STATUS MASK NONE [static, inherited]

No bits are set.


6.48.3.2

final int STATUS MASK ALL [static, inherited]

All bits are set.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.49 SYSTEM RESOURCE LIMITS

6.49

115

SYSTEM RESOURCE LIMITS

<<eXtension>> ( p. 278) Configures DomainParticipant-independent resources used by RTI Connext.

Classes
class SystemResourceLimitsQosPolicy
Configures
com.rti.dds.domain.DomainParticipant
( p. 654)independent resources used by RTI Connext. Mainly used to change
the maximum number of com.rti.dds.domain.DomainParticipant
( p. 654) entities that can be created within a single process (address space).

Variables
static final QosPolicyId t SYSTEMRESOURCELIMITS QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.SystemResourceLimitsQosPolicy
( p. 1523)

6.49.1

for

Detailed Description

<<eXtension>> ( p. 278) Configures DomainParticipant-independent resources used by RTI Connext.

6.49.2

Variable Documentation

6.49.2.1

final QosPolicyId t SYSTEMRESOURCELIMITS QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.SystemResourceLimitsQosPolicy


(p. 1523)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

116

Module Documentation

6.50

Thread Settings

The properties of a thread of execution.

Classes
class ThreadSettings t
The properties of a thread of execution.

class ThreadSettingsCpuRotationKind
Determines how com.rti.dds.infrastructure.ThreadSettings t.cpu list
( p. 1531) affects processor affinity for thread-related QoS policies that apply to multiple threads.

class ThreadSettingsKind
A collection of flags used to configure threads of execution.

Variables
static final int THREAD SETTINGS KIND MASK DEFAULT
The mask of default thread options.

6.50.1

Detailed Description

The properties of a thread of execution.

6.50.2

Variable Documentation

6.50.2.1

final int THREAD SETTINGS KIND MASK DEFAULT


[static, inherited]

The mask of default thread options.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.51 TIME BASED FILTER

6.51

117

TIME BASED FILTER

Filter that allows a com.rti.dds.subscription.DataReader (p. 487) to specify that it is interested only in (potentially) a subset of the values of the data.

Classes
class TimeBasedFilterQosPolicy
Filter that allows a com.rti.dds.subscription.DataReader ( p. 487) to
specify that it is interested only in (potentially) a subset of the values of
the data.

Variables
static final QosPolicyId t TIMEBASEDFILTER QOS POLICY ID
Identifier for com.rti.dds.infrastructure.TimeBasedFilterQosPolicy
( p. 1541).

6.51.1

Detailed Description

Filter that allows a com.rti.dds.subscription.DataReader (p. 487) to specify that it is interested only in (potentially) a subset of the values of the data.

6.51.2

Variable Documentation

6.51.2.1

final QosPolicyId t TIMEBASEDFILTER QOS POLICY ID [static, inherited]

Identifier
(p. 1541).

for

com.rti.dds.infrastructure.TimeBasedFilterQosPolicy

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

118

Module Documentation

6.52

TOPIC DATA

Attaches a buffer of opaque data that is distributed by means of Built-in


Topics (p. 157) during discovery.

Classes
class TopicDataQosPolicy
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

Variables
static final QosPolicyId t TOPICDATA QOS POLICY ID
Identifier
( p. 1559).

6.52.1

for

com.rti.dds.infrastructure.TopicDataQosPolicy

Detailed Description

Attaches a buffer of opaque data that is distributed by means of Built-in


Topics (p. 157) during discovery.

6.52.2

Variable Documentation

6.52.2.1

final QosPolicyId t TOPICDATA QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.TopicDataQosPolicy (p. 1559).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.53 TRANSPORT BUILTIN

6.53

119

TRANSPORT BUILTIN

<<eXtension>> ( p. 278) Specifies which built-in transports are used.

Classes
class TransportBuiltinKind
Built-in transport kind.

class TransportBuiltinQosPolicy
Specifies which built-in transports are used.

Variables
static final QosPolicyId t TRANSPORTBUILTIN QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.TransportBuiltinQosPolicy ( p. 1580)

for

static final String UDPv4 ALIAS


Alias name for the UDPv4 built-in transport.

static final String SHMEM ALIAS


Alias name for the shared memory built-in transport.

static final String UDPv6 ALIAS


Alias name for the UDPv6 built-in transport.

static final int MASK NONE


None of the built-in transports will be registered automatically
when
the
com.rti.dds.domain.DomainParticipant
( p. 654)
is enabled.
The user must explictly register transports using
com.rti.ndds.transport.TransportSupport.register transport.

static final int MASK DEFAULT


The default value of com.rti.dds.infrastructure.TransportBuiltinQosPolicy.mask
( p. 1581).

static final int MASK ALL


All the available built-in transports are registered automatically when the
com.rti.dds.domain.DomainParticipant ( p. 654) is enabled.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

120

Module Documentation

6.53.1

Detailed Description

<<eXtension>> ( p. 278) Specifies which built-in transports are used.


See also:
Changing the automatically registered built-in transports (p. 263)

6.53.2

Variable Documentation

6.53.2.1

final QosPolicyId t TRANSPORTBUILTIN QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.TransportBuiltinQosPolicy


(p. 1580)

6.53.2.2

final String UDPv4 ALIAS [static, inherited]

Alias name for the UDPv4 built-in transport.

6.53.2.3

final String SHMEM ALIAS [static, inherited]

Alias name for the shared memory built-in transport.

6.53.2.4

final String UDPv6 ALIAS [static, inherited]

Alias name for the UDPv6 built-in transport.

6.53.2.5

final int MASK NONE [static, inherited]

None of the built-in transports will be registered automatically when the com.rti.dds.domain.DomainParticipant (p. 654)
is enabled.
The user must explictly register transports using
com.rti.ndds.transport.TransportSupport.register transport.
See also:
com.rti.dds.infrastructure.TransportBuiltinKindMask

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.53 TRANSPORT BUILTIN


6.53.2.6

121

final int MASK DEFAULT [static, inherited]

The default value of com.rti.dds.infrastructure.TransportBuiltinQosPolicy.mask


(p. 1581).
The set of builtin transport plugins that will be automatically registered with
the participant by default. The user can register additional transports using
com.rti.ndds.transport.TransportSupport.register transport.
See also:
com.rti.dds.infrastructure.TransportBuiltinKindMask

6.53.2.7

final int MASK ALL [static, inherited]

All the available built-in transports are registered automatically when the
com.rti.dds.domain.DomainParticipant (p. 654) is enabled.
See also:
com.rti.dds.infrastructure.TransportBuiltinKindMask

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

122

Module Documentation

6.54

TRANSPORT MULTICAST MAPPING

<<eXtension>> ( p. 278) Specifies a list of topic expressions and addresses


that can be used by an Entity with a specific topic name to receive data.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.55 TRANSPORT MULTICAST

6.55

123

TRANSPORT MULTICAST

<<eXtension>> ( p. 278) Specifies the multicast address on which a


com.rti.dds.subscription.DataReader (p. 487) wants to receive its data.
It can also specify a port number, as well as a subset of the available (at
the com.rti.dds.domain.DomainParticipant (p. 654) level) transports with
which to receive the multicast data.

Classes
class TransportMulticastMappingQosPolicy
Specifies
the
multicast
address
on
which
a
com.rti.dds.subscription.DataReader ( p. 487) wants to receive its
data. It can also specify a port number as well as a subset of the available (at the com.rti.dds.domain.DomainParticipant ( p. 654) level)
transports with which to receive the multicast data.

class TransportMulticastQosPolicy
Specifies
the
multicast
address
on
which
a
com.rti.dds.subscription.DataReader ( p. 487) wants to receive its
data. It can also specify a port number as well as a subset of the available (at the com.rti.dds.domain.DomainParticipant ( p. 654) level)
transports with which to receive the multicast data.

class TransportMulticastQosPolicyKind
Transport Multicast Policy Kind.

Variables
static final QosPolicyId t
POLICY ID

TRANSPORTMULTICAST QOS -

<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.TransportMulticastQosPolicy ( p. 1590)

static
final
TransportMulticastQosPolicyKind
TRANSPORT MULTICAST QOS

AUTOMATIC -

Transport Multicast Policy Kind.

static final TransportMulticastQosPolicyKind UNICAST ONLY TRANSPORT MULTICAST QOS = new TransportMulticastQosPolicyKind(UNICAST ONLY TRANSPORT MULTICAST QOS,
1)
Transport Multicast Policy Kind.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

124

Module Documentation

6.55.1

Detailed Description

<<eXtension>> ( p. 278) Specifies the multicast address on which a


com.rti.dds.subscription.DataReader (p. 487) wants to receive its data.
It can also specify a port number, as well as a subset of the available (at
the com.rti.dds.domain.DomainParticipant (p. 654) level) transports with
which to receive the multicast data.

6.55.2

Variable Documentation

6.55.2.1

final QosPolicyId t TRANSPORTMULTICAST QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.TransportMulticastQosPolicy


(p. 1590)
6.55.2.2

final TransportMulticastQosPolicyKind
AUTOMATIC TRANSPORT MULTICAST QOS
[static, inherited]

Initial value:
new TransportMulticastQosPolicyKind(
"AUTOMATIC_TRANSPORT_MULTICAST_QOS", 0)

Transport Multicast Policy Kind.


See also:
com.rti.dds.infrastructure.TransportMulticastQosPolicy.AUTOMATIC TRANSPORT MULTICAST QOS

6.55.2.3

final TransportMulticastQosPolicyKind
UNICAST ONLY TRANSPORT MULTICAST QOS =
new TransportMulticastQosPolicyKind(UNICAST ONLY TRANSPORT MULTICAST QOS, 1) [static,
inherited]

Transport Multicast Policy Kind.


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.55 TRANSPORT MULTICAST


See also:
com.rti.dds.infrastructure.TransportMulticastQosPolicy.UNICAST ONLY TRANSPORT MULTICAST QOS

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

125

126

Module Documentation

6.56

TRANSPORT PRIORITY

This QoS policy allows the application to take advantage of transports that are
capable of sending messages with different priorities.

Classes
class TransportPriorityQosPolicy
This QoS policy allows the application to take advantage of transports that
are capable of sending messages with different priorities.

Variables
static
final
POLICY ID

QosPolicyId t

TRANSPORTPRIORITY QOS -

Identifier for com.rti.dds.infrastructure.TransportPriorityQosPolicy


( p. 1598).

6.56.1

Detailed Description

This QoS policy allows the application to take advantage of transports that are
capable of sending messages with different priorities.

6.56.2

Variable Documentation

6.56.2.1

final QosPolicyId t TRANSPORTPRIORITY QOS POLICY ID [static, inherited]

Identifier for
(p. 1598).

com.rti.dds.infrastructure.TransportPriorityQosPolicy

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.57 TRANSPORT SELECTION

6.57

127

TRANSPORT SELECTION

Specifies
the
physical
transports
<<eXtension>>
( p. 278)
that
a
com.rti.dds.publication.DataWriter
(p. 557)
or
com.rti.dds.subscription.DataReader (p. 487) may use to send or receive data.

Classes
class TransportSelectionQosPolicy
Specifies the physical transports a com.rti.dds.publication.DataWriter
( p. 557) or com.rti.dds.subscription.DataReader ( p. 487) may use to
send or receive data.

Variables
static final QosPolicyId t
POLICY ID

TRANSPORTSELECTION QOS -

<<eXtension>>
(p. 278)
Identifier
for
com.rti.dds.infrastructure.TransportSelectionQosPolicy ( p. 1600)

6.57.1

Detailed Description

<<eXtension>>
( p. 278)
Specifies
the
physical
transports
that
a
com.rti.dds.publication.DataWriter
(p. 557)
or
com.rti.dds.subscription.DataReader (p. 487) may use to send or receive data.

6.57.2

Variable Documentation

6.57.2.1

final QosPolicyId t TRANSPORTSELECTION QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.TransportSelectionQosPolicy


(p. 1600)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

128

Module Documentation

6.58

TRANSPORT UNICAST

<<eXtension>> ( p. 278) Specifies a subset of transports and a port number


that can be used by an Entity to receive data.

Classes
class TransportUnicastQosPolicy
Specifies a subset of transports and a port number that can be used by an
Entity ( p. 931) to receive data.

Variables
static
final
POLICY ID

QosPolicyId t

TRANSPORTUNICAST QOS -

<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.TransportUnicastQosPolicy ( p. 1605)

6.58.1

for

Detailed Description

<<eXtension>> ( p. 278) Specifies a subset of transports and a port number


that can be used by an Entity to receive data.

6.58.2

Variable Documentation

6.58.2.1

final QosPolicyId t TRANSPORTUNICAST QOS POLICY ID [static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.TransportUnicastQosPolicy


(p. 1605)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.59 TYPE CONSISTENCY ENFORCEMENT

6.59

129

TYPE CONSISTENCY ENFORCEMENT

Defines the rules for determining whether the type used to publish a given topic
is consistent with that used to subscribe to it.

Classes
class TypeConsistencyEnforcementQosPolicy
Defines the rules for determining whether the type used to publish a given
topic ( p. 359) is consistent with that used to subscribe to it.

class TypeConsistencyKind
Kinds of type consistency.

6.59.1

Detailed Description

Defines the rules for determining whether the type used to publish a given topic
is consistent with that used to subscribe to it.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

130

Module Documentation

6.60

TYPESUPPORT

<<eXtension>> ( p. 278) Allows you to attach application-specific values to a


DataWriter or DataReader that are passed to the serialization or deserialization
routine of the associated data type.

Classes
class TypeSupportQosPolicy
Allows you to attach application-specific values to a DataWriter or
DataReader that are passed to the serialization or deserialization routine
of the associated data type.

Variables
static final QosPolicyId t TYPESUPPORT QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.TypeSupportQosPolicy ( p. 1666)

for

static final QosPolicyId t ENTITYNAME QOS POLICY ID


<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.TypeSupportQosPolicy ( p. 1666)

6.60.1

for

Detailed Description

<<eXtension>> ( p. 278) Allows you to attach application-specific values to a


DataWriter or DataReader that are passed to the serialization or deserialization
routine of the associated data type.

6.60.2

Variable Documentation

6.60.2.1

final QosPolicyId t TYPESUPPORT QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.TypeSupportQosPolicy


(p. 1666)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.60 TYPESUPPORT
6.60.2.2

131

final QosPolicyId t ENTITYNAME QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.TypeSupportQosPolicy


(p. 1666)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

132

Module Documentation

6.61

USER DATA

Attaches a buffer of opaque data that is distributed by means of Built-in


Topics (p. 157) during discovery.

Classes
class UserDataQosPolicy
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

Variables
static final QosPolicyId t USERDATA QOS POLICY ID
Identifier for com.rti.dds.infrastructure.UserDataQosPolicy ( p. 1694).

6.61.1

Detailed Description

Attaches a buffer of opaque data that is distributed by means of Built-in


Topics (p. 157) during discovery.

6.61.2

Variable Documentation

6.61.2.1

final QosPolicyId t USERDATA QOS POLICY ID


[static, inherited]

Identifier for com.rti.dds.infrastructure.UserDataQosPolicy (p. 1694).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.62 Exception Codes

6.62

133

Exception Codes

<<eXtension>> ( p. 278) Exception codes.

Classes
class BAD PARAM
The exception BadKind ( p. 409) is thrown when an inappropriate operation
is invoked on a TypeCode object.

class BAD TYPECODE


The exception BadKind ( p. 409) is thrown when an inappropriate operation
is invoked on a TypeCode object.

class BadKind
The exception BadKind ( p. 409) is thrown when an inappropriate operation
is invoked on a TypeCode object.

class BadMemberId
The specified com.rti.dds.typecode.TypeCode ( p. 1611) member ID is invalid.

class BadMemberName
The specified com.rti.dds.typecode.TypeCode ( p. 1611) member name is
invalid.

class Bounds
A user exception thrown when a parameter is not within the legal bounds.

class SystemException
System exception.

class UserException
User exception.

6.62.1

Detailed Description

<<eXtension>> ( p. 278) Exception codes.


These exceptions are used for error handling by the Type Code Support
(p. 165) API.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

134

Module Documentation

6.63

WIRE PROTOCOL

<<eXtension>> ( p. 278) Specifies the wire protocol related attributes for the
com.rti.dds.domain.DomainParticipant (p. 654).

Classes
class RtpsReservedPortKind
RTPS reserved port kind, used to identify the types of ports that can be reserved on domain ( p. 328) participant enable.

class RtpsWellKnownPorts t
RTPS well-known port mapping configuration.

class WireProtocolQosPolicy
Specifies
the
wire-protocol-related
attributes
com.rti.dds.domain.DomainParticipant ( p. 654).

for

the

class WireProtocolQosPolicyAutoKind
Kind of auto mechanism used to calculate the GUID prefix.

Variables
static final QosPolicyId t WIREPROTOCOL QOS POLICY ID
<<eXtension>>
(p. 278)
Identifier
com.rti.dds.infrastructure.WireProtocolQosPolicy ( p. 1723)

for

static final int MASK DEFAULT = BUILTIN UNICAST | BUILTIN MULTICAST | USER UNICAST
The default value of com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps reserved port mask ( p. 1731).

static final int MASK NONE


No bits are set.

static final int MASK ALL


All bits are set.

static
final
RtpsWellKnownPorts t
RTI BACKWARDS COMPATIBLE RTPS WELL KNOWN PORTS
Assign to use well-known port mappings which are compatible with previous
versions of the RTI Connext middleware.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.63 WIRE PROTOCOL

static final RtpsWellKnownPorts t


WELL KNOWN PORTS

135

INTEROPERABLE RTPS -

Assign to use well-known port mappings which are compliant with OMGs
DDS Interoperability Wire Protocol.

static final WireProtocolQosPolicyAutoKind RTPS AUTO ID FROM IP = new WireProtocolQosPolicyAutoKind(RTPS AUTO ID FROM IP, 0)
Kind of auto mechanism used to calculate the GUID prefix.

static final WireProtocolQosPolicyAutoKind RTPS AUTO ID FROM MAC = new WireProtocolQosPolicyAutoKind(RTPS AUTO ID FROM MAC, 1)
Kind of auto mechanism used to calculate the GUID prefix.

6.63.1

Detailed Description

<<eXtension>> ( p. 278) Specifies the wire protocol related attributes for the
com.rti.dds.domain.DomainParticipant (p. 654).

6.63.2

Variable Documentation

6.63.2.1

final QosPolicyId t WIREPROTOCOL QOS POLICY ID


[static, inherited]

<<eXtension>> ( p. 278) Identifier for com.rti.dds.infrastructure.WireProtocolQosPolicy


(p. 1723)

6.63.2.2

final int MASK DEFAULT = BUILTIN UNICAST |


BUILTIN MULTICAST | USER UNICAST [static,
inherited]

The default value of com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps reserved port mask (p. 1731).


Most of the ports that may be needed by DDS will be reserved
by the transport when the participant is enabled.
With this value
set, failure to allocate a port that is computed based on the
com.rti.dds.infrastructure.RtpsWellKnownPorts t (p. 1390) will be
detected at this time and the enable operation will fail.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

136

Module Documentation

This setting will avoid reserving the usertraffic multicast port, which is not
actually used unless there are DataReaders that enable multicast but fail to
specify a port.
Automatic participant ID selection will be based on finding a participant index
with both the discovery (metatraffic) unicast port and usertraffic unicast port
available.
See also:
com.rti.dds.infrastructure.RtpsReservedPortKindMask

6.63.2.3

final int MASK NONE [static, inherited]

No bits are set.


None of the ports that are needed by DDS will be allocated until they are
specifically required. With this value set, automatic participant Id selection
will be based on selecting a port for discovery (metatraffic) unicast traffic on a
single transport.
See also:
com.rti.dds.infrastructure.RtpsReservedPortKindMask

6.63.2.4

final int MASK ALL [static, inherited]

All bits are set.


All of the ports that may be needed by DDS will be reserved when the participant is enabled. With this value set, failure to allocate a port that is computed based on the com.rti.dds.infrastructure.RtpsWellKnownPorts t
(p. 1390) will be detected at this time, and the enable operation will fail.
Note that this will also reserve the usertraffic multicast port which is not
actually used unless there are DataReaders that enable multicast but fail to
specify a port. To avoid unnecesary resource usage for these ports, use RTPS RESERVED PORT MASK DEFAULT.
Automatic participant ID selection will be based on finding a participant index
with both the discovery (metatraffic) unicast port and usertraffic unicast port
available.
See also:
com.rti.dds.infrastructure.RtpsReservedPortKindMask

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.63 WIRE PROTOCOL


6.63.2.5

137

final RtpsWellKnownPorts t RTI BACKWARDS COMPATIBLE RTPS WELL KNOWN PORTS [static,
inherited]

Assign to use well-known port mappings which are compatible with previous
versions of the RTI Connext middleware.
Assign com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps well known ports (p. 1729) to this value to remain compatible with previous
versions of the RTI Connext middleware that used fixed port mappings.
values
for
The
following
are
the
rtps well known ports
com.rti.dds.infrastructure.RtpsWellKnownPorts t.RTI BACKWARDS COMPATIBLE RTPS WELL KNOWN PORTS
(p. 137):
port base = 7400
domain id gain = 10
participant id gain = 1000
builtin multicast port offset = 2
builtin unicast port offset = 0
user multicast port offset = 1
user unicast port offset = 3
These settings are not compliant with OMGs DDS Interoperability Wire Protocol.
To comply with the specification,
please
use
com.rti.dds.infrastructure.RtpsWellKnownPorts t.INTEROPERABLE RTPS WELL KNOWN PORTS (p. 137).
See also:
com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps well known ports (p. 1729)
com.rti.dds.infrastructure.RtpsWellKnownPorts t.INTEROPERABLE RTPS WELL KNOWN PORTS (p. 137)

6.63.2.6

final RtpsWellKnownPorts t INTEROPERABLE RTPS WELL KNOWN PORTS [static,


inherited]

Assign to use well-known port mappings which are compliant with OMGs DDS
Interoperability Wire Protocol.
Assign com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps well known ports (p. 1729) to this value to use well-known port mappings which
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

138

Module Documentation

are compliant with OMGs DDS Interoperability Wire Protocol.


The
following
are
the
rtps well known ports
values
for
com.rti.dds.infrastructure.RtpsWellKnownPorts t.INTEROPERABLE RTPS WELL KNOWN PORTS (p. 137):
port base = 7400
domain id gain = 250
participant id gain = 2
builtin multicast port offset = 0
builtin unicast port offset = 10
user multicast port offset = 1
user unicast port offset = 11
Assuming a maximum port number of 65535 (UDPv4), the above settings enable
the use of about 230 domains with up to 120 Participants per node per domain
(p. 328).
These settings are not backwards compatible with previous versions of the RTI
Connext middleware that used fixed port mappings. For backwards compability, please use com.rti.dds.infrastructure.RtpsWellKnownPorts t.RTI BACKWARDS COMPATIBLE RTPS WELL KNOWN PORTS
(p. 137).
See also:
com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps well known ports (p. 1729)
com.rti.dds.infrastructure.RtpsWellKnownPorts t.RTI BACKWARDS COMPATIBLE RTPS WELL KNOWN PORTS
(p. 137)

6.63.2.7

final WireProtocolQosPolicyAutoKind
RTPS AUTO ID FROM IP = new
WireProtocolQosPolicyAutoKind(RTPS AUTO ID FROM IP, 0) [static,
inherited]

Kind of auto mechanism used to calculate the GUID prefix.


See also:
com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps auto id kind.RTPS AUTO ID FROM IP

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.63 WIRE PROTOCOL


6.63.2.8

final WireProtocolQosPolicyAutoKind
RTPS AUTO ID FROM MAC = new
WireProtocolQosPolicyAutoKind(RTPS AUTO ID FROM MAC, 1) [static,
inherited]

Kind of auto mechanism used to calculate the GUID prefix.


See also:
com.rti.dds.infrastructure.WireProtocolQosPolicy.rtps auto id kind.RTPS AUTO ID FROM MAC

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

139

140

Module Documentation

6.64

WRITER DATA LIFECYCLE

Controls how a DataWriter handles the lifecycle of the instances (keys) that it
is registered to manage.

Classes
class WriterDataLifecycleQosPolicy
Controls how a com.rti.dds.publication.DataWriter ( p. 557) handles the
lifecycle of the instances (keys) that it is registered to manage.

Variables
static final QosPolicyId t
POLICY ID

WRITERDATALIFECYCLE QOS -

Identifier for com.rti.dds.infrastructure.WriterDataLifecycleQosPolicy


( p. 1738).

6.64.1

Detailed Description

Controls how a DataWriter handles the lifecycle of the instances (keys) that it
is registered to manage.

6.64.2

Variable Documentation

6.64.2.1

final QosPolicyId t WRITERDATALIFECYCLE QOS POLICY ID [static, inherited]

Identifier for com.rti.dds.infrastructure.WriterDataLifecycleQosPolicy


(p. 1738).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.65 KeyedString Built-in Type

6.65

141

KeyedString Built-in Type

Built-in type consisting of a single character string.

Classes
class KeyedString
Keyed string built-in type.

class KeyedStringDataReader
<<interface>>
(p. 279)
Instantiates
DataReader
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString >.

<

class KeyedStringDataWriter
<<interface>>
(p. 279)
Instantiates
DataWriter
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString >.

<

class KeyedStringSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString > .

class KeyedStringTypeSupport
<<interface>> (p. 279) Keyed string type support.

6.65.1

Detailed Description

Built-in type consisting of a single character string.


defgroup DDSStringBuiltInTypeModule String Built-in Type
Built-in type consisting of a string payload and a second string that is the key.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

142

Module Documentation

6.66

Octets Built-in Type

Built-in type consisting of a variable-length array of opaque bytes.

Classes
class Bytes
Built-in type consisting of a variable-length array of opaque bytes.

class BytesDataReader
<<interface>>
(p. 279)
Instantiates
DataReader
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes >.

<

class BytesDataWriter
<<interface>>
(p. 279)
Instantiates
DataWriter
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes >.

<

class BytesSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes > .

class BytesTypeSupport
<<interface>> (p. 279) com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes
type support.

6.66.1

Detailed Description

Built-in type consisting of a variable-length array of opaque bytes.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.67 KeyedOctets Built-in Type

6.67

143

KeyedOctets Built-in Type

Built-in type consisting of a variable-length array of opaque bytes and a string


that is the key.

Classes
class KeyedBytes
Built-in type consisting of a variable-length array of opaque bytes and a string
that is the key.

class KeyedBytesDataReader
<<interface>>
(p. 279)
Instantiates
DataReader
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes >.

<

class KeyedBytesDataWriter
<<interface>>
(p. 279)
Instantiates
DataWriter
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes >.

<

class KeyedBytesSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes >.

class KeyedBytesTypeSupport
<<interface>> (p. 279) com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes
type support.

6.67.1

Detailed Description

Built-in type consisting of a variable-length array of opaque bytes and a string


that is the key.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

144

Module Documentation

6.68

Sequence Support

The com.rti.dds.infrastructure.com.rti.dds.util.Sequence interface allows you to


work with variable-length collections of homogeneous data.

Modules
Built-in Sequences
Defines sequences of primitive data type.

Classes
interface Sequence
<<interface>> (p. 279) <<generic>> (p. 279) A type-safe, ordered collection of elements. The type of these elements is referred to in this documentation as com.rti.ndds.example.Foo (p. 977).

class FooSeq
<<interface>> (p. 279) <<generic>> (p. 279) A type-safe, ordered collection of elements. The type of these elements is referred to in this documentation as com.rti.ndds.example.Foo (p. 977).

6.68.1

Detailed Description

The com.rti.dds.infrastructure.com.rti.dds.util.Sequence interface allows you to


work with variable-length collections of homogeneous data.
This interface is a minimal extension to the standard java.util.List interface,
making it easier to use RTI Connext alongside other Java APIs.
The java.util.List interface does not provide direct support for lists of primitive types. The Built-in Sequences (p. 208) provide extension APIs for working with collections of primitive elements without the overhead of boxing the
unboxing.
When you use the rtiddsgen (p. 298) code generation tool, it will automatically
generate concrete sequence instantiations for each of your own custom types.
See also:
http://java.sun.com/javase/6/docs/api/java/util/List.html

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.69 Clock Selection

6.69

145

Clock Selection

APIs related to clock selection. RTI Connext uses clocks to measure time and
generate timestamps.
The middleware uses two clocks, an internal clock and an external clock. The
internal clock is used to measure time and handles all timing in the middleware.
The external clock is used solely to generate timestamps, such as the source
timestamp and the reception timestamp, in addition to providing the time given
by com.rti.dds.domain.DomainParticipant.get current time (p. 723).

6.69.1

Available Clocks

Two clock implementations are generally available, the monotonic clock and the
realtime clock.
The monotonic clock provides times that are monotonic from a clock that is not
adjustable. This clock is useful to use in order to not be subject to changes in
the system or realtime clock, which may be adjusted by the user or via time
synchronization protocols. However, this time generally starts from an arbitrary
point in time, such as system startup. Note that this clock is not available for
all architectures. Please see the Platform Notes for the architectures on which
it is supported. For the purposes of clock selection, this clock can be referenced
by the name monotonic.
The realtime clock provides the realtime of the system. This clock may generally
be monotonic but may not be guaranteed to be so. It is adjustable and may be
subject to small and large changes in time. The time obtained from this clock
is generally a meaningful time in that it is the amount of time from a known
epoch. For the purposes of clock selection, this clock can be referenced by the
names realtime or system.

6.69.2

Clock Selection Strategy

By default, both the internal and external clocks use the real-time clock. If you
want your application to be robust to changes in the system time, you may use
the monotonic clock as the internal clock, and leave the system clock as the
external clock. Note, however, that this may slightly diminish performance in
that both the send and receive paths may need to obtain times from both clocks.
Since the monotonic clock is not available on all architectures, you may want
to specify monotonic,realtime for the internal clock (see the table below). By
doing so, the middleware will attempt to use the monotonic clock if available,
and will fall back to the realtime clock if the monotonic clock is not available.
If you want your application to be robust to changes in the system time, you
are not relying on source timestamps, and you want to avoid obtaining times
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

146

Module Documentation

from both clocks, you may use the monotonic clock for both the internal and
external clocks.

6.69.3

Configuring Clock Selection

To configure the clock selection, use the PROPERTY (p. 92) QoS policy associated with the com.rti.dds.domain.DomainParticipant (p. 654).
See also:
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236)
The following table lists the supported clock selection properties.
Property
dds.clock.external clock

dds.clock.internal clock

Description
Comma-delimited list of clocks to
use for the external clock, in the
order of preference. Valid clock
names are realtime, system,
and monotonic.
Default: realtime
Comma-delimited list of clocks to
use for the internal clock, in the
order of preference. Valid clock
names are realtime, system,
and monotonic.
Default: realtime

Table 6.1: Clock Selection Properties

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.70 Domain Module

6.70

147

Domain Module

Contains the com.rti.dds.domain.DomainParticipant (p. 654) class that


acts as an entrypoint of RTI Connext and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant (p. 654) also acts as
a container for the other objects that make up RTI Connext.

Modules
DomainParticipantFactory
com.rti.dds.domain.DomainParticipantFactory ( p. 742) entity and associated elements

DomainParticipants
com.rti.dds.domain.DomainParticipant ( p. 654) entity and associated
elements

Built-in Topics
Built-in objects created by RTI Connext but accessible to the application.

Variables
static DomainParticipantFactory TheParticipantFactory = create singletonI()
Can be used as an alias for the singleton factory returned by the operation com.rti.dds.domain.DomainParticipantFactory.get instance()
( p. 747).

6.70.1

Detailed Description

Contains the com.rti.dds.domain.DomainParticipant (p. 654) class that


acts as an entrypoint of RTI Connext and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant (p. 654) also acts as
a container for the other objects that make up RTI Connext.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

148

Module Documentation

6.70.2

Variable Documentation

6.70.2.1

DomainParticipantFactory TheParticipantFactory =
create singletonI() [static, inherited]

Can be used as an alias for the singleton factory returned by the operation
com.rti.dds.domain.DomainParticipantFactory.get instance() (p. 747).
See also:
com.rti.dds.domain.DomainParticipantFactory.get instance
(p. 747)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.71 DomainParticipantFactory

6.71

149

DomainParticipantFactory

com.rti.dds.domain.DomainParticipantFactory (p. 742) entity and associated elements

Classes
class DomainParticipantFactory
<<singleton>> (p. 279) <<interface>> (p. 279) Allows creation and destruction of com.rti.dds.domain.DomainParticipant ( p. 654) objects.

class DomainParticipantFactoryQos
QoS policies supported by a com.rti.dds.domain.DomainParticipantFactory
( p. 742).

Variables
static
final
DEFAULT

DomainParticipantQos

PARTICIPANT QOS -

Special value for creating a DomainParticipant ( p. 654) with default QoS.

6.71.1

Detailed Description

com.rti.dds.domain.DomainParticipantFactory (p. 742) entity and associated elements

6.71.2

Variable Documentation

6.71.2.1

final DomainParticipantQos PARTICIPANT QOS DEFAULT [static, inherited]

Initial value:
new DomainParticipantQos()

Special value for creating a DomainParticipant (p. 654) with default QoS.
When used in com.rti.dds.domain.DomainParticipantFactory.create participant (p. 748), this special value is used to indicate that the
com.rti.dds.domain.DomainParticipant (p. 654) should be created with
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

150

Module Documentation

the default com.rti.dds.domain.DomainParticipant (p. 654) QoS by means


of the operation com.rti.dds.domain.DomainParticipantFactory.get default participant qos() (p. 750) and using the resulting QoS to create the
com.rti.dds.domain.DomainParticipant (p. 654).
When used in com.rti.dds.domain.DomainParticipantFactory.set default participant qos (p. 751), this special value is used to indicate that
the default QoS should be reset back to the initial value that would be used
if the com.rti.dds.domain.DomainParticipantFactory.set default participant qos (p. 751) operation had never been called.
When
used
in
com.rti.dds.domain.DomainParticipant.set qos (p. 705), this special value is used to indicate that the
QoS
of
the
com.rti.dds.domain.DomainParticipant
(p. 654)
should be changed to match the current default QoS set in the
com.rti.dds.domain.DomainParticipantFactory
(p. 742)
that
the
com.rti.dds.domain.DomainParticipant (p. 654) belongs to.
RTI Connext treats this special value as a constant.
Note:
You cannot use this value to get the default QoS values
from the DomainParticipant (p. 654) factory;
for this purpose,
use
com.rti.dds.domain.DomainParticipantFactory.get default participant qos (p. 750).
See also:
NDDS DISCOVERY PEERS (p. 57)
com.rti.dds.domain.DomainParticipantFactory.create participant() (p. 748)
com.rti.dds.domain.DomainParticipantFactory.set default participant qos() (p. 751)
com.rti.dds.domain.DomainParticipant.set qos() (p. 705)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.72 DomainParticipants

6.72

151

DomainParticipants

com.rti.dds.domain.DomainParticipant (p. 654) entity and associated elements

Classes
interface DomainParticipant
<<interface>>
(p. 279)
Container
for
com.rti.dds.infrastructure.DomainEntity ( p. 653) objects.

all

class DomainParticipantAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

interface DomainParticipantListener
<<interface>> (p. 279) Listener for participant status.

class DomainParticipantQos
QoS policies supported by a com.rti.dds.domain.DomainParticipant
( p. 654) entity.

Variables
static final TopicQos TOPIC QOS DEFAULT = new TopicQos()
Special value for creating a com.rti.dds.topic.Topic ( p. 1545) with default
QoS.

static final PublisherQos PUBLISHER QOS DEFAULT = new PublisherQos()


Special value for creating a com.rti.dds.publication.Publisher ( p. 1262)
with default QoS.

static final SubscriberQos SUBSCRIBER QOS DEFAULT


Special value for creating a com.rti.dds.subscription.Subscriber ( p. 1476)
with default QoS.

static final FlowControllerProperty t


PROPERTY DEFAULT

FLOW CONTROLLER -

<<eXtension>>
(p. 278)
Special
value
for
creating
a
com.rti.dds.publication.FlowController ( p. 964) with default property.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

152

Module Documentation

static final String SQLFILTER NAME


<<eXtension>> (p. 278) The name of the built-in SQL filter that can be
used with ContentFilteredTopics and MultiChannel DataWriters.

static final String STRINGMATCHFILTER NAME


<<eXtension>> (p. 278) The name of the built-in StringMatch filter that
can be used with ContentFilteredTopics and MultiChannel DataWriters.

6.72.1

Detailed Description

com.rti.dds.domain.DomainParticipant (p. 654) entity and associated elements

6.72.2

Variable Documentation

6.72.2.1

final TopicQos TOPIC QOS DEFAULT = new TopicQos()


[static, inherited]

Special value for creating a com.rti.dds.topic.Topic (p. 1545) with default


QoS.
When used in com.rti.dds.domain.DomainParticipant.create topic
(p. 697), this special value is used to indicate that the com.rti.dds.topic.Topic
(p. 1545) should be created with the default com.rti.dds.topic.Topic (p. 1545)
QoS by means of the operation get default topic qos and using the resulting
QoS to create the com.rti.dds.topic.Topic (p. 1545).
When used in com.rti.dds.domain.DomainParticipant.set default topic qos (p. 667), this special value is used to indicate that the default QoS should be reset back to the initial value that would be
used if the com.rti.dds.domain.DomainParticipant.set default topic qos (p. 667) operation had never been called.
When used in com.rti.dds.topic.Topic.set qos (p. 1547), this special
value is used to indicate that the QoS of the com.rti.dds.topic.Topic
(p. 1545) should be changed to match the current default QoS set
in the com.rti.dds.domain.DomainParticipant (p. 654) that the
com.rti.dds.topic.Topic (p. 1545) belongs to.
Note: You cannot use this value to get the default QoS values for a Topic; for
this purpose, use com.rti.dds.domain.DomainParticipant.get default topic qos (p. 667).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.72 DomainParticipants

153

See also:
com.rti.dds.domain.DomainParticipant.create topic (p. 697)
com.rti.dds.domain.DomainParticipant.set default topic qos
(p. 667)
com.rti.dds.topic.Topic.set qos (p. 1547)

6.72.2.2

final PublisherQos PUBLISHER QOS DEFAULT = new


PublisherQos() [static, inherited]

Special value for creating a com.rti.dds.publication.Publisher (p. 1262)


with default QoS.
When
used
in
com.rti.dds.domain.DomainParticipant.create publisher (p. 683), this special value is used to indicate that the
com.rti.dds.publication.Publisher (p. 1262) should be created with
the default com.rti.dds.publication.Publisher (p. 1262) QoS by means of
the operation get default publisher qos and using the resulting QoS to create
the com.rti.dds.publication.Publisher (p. 1262).
When used in com.rti.dds.domain.DomainParticipant.set default publisher qos (p. 671), this special value is used to indicate that the default QoS should be reset back to the initial value that would be used
if the com.rti.dds.domain.DomainParticipant.set default publisher qos (p. 671) operation had never been called.
When used in com.rti.dds.publication.Publisher.set qos (p. 1275),
this special value is used to indicate that the QoS of the
com.rti.dds.publication.Publisher (p. 1262) should be changed to match
the current default QoS set in the com.rti.dds.domain.DomainParticipant
(p. 654) that the com.rti.dds.publication.Publisher (p. 1262) belongs to.
Note: You cannot use this value to get the default QoS values for a Publisher; for this purpose, use com.rti.dds.domain.DomainParticipant.get default publisher qos (p. 670).
See also:
com.rti.dds.domain.DomainParticipant.create publisher (p. 683)
com.rti.dds.domain.DomainParticipant.set default publisher qos
(p. 671)
com.rti.dds.publication.Publisher.set qos (p. 1275)

6.72.2.3

final SubscriberQos SUBSCRIBER QOS DEFAULT


[static, inherited]

Initial value:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

154

Module Documentation

new SubscriberQos()

Special value for creating a com.rti.dds.subscription.Subscriber (p. 1476)


with default QoS.
When
used
in
com.rti.dds.domain.DomainParticipant.create subscriber (p. 686), this special value is used to indicate that the
com.rti.dds.subscription.Subscriber (p. 1476) should be created with
the default com.rti.dds.subscription.Subscriber (p. 1476) QoS by means of
the operation get default subscriber qos and using the resulting QoS to create
the com.rti.dds.subscription.Subscriber (p. 1476).
When used in com.rti.dds.domain.DomainParticipant.set default subscriber qos (p. 676), this special value is used to indicate that the default QoS should be reset back to the initial value that would be used if
the com.rti.dds.domain.DomainParticipant.set default subscriber qos
(p. 676) operation had never been called.
When
used
in
com.rti.dds.subscription.Subscriber.set qos
(p. 1492), this special value is used to indicate that the QoS of the
com.rti.dds.subscription.Subscriber (p. 1476) should be changed to match
the current default QoS set in the com.rti.dds.domain.DomainParticipant
(p. 654) that the com.rti.dds.subscription.Subscriber (p. 1476) belongs to.
Note: You cannot use this value to get the default QoS values for a Subscriber;
for this purpose, use com.rti.dds.domain.DomainParticipant.get default subscriber qos (p. 678).
See also:
com.rti.dds.domain.DomainParticipant.create subscriber (p. 686)
com.rti.dds.domain.DomainParticipant.get default subscriber qos (p. 678)
com.rti.dds.subscription.Subscriber.set qos (p. 1492)

6.72.2.4

final FlowControllerProperty t FLOW CONTROLLER PROPERTY DEFAULT [static,


inherited]

Initial value:
new FlowControllerProperty_t()

Special
value
for
creating
<<eXtension>>
( p. 278)
com.rti.dds.publication.FlowController (p. 964) with default property.

When
used
in
com.rti.dds.domain.DomainParticipant.create flowcontroller (p. 681), this special value is used to indicate that the
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.72 DomainParticipants

155

com.rti.dds.publication.FlowController (p. 964) should be created with


the default com.rti.dds.publication.FlowController (p. 964) property by
means of the operation get default flowcontroller property and using the resulting QoS to create the com.rti.dds.publication.FlowControllerProperty t
(p. 968).
When used in com.rti.dds.domain.DomainParticipant.set default flowcontroller property (p. 666), this special value is used to indicate
that the default QoS should be reset back to the initial value that would
be used if the com.rti.dds.domain.DomainParticipant.set default flowcontroller property (p. 666) operation had never been called.
When
used
in
com.rti.dds.publication.FlowController.set property (p. 965), this special value is used to indicate that the
property of the com.rti.dds.publication.FlowController (p. 964)
should be changed to match the current default property set in
the
com.rti.dds.domain.DomainParticipant
(p. 654)
that
the
com.rti.dds.publication.FlowController (p. 964) belongs to.
Note: You cannot use this value to get the default properties for a FlowController; for this purpose, use com.rti.dds.domain.DomainParticipant.get default flowcontroller property (p. 665).
See also:
com.rti.dds.domain.DomainParticipant.create flowcontroller
(p. 681)
com.rti.dds.domain.DomainParticipant.set default flowcontroller property (p. 666)
com.rti.dds.publication.FlowController.set property (p. 965)

6.72.2.5

final String SQLFILTER NAME [static, inherited]

<<eXtension>> ( p. 278) The name of the built-in SQL filter that can be
used with ContentFilteredTopics and MultiChannel DataWriters.
See also:
Queries and Filters Syntax (p. 286)

6.72.2.6

final String STRINGMATCHFILTER NAME [static,


inherited]

<<eXtension>> ( p. 278) The name of the built-in StringMatch filter that


can be used with ContentFilteredTopics and MultiChannel DataWriters.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

156

Module Documentation

The StringMatch Filter is a subset of the SQL filter; it only supports the
MATCH relational operator on a single string field.
See also:
Queries and Filters Syntax (p. 286)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.73 Built-in Topics

6.73

157

Built-in Topics

Built-in objects created by RTI Connext but accessible to the application.

Packages
package com.rti.dds.domain.builtin
Builtin topic ( p. 359) for accessing information about the DomainParticipants discovered by RTI Connext.

package com.rti.dds.publication.builtin
Builtin topic ( p. 359) for accessing information about the Publications discovered by RTI Connext.

package com.rti.dds.subscription.builtin
Builtin topic ( p. 359) for accessing information about the Subscriptions discovered by RTI Connext.

package com.rti.dds.topic.builtin
Builtin topic ( p. 359) for accessing information about the Topics discovered
by RTI Connext.

Classes
class ContentFilterProperty t
<<eXtension>> (p. 278) Type used to provide all the required information
to enable content filtering.

class Locator t
<<eXtension>> (p. 278) Type used to represent the addressing information
needed to send a message to an RTPS Endpoint using one of the supported
transports.

class LocatorSeq
Declares IDL sequence < com.rti.dds.infrastructure.Locator t ( p. 1150)
>.

class ProductVersion t
<<eXtension>> (p. 278) Type used to represent the current version of RTI
Connext.

class ProtocolVersion t
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

158

Module Documentation
<<eXtension>> (p. 278) Type used to represent the version of the RTPS
protocol.

class VendorId t
<<eXtension>> (p. 278) Type used to represent the vendor of the service
implementing the RTPS protocol.

class BuiltinTopicKey t
The key type of the built-in topic ( p. 359) types.

6.73.1

Detailed Description

Built-in objects created by RTI Connext but accessible to the application.


RTI Connext must discover and keep track of the remote entities, such as new
participants in the domain. This information may also be important to the
application, which may want to react to this discovery, or else access it on
demand.
A
set
of
built-in
topics
and
corresponding
com.rti.dds.subscription.DataReader (p. 487) objects are introduced
to be used by the application to access these discovery information.
The information can be accessed as if it was normal application data. This
allows the application to know when there are any changes in those values by means of the com.rti.dds.infrastructure.Listener (p. 1130) or the
com.rti.dds.infrastructure.Condition (p. 464) mechanisms.
The
built-in
data-readers
all
belong
to
a
built-in
com.rti.dds.subscription.Subscriber (p. 1476), which can be retrieved by
using the method com.rti.dds.domain.DomainParticipant.get builtin subscriber (p. 711). The built-in com.rti.dds.subscription.DataReader
(p. 487)
objects
can
be
retrieved
by
using
the
operation
com.rti.dds.subscription.Subscriber.lookup datareader
(p. 1488),
with the topic name as a parameter.
Built-in entities have default listener settings as well.
The built-in
com.rti.dds.subscription.Subscriber (p. 1476) and all of its built-in topics
have nil listeners with all statuses appearing in their listener masks (acting
as a NO-OP listener that does not reset communication status). The built-in
DataReaders have null listeners with no statuses in their masks.
The information that is accessible about the remote entities by means of the
built-in topics includes all the QoS policies that apply to the corresponding
remote Entity. This QoS policies appear as normal data fields inside the data
read by means of the built-in Topic. Additional information is provided to
identify the Entity and facilitate the application logic.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.73 Built-in Topics

159

The
built-in
com.rti.dds.subscription.DataReader
(p. 487)
will
not provide data pertaining to entities created from the same
com.rti.dds.domain.DomainParticipant (p. 654) under the assumption that such entities are already known to the application that created
them.
Refer to builtin.ParticipantBuiltinTopicData, builtin.TopicBuiltinTopicData,
builtin.SubscriptionBuiltinTopicData and builtin.PublicationBuiltinTopicData
for a description of all the built-in topics and their contents.
The QoS of the built-in com.rti.dds.subscription.Subscriber (p. 1476) and
com.rti.dds.subscription.DataReader (p. 487) objects is given by the following table:

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

160

Module Documentation

QoS

Value
0-length sequence
com.rti.dds.infrastructure.UserDataQosPolicy
(p. 1694)
0-length sequence
com.rti.dds.infrastructure.TopicDataQosPolicy
(p. 1559)
0-length sequence
com.rti.dds.infrastructure.GroupDataQosPolicy
(p. 1039)

com.rti.dds.infrastructure.DurabilityQosPolicy
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQ
(p. 802)
LOCAL DURABILITY QOS
Does not apply as
com.rti.dds.infrastructure.DurabilityQosPolicyKind
com.rti.dds.infrastructure.DurabilityServiceQosPolicy
(p. 807) is
(p. 810)
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQ
LOCAL DURABILITY QOS
access scope =
com.rti.dds.infrastructure.PresentationQosPolicy
com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeK
(p. 1221)
PRESENTATION QOS
coherent access =
com.rti.dds.infrastructure.false
ordered access =
com.rti.dds.infrastructure.false
Period = infinite
com.rti.dds.infrastructure.DeadlineQosPolicy
(p. 628)
duration = 0
com.rti.dds.infrastructure.LatencyBudgetQosPolicy
(p. 1124)

com.rti.dds.infrastructure.OwnershipQosPolicy
com.rti.dds.infrastructure.OwnershipQosPolicyKind.Ownership
(p. 1199)
OWNERSHIP QOS
value = 0
com.rti.dds.infrastructure.OwnershipStrengthQosPolicy
(p. 1209)
kind =
com.rti.dds.infrastructure.LivelinessQosPolicy
com.rti.dds.infrastructure.LivelinessQosPolicyKind.LivelinessQo
(p. 1140)
LIVELINESS QOS lease duration =
0
minimum separation = 0
com.rti.dds.infrastructure.TimeBasedFilterQosPolicy
(p. 1541)
0-length sequence
com.rti.dds.infrastructure.PartitionQosPolicy
(p. 1217)
Generated on Mon Aug 13 09:02:20 2012
for RTI
kind
= Connext Java API by Doxygen
com.rti.dds.infrastructure.ReliabilityQosPolicy
com.rti.dds.infrastructure.ReliabilityQosPolicyKind.ReliabilityQ
(p. 1324)
RELIABILITY QOS
max blocking time = 100
milliseconds

com.rti.dds.infrastructure.DestinationOrderQosPolicy
com.rti.dds.infrastructure.DestinationOrderQosPolicyKind.Des
(p. 631)
RECEPTION TIMESTAMP -

6.74 Topic Module

6.74

161

Topic Module

Contains
the
com.rti.dds.topic.Topic
(p. 1545),
com.rti.dds.topic.ContentFilteredTopic
(p. 471),
and
com.rti.dds.topic.MultiTopic
(p. 1190)
classes,
the
com.rti.dds.topic.TopicListener (p. 1564) interface, and more generally, all that is needed by an application to define com.rti.dds.topic.Topic
(p. 1545) objects and attach QoS policies to them.

Modules
Topics
com.rti.dds.topic.Topic ( p. 1545) entity and associated elements

User Data Type Support


Defines generic classes and macros to support user data types.

Type Code Support


<<eXtension>> (p. 278) A com.rti.dds.typecode.TypeCode (p. 1611)
is a mechanism for representing a type at runtime. RTI Connext can use type
codes to send type definitions on the network. You will need to understand
this API in order to use the Dynamic Data ( p. 175) capability or to inspect
the type information you receive from remote readers and writers.

Built-in Types
<<eXtension>> (p. 278) RTI Connext provides a set of very simple data
types for you to use with the topics in your application.

Dynamic Data
<<eXtension>> (p. 278) The Dynamic Data API provides a way to interact with arbitrarily complex data types at runtime without the need for code
generation.

6.74.1

Detailed Description

Contains
the
com.rti.dds.topic.Topic
(p. 1545),
com.rti.dds.topic.ContentFilteredTopic
(p. 471),
and
com.rti.dds.topic.MultiTopic
(p. 1190)
classes,
the
com.rti.dds.topic.TopicListener (p. 1564) interface, and more generally, all that is needed by an application to define com.rti.dds.topic.Topic
(p. 1545) objects and attach QoS policies to them.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

162

Module Documentation

6.75

Topics

com.rti.dds.topic.Topic (p. 1545) entity and associated elements

Classes
interface ContentFilter
<<interface>> (p. 279) Interface to be used by a custom filter of a
com.rti.dds.topic.ContentFilteredTopic ( p. 471)

interface ContentFilteredTopic
<<interface>>
(p. 279)
Specialization
of
com.rti.dds.topic.TopicDescription ( p. 1561) that allows for contentbased subscriptions.

class InconsistentTopicStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.INCONSISTENT TOPIC STATUS

interface MultiTopic
[Not supported (optional)] <<interface>> (p. 279) A specialization
of com.rti.dds.topic.TopicDescription ( p. 1561) that allows subscriptions
that combine/filter/rearrange data coming from several topics.

interface Topic
<<interface>> (p. 279) The most basic description of the data to be published and subscribed.

class TopicAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

interface TopicDescription
com.rti.dds.topic.Topic ( p. 1545) entity and associated elements

interface TopicListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for com.rti.dds.topic.Topic ( p. 1545) entities.

class TopicQos
QoS policies supported by a com.rti.dds.topic.Topic ( p. 1545) entity.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.75 Topics

6.75.1

Detailed Description

com.rti.dds.topic.Topic (p. 1545) entity and associated elements

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

163

164

Module Documentation

6.76

User Data Type Support

Defines generic classes and macros to support user data types.

Classes
class InstanceHandle t
Type definition for an instance handle.

class InstanceHandleSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.InstanceHandle t ( p. 1055) > .

interface TypeSupport
<<interface>> (p. 279) An abstract marker interface that has to be specialized for each concrete user data type that will be used by the application.

class Foo
A representative user-defined data type.

class FooTypeSupport
<<interface>> (p. 279) <<generic>> (p. 279) User data type specific interface.

6.76.1

Detailed Description

Defines generic classes and macros to support user data types.


DDS specifies strongly typed interfaces to read and write user data. For each
data class defined by the application, there is a number of specialised classes
that are required to facilitate the type-safe interaction of the application with
RTI Connext.
RTI Connext provides an automatic means to generate all these type-specific
classes with the rtiddsgen (p. 298) utility. The complete set of automatic
classes created for a hypothetical user data type named Foo are shown below.
The macros defined here declare the strongly typed APIs needed to support an
arbitrary user defined data of type Foo.
See also:
rtiddsgen (p. 298)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.77 Type Code Support

6.77

165

Type Code Support

<<eXtension>> ( p. 278) A com.rti.dds.typecode.TypeCode ( p. 1611) is


a mechanism for representing a type at runtime. RTI Connext can use type
codes to send type definitions on the network. You will need to understand this
API in order to use the Dynamic Data (p. 175) capability or to inspect the
type information you receive from remote readers and writers.

Classes
class EnumMember
A description of a member of an enumeration.

class ExtensibilityKind
Type to indicate the extensibility of a type.

class PRIVATE MEMBER


Constant used to indicate that a value type member is private.

class PUBLIC MEMBER


Constant used to indicate that a value type member is public.

class StructMember
A description of a member of a struct.

class TCKind
Enumeration type for com.rti.dds.typecode.TypeCode ( p. 1611) kinds.

class TypeCode
The definition of a particular data type, which you can use to inspect the
name, members, and other properties of types generated with rtiddsgen
( p. 298) or to modify types you define yourself at runtime.

class TypeCodeFactory
A singleton factory for creating, copying, and deleting data type definitions
dynamically.

class UnionMember
A description of a member of a union.

class ValueMember
A description of a member of a value type.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

166

Module Documentation
class VM ABSTRACT
Constant used to indicate that a value type has the abstract modifier.

class VM CUSTOM
Constant used to indicate that a value type has the custom modifier.

class VM NONE
Constant used to indicate that a value type has no modifiers.

class VM TRUNCATABLE
Constant used to indicate that a value type has the truncatable modifier.

Variables
static final ExtensibilityKind FINAL EXTENSIBILITY
Specifies that a type has FINAL extensibility.

static final ExtensibilityKind EXTENSIBLE EXTENSIBILITY


Specifies that a type has EXTENSIBLE extensibility.

static final ExtensibilityKind MUTABLE EXTENSIBILITY


Specifies that a type has MUTABLE extensibility.

6.77.1

Detailed Description

<<eXtension>> ( p. 278) A com.rti.dds.typecode.TypeCode ( p. 1611) is


a mechanism for representing a type at runtime. RTI Connext can use type
codes to send type definitions on the network. You will need to understand this
API in order to use the Dynamic Data (p. 175) capability or to inspect the
type information you receive from remote readers and writers.
Type codes are values that are used to describe arbitrarily complex types at runtime.
Type code values are manipulated via the
com.rti.dds.typecode.TypeCode (p. 1611) class, which has an analogue in
CORBA.
A com.rti.dds.typecode.TypeCode (p. 1611) value consists of a type code
kind (represented by the com.rti.dds.typecode.TCKind (p. 1525) enumeration) and a list of members (that is, fields). These members are recursive: each
one has its own com.rti.dds.typecode.TypeCode (p. 1611), and in the case
of complex types (structures, arrays, and so on), these contained type codes
contain their own members.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.77 Type Code Support

167

There are a number of uses for type codes.


The type code mechanism can be used to unambiguously match type representations.
The
com.rti.dds.typecode.TypeCode.TypeCode.equals method is a more reliable test
than comparing the string type names, requiring equivalent definitions of the
types.

6.77.2

Accessing a Local com.rti.dds.typecode.TypeCode

When generating types with rtiddsgen (p. 298), type codes are enabled
by default. (The -notypecode option can be used to disable generation of
com.rti.dds.typecode.TypeCode (p. 1611) information.) For these types,
a com.rti.dds.typecode.TypeCode (p. 1611) may be accessed via the
FooTypeCode.VALUE member.
This
API
also
includes
support
for
dynamic
creation
of
values,
typically
com.rti.dds.typecode.TypeCode
(p. 1611)
for use with the Dynamic Data (p. 175) API. You can create
a
com.rti.dds.typecode.TypeCode
(p. 1611)
using
the
You will
com.rti.dds.typecode.TypeCodeFactory (p. 1647) class.
construct the com.rti.dds.typecode.TypeCode (p. 1611) recursively, from
the outside in: start with the type codes for primitive types, then compose
them into complex types like arrays, structures, and so on. You will find the
following methods helpful:
com.rti.dds.typecode.TypeCodeFactory.get primitive tc
(p. 1660), which provides the com.rti.dds.typecode.TypeCode
(p. 1611)
instances
corresponding
to
the
primitive
types
(e.g.
com.rti.dds.typecode.TCKind.TK LONG (p. 1527),
com.rti.dds.typecode.TCKind.TK SHORT (p. 1527),
and so
on).
com.rti.dds.typecode.TypeCodeFactory.create string tc (p. 1657)
and
com.rti.dds.typecode.TypeCodeFactory.create wstring tc (p. 1658) create a com.rti.dds.typecode.TypeCode (p. 1611)
representing a text string with a certain bound (i.e. maximum length).
com.rti.dds.typecode.TypeCodeFactory.create array tc (p. 1659)
and com.rti.dds.typecode.TypeCodeFactory.create sequence tc
(p. 1658) create a com.rti.dds.typecode.TypeCode (p. 1611) for a
collection based on the com.rti.dds.typecode.TypeCode (p. 1611) for
its elements.
com.rti.dds.typecode.TypeCodeFactory.create struct tc
(p. 1651), com.rti.dds.typecode.TypeCodeFactory.create value tc
(p. 1652), and com.rti.dds.typecode.TypeCodeFactory.create sparse tc (p. 1653) create a com.rti.dds.typecode.TypeCode
(p. 1611) for a structured type.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

168

Module Documentation

6.77.3

Accessing a Remote com.rti.dds.typecode.TypeCode

In addition to being used locally, RTI Connext can transmit


com.rti.dds.typecode.TypeCode (p. 1611) on the network between
participants. This information can be used to access information about types
used remotely at runtime, for example to be able to publish or subscribe to
topics of arbitrarily types (see Dynamic Data (p. 175)). This functionality is
useful for a generic system monitoring tool like rtiddsspy.
Remote com.rti.dds.typecode.TypeCode (p. 1611) information is shared
during discovery over the publication and subscription built-in topics and
can be accessed using the built-in readers for these topics; see BuiltDiscovered com.rti.dds.typecode.TypeCode
in Topics (p. 157).
(p. 1611) values are not cached by RTI Connext upon receipt and
are therefore not available from the built-in topic data returned by
com.rti.dds.publication.DataWriter.get matched subscription data (p. 571) or com.rti.dds.subscription.DataReader.get matched publication data (p. 502).
The
space
available
locally
to
deserialize
a
discovered
reis
specimote
com.rti.dds.typecode.TypeCode
(p. 1611)
fied
by
the
com.rti.dds.domain.DomainParticipant
(p. 654)s
com.rti.dds.infrastructure.DomainParticipantResourceLimitsQosPolicy.type code max serialized length (p. 792) QoS parameter. To support especially
complex type codes, it may be necessary for you to increase the value of this
parameter.
See also:
com.rti.dds.typecode.TypeCode (p. 1611)
Dynamic Data (p. 175)
rtiddsgen (p. 298)
builtin.SubscriptionBuiltinTopicData
builtin.PublicationBuiltinTopicData

6.77.4

Variable Documentation

6.77.4.1

final ExtensibilityKind FINAL EXTENSIBILITY


[static, inherited]

Specifies that a type has FINAL extensibility.


A type may be final, indicating that the range of its possible values is strictly
defined. In particular, it is not possible to add elements to members of collection
or aggregated types while maintaining type assignability.
The following types are always final:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.77 Type Code Support

169

com.rti.dds.typecode.TCKind.TK ARRAY (p. 1528)


All primitive types

6.77.4.2

final ExtensibilityKind EXTENSIBLE EXTENSIBILITY


[static, inherited]

Specifies that a type has EXTENSIBLE extensibility.


A type may be extensible, indicating that two types, where one contains all of
the elements/members of the other plus additional elements/members appended
to the end, may remain assignable.
6.77.4.3

final ExtensibilityKind MUTABLE EXTENSIBILITY


[static, inherited]

Specifies that a type has MUTABLE extensibility.


[Not supported.]
A type may be mutable, indicating that two types may differ from one another
in the additional, removal, and/or transposition of elements/members while
remaining assignable.
The following types are always mutable:
com.rti.dds.typecode.TCKind.TK SEQUENCE (p. 1528)
com.rti.dds.typecode.TCKind.TK STRING (p. 1528)
com.rti.dds.typecode.TCKind.TK WSTRING (p. 1529)
The support for type mutability in this release is limited to
com.rti.dds.typecode.TCKind.TK SEQUENCE
(p. 1528),
com.rti.dds.typecode.TCKind.TK STRING
(p. 1528),
and
com.rti.dds.typecode.TCKind.TK WSTRING (p. 1529).
Mutability
in
com.rti.dds.typecode.TCKind.TK STRUCT
(p. 1528),
com.rti.dds.typecode.TCKind.TK UNION
(p. 1528),
com.rti.dds.typecode.TCKind.TK VALUE
(p. 1529),
and
com.rti.dds.typecode.TCKind.TK ENUM (p. 1528) is not supported.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

170

Module Documentation

6.78

Built-in Types

<<eXtension>> ( p. 278) RTI Connext provides a set of very simple data


types for you to use with the topics in your application.

Modules
KeyedString Built-in Type
Built-in type consisting of a single character string.

Octets Built-in Type


Built-in type consisting of a variable-length array of opaque bytes.

KeyedOctets Built-in Type


Built-in type consisting of a variable-length array of opaque bytes and a string
that is the key.

6.78.1

Detailed Description

<<eXtension>> ( p. 278) RTI Connext provides a set of very simple data


types for you to use with the topics in your application.
The middleware provides four built-in types:
String: A payload consisting of a single string of characters. This type
has no key.
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString: A payload
consisting of a single string of characters and a second string, the key,
that identifies the instance to which the sample belongs.
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes: A payload consisting of an opaque variable-length array of bytes. This type has no
key.
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes: A payload
consisting of an opaque variable-length array of bytes and a string, the
key, that identifies the instance to which the sample belongs.
The String and com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString
types
are
appropriate
for
simple
text-based
applications.
The
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes
and
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes types are appropriate for applications that perform their own custom data serialization,
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.78 Built-in Types

171

such as legacy applications still in the process of migrating to RTI Connext. In


most cases, string-based or structured data is preferable to opaque data, because the latter cannot be easily visualized in tools or used with content-based
filters (see com.rti.dds.topic.ContentFilteredTopic (p. 471)).
The built-in types are very simple in order to get you up and running as quickly
as possible. If you need a structured data type you can define your own type
with exactly the fields you need in one of two ways:
At compile time, by generating code from an IDL or XML file using the
rtiddsgen (p. 298) utility
At runtime, by using the Dynamic Data (p. 175) API

6.78.2

Managing Memory for Builtin Types

When a sample is written, the DataWriter serializes it and stores the result in
a buffer obtained from a pool of preallocated buffers. In the same way, when
a sample is received, the DataReader deserializes it and stores the result in a
sample coming from a pool of preallocated samples.
For builtin types, the maximum size of the buffers/samples and depends on the
nature of the application using the builtin type.
You can configure the maximum size of the builtin types
on
a
per-DataWriter
and
per-DataReader
basis
using
the
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236) in DataWriters,
DataReaders or Participants.
The following table lists the supported builtin type properties to configure memory allocation. When the properties are defined in the DomainParticipant, they
are applicable to all DataWriters and DataReaders belonging to the DomainParticipant unless they are overwrittem in the DataWriters and DataReaders.

The previous properties must be set consistently with respect to the corresponding .max size properties that set the maximum size of the builtin types in the
typecode.

6.78.3

Typecodes for Builtin Types

The typecodes associated with the builtin types are generated from the following
IDL type definitions:
module DDS {
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

172

Module Documentation
struct String {
string value;
};
struct KeyedString {
string key;
string value;
};
struct Octets {
sequence<octet> value;
};
struct KeyedOctets {
string key;
sequence<octet> value;
};

};

The maximum size of the strings and sequences that will be included in the type
code definitions can be configured on a per-DomainParticipant-basis by using
the properties in following table.

For more information about the built-in types, including how to control memory usage and maximum lengths, please see chapter 3, Data Types and Data
Samples, in the Users Manual.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.78 Built-in Types


Property
dds.builtin type.string.alloc size

dds.builtin type.keyed string.alloc key size

dds.builtin type.keyed string.alloc size

dds.builtin type.octets.alloc size

dds.builtin type.keyed octets.alloc key size

Generated on Mon Aug 13 09:02:20 2012

dds.builtin type.keyed octets.alloc size

173
Description
Maximum size of the strings
published by the
com.rti.dds.type.builtin.StringDataWriter
(p. 1465) or received the
com.rti.dds.type.builtin.StringDataReader
(p. 1462) (includes the
NULL-terminated character).
Default:
dds.builtin type.string.max size if
defined. Otherwise, 1024.
Maximum size of the keys used by
the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDataWriter
or
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDataReader
(includes the NULL-terminated
character).
Default: dds.builtin type.keyed string.max key size if defined.
Otherwise, 1024.
Maximum size of the strings
published by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDataWriter
or received by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDataReader
(includes the NULL-terminated
character).
Default: dds.builtin type.keyed string.max size if defined.
Otherwise, 1024.
Maximum size of the octet
sequences published the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.BytesDataWriter
or received by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.BytesDataReader.
Default:
dds.builtin type.octets.max size if
defined. Otherwise, 2048.
Maximum size of the key published by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDataWriter
or received by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDataReader
(includes the NULL-terminated
character).
Default: dds.builtin type.keyed size
if by
defined.
for octets.max
RTI Connextkey
Java
API
Doxygen
Otherwise, 1024.
Maximum size of the octets
sequences published by a
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDataWriter
or received by a
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDataReader.
Default: dds.builtin type.keyed -

174

Module Documentation

Property
dds.builtin type.string.max size

dds.builtin type.keyed string.max key size

dds.builtin type.keyed string.max size

dds.builtin type.octets.max size

dds.builtin type.keyed octets.max key size

dds.builtin type.keyed octets.max size

Description
Maximum size of the strings
published by the StringDataWriters
and received by the
StringDataReaders belonging to a
DomainParticipant (includes the
NULL-terminated character).
Default: 1024.
Maximum size of the keys used by
the KeyedStringDataWriters and
KeyedStringDataReaders belonging
to a DomainParticipant (includes
the NULL-terminated character).
Default: 1024.
Maximum size of the strings
published by the
KeyedStringDataWriters and
received by the
KeyedStringDataReaders belonging
to a DomainParticipant using the
builtin type (includes the
NULL-terminated character).
Default: 1024
Maximum size of the octet
sequences published by the
OctetsDataWriters and received by
the OctetsDataReader belonging to
a DomainParticipant.
Default: 2048
Maximum size of the keys used by
the KeyedOctetsStringDataWriters
and KeyedOctetsStringDataReaders
belonging to a DomainParticipant
(includes the NULL-terminated
character).
Default: 1024.
Maximum size of the octet
sequences published by the
KeyedOctetsDataWriters and
received by the
KeyedOctetsDataReaders belonging
to a DomainParticipant.
Default: 2048

Table 6.4: Properties for Allocating Size of Builtin Types, per DomainParticipant
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.79 Dynamic Data

6.79

175

Dynamic Data

<<eXtension>> ( p. 278) The Dynamic Data API provides a way to interact with arbitrarily complex data types at runtime without the need for code
generation.

Classes
class DynamicData
A sample of any complex data type, which can be inspected and manipulated
reflectively.

class DynamicDataInfo
A descriptor for a com.rti.dds.dynamicdata.DynamicData ( p. 817) object.

class DynamicDataMemberInfo
A descriptor for a single member (i.e. field) of dynamically defined data type.

class DynamicDataProperty t
A
collection
of
attributes
used
to
com.rti.dds.dynamicdata.DynamicData ( p. 817) objects.

configure

class DynamicDataReader
Reads
(subscribes
to)
objects
com.rti.dds.dynamicdata.DynamicData ( p. 817).

of

type

class DynamicDataSeq
An ordered collection
( p. 817) elements.

of

com.rti.dds.dynamicdata.DynamicData

class DynamicDataTypeProperty t
A
collection
of
attributes
used
to
com.rti.dds.dynamicdata.DynamicData ( p. 817) objects.

configure

class DynamicDataTypeSerializationProperty t
Properties that govern how data of a certain type will be serialized on the
network.

class DynamicDataTypeSupport
A factory for registering a dynamically defined type and creating
com.rti.dds.dynamicdata.DynamicData ( p. 817) objects.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

176

Module Documentation
class DynamicDataWriter
Writes (publishes) objects of type com.rti.dds.dynamicdata.DynamicData
( p. 817).

Functions
DynamicDataInfo ()
A descriptor for a com.rti.dds.dynamicdata.DynamicData ( p. 817) object.

DynamicDataInfo (int member count, int stored size, boolean is optimized storage)
A descriptor for a com.rti.dds.dynamicdata.DynamicData ( p. 817) object.

DynamicDataMemberInfo ()
A descriptor for a single member (i.e. field) of dynamically defined data type.

DynamicDataMemberInfo (int member id, String member name,


boolean member exists, TCKind member kind, int representation count,
int element count, TCKind element kind)
A descriptor for a single member (i.e. field) of dynamically defined data type.

Variables
static final DynamicDataProperty t PROPERTY DEFAULT
Sentinel
constant
indicating
default
values
com.rti.dds.dynamicdata.DynamicDataProperty t ( p. 890).

static final
DEFAULT

DynamicDataTypeProperty t

TYPE PROPERTY -

Sentinel
constant
indicating
default
values
com.rti.dds.dynamicdata.DynamicDataTypeProperty t ( p. 897).

6.79.1

for

for

Detailed Description

<<eXtension>> ( p. 278) The Dynamic Data API provides a way to interact with arbitrarily complex data types at runtime without the need for code
generation.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.79 Dynamic Data

177

This API allows you to define new data types, modify existing data types, and
interact reflectively with samples. To use it, you will take the following steps:
1. Obtain a com.rti.dds.typecode.TypeCode (p. 1611) (see Type Code
Support (p. 165)) that defines the type definition you want to use.
A com.rti.dds.typecode.TypeCode (p. 1611) includes a types kind
(com.rti.dds.typecode.TCKind (p. 1525)), name, and members (that
is, fields). You can create your own com.rti.dds.typecode.TypeCode
(p. 1611) using the com.rti.dds.typecode.TypeCodeFactory (p. 1647) class
see, for example, the com.rti.dds.typecode.TypeCodeFactory.create struct tc (p. 1651) method.
Alternatively, you can use a remote
com.rti.dds.typecode.TypeCode (p. 1611) that you discovered on the network (see Built-in Topics (p. 157)) or one generated by rtiddsgen (p. 298).
2.
Wrap the com.rti.dds.typecode.TypeCode (p. 1611) in a
com.rti.dds.dynamicdata.DynamicDataTypeSupport (p. 901) object.

See the constructor com.rti.dds.dynamicdata.DynamicDataTypeSupport.DynamicDataTypeSupport.DynamicDataTy


This
object
lets
you
connect
the
type
definition
to
a
com.rti.dds.domain.DomainParticipant (p. 654) and manage data
samples (of type com.rti.dds.dynamicdata.DynamicData (p. 817)).
3. Register the com.rti.dds.dynamicdata.DynamicDataTypeSupport
(p. 901) with one or more domain participants.
See
com.rti.dds.dynamicdata.DynamicDataTypeSupport.register type (p. 904). This action associates the data type with a logical name that you
can use to create topics. (Starting with this step, working with a dynamically
defined data type is almost exactly the same as working with a generated one.)
4.
Create a com.rti.dds.topic.Topic (p. 1545)
com.rti.dds.domain.DomainParticipant (p. 654).

from

the

Use the name under which you registered your data type see
com.rti.dds.domain.DomainParticipant.create topic (p. 697).
This
com.rti.dds.topic.Topic (p. 1545) is what you will use to produce and consume data.
5. Create a com.rti.dds.dynamicdata.DynamicDataWriter (p. 907)
and/or com.rti.dds.dynamicdata.DynamicDataReader (p. 892).
These
objects
will
produce
and/or
consume
data
(of
type
com.rti.dds.dynamicdata.DynamicData
(p. 817))
on
the
com.rti.dds.topic.Topic (p. 1545).
You can create these objects directly from the com.rti.dds.domain.DomainParticipant (p. 654) see
com.rti.dds.domain.DomainParticipant.create datawriter (p. 688) and
com.rti.dds.domain.DomainParticipant.create datareader
(p. 693)
or by first creating intermediate com.rti.dds.publication.Publisher
(p. 1262) and com.rti.dds.subscription.Subscriber (p. 1476) objects see
com.rti.dds.domain.DomainParticipant.create publisher (p. 683) and
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

178

Module Documentation

com.rti.dds.domain.DomainParticipant.create subscriber (p. 686).


6. Write and/or read the data of interest.
7. Tear down the objects described above.
You should delete them in the reverse order in which you
created them.
Note that unregistering your data type with
is
opthe
com.rti.dds.domain.DomainParticipant
(p. 654)
tional;
all
types
are
automatically
unregistered
when
the
com.rti.dds.domain.DomainParticipant (p. 654) itself is deleted.

6.79.2

Function Documentation

6.79.2.1

DynamicDataInfo () [inherited]

A descriptor for a com.rti.dds.dynamicdata.DynamicData (p. 817) object.


See also:
com.rti.dds.dynamicdata.DynamicData.get info (p. 833)

6.79.2.2

DynamicDataInfo (int member count, int stored size,


boolean is optimized storage) [inherited]

A descriptor for a com.rti.dds.dynamicdata.DynamicData (p. 817) object.


See also:
com.rti.dds.dynamicdata.DynamicData.get info (p. 833)

6.79.2.3

DynamicDataMemberInfo () [inherited]

A descriptor for a single member (i.e. field) of dynamically defined data type.
See also:
com.rti.dds.dynamicdata.DynamicData.get member info (p. 840)

6.79.2.4

DynamicDataMemberInfo (int member id, String


member name, boolean member exists, TCKind
member kind, int representation count, int element count,
TCKind element kind) [inherited]

A descriptor for a single member (i.e. field) of dynamically defined data type.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.79 Dynamic Data

179

See also:
com.rti.dds.dynamicdata.DynamicData.get member info (p. 840)

6.79.3

Variable Documentation

6.79.3.1

final DynamicDataProperty t PROPERTY DEFAULT


[static, inherited]

Sentinel
constant
indicating
default
values
com.rti.dds.dynamicdata.DynamicDataProperty t (p. 890).

for

Pass this object instead of your own com.rti.dds.dynamicdata.DynamicDataProperty t (p. 890) object to use the default property values:
DynamicData sample = new DynamicData(
myTypeCode,
DynamicData.DYNAMIC_DATA_PROPERTY_DEFAULT);

See also:
com.rti.dds.dynamicdata.DynamicDataProperty t (p. 890)

6.79.3.2

final DynamicDataTypeProperty t
TYPE PROPERTY DEFAULT [static, inherited]

Sentinel
constant
indicating
default
values
com.rti.dds.dynamicdata.DynamicDataTypeProperty t (p. 897).

for

Pass this object instead of your own com.rti.dds.dynamicdata.DynamicDataTypeProperty t (p. 897) object to use the default property values:
DynamicDataTypeSupport support = new DynamicDataTypeSupport(
myTypeCode,
DynamicDataTypeSupport.DYNAMIC_DATA_TYPE_PROPERTY_DEFAULT);

See also:
com.rti.dds.dynamicdata.DynamicDataTypeProperty t (p. 897)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

180

Module Documentation

6.80

Publication Module

Contains
the
com.rti.dds.publication.FlowController
com.rti.dds.publication.Publisher
(p. 1262),
and
(p. 964),
com.rti.dds.publication.DataWriter (p. 557) classes as well as
the
com.rti.dds.publication.PublisherListener
(p. 1289)
and
com.rti.dds.publication.DataWriterListener (p. 586) interfaces, and
more generally, all that is needed on the publication side.

Modules
Publishers
com.rti.dds.publication.Publisher ( p. 1262) entity and associated elements

Data Writers
com.rti.dds.publication.DataWriter ( p. 557) entity and associated elements

Flow Controllers
<<eXtension>> (p. 278) com.rti.dds.publication.FlowController
( p. 964) and associated elements

6.80.1

Detailed Description

Contains
the
com.rti.dds.publication.FlowController
com.rti.dds.publication.Publisher
(p. 1262),
and
(p. 964),
com.rti.dds.publication.DataWriter (p. 557) classes as well as
the
com.rti.dds.publication.PublisherListener
(p. 1289)
and
com.rti.dds.publication.DataWriterListener (p. 586) interfaces, and
more generally, all that is needed on the publication side.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.81 Publishers

6.81

181

Publishers

com.rti.dds.publication.Publisher (p. 1262) entity and associated elements

Classes
interface Publisher
<<interface>> (p. 279) A publisher is the object responsible for the actual
dissemination of publications.

class PublisherAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

interface PublisherListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for com.rti.dds.publication.Publisher ( p. 1262) status.

class PublisherQos
QoS policies supported by a com.rti.dds.publication.Publisher ( p. 1262)
entity.

class PublisherSeq
Declares IDL sequence < com.rti.dds.publication.Publisher ( p. 1262) >
.

Variables
static final DataWriterQos DATAWRITER QOS DEFAULT
Special value for creating com.rti.dds.publication.DataWriter ( p. 557)
with default QoS.

static final DataWriterQos DATAWRITER QOS USE TOPIC QOS


= new DataWriterQos()
Special
value
for
creating
com.rti.dds.publication.DataWriter
( p. 557)
with
a
combination
of
the
default
com.rti.dds.publication.DataWriterQos
( p. 610)
and
the
com.rti.dds.topic.TopicQos ( p. 1566).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

182

Module Documentation

6.81.1

Detailed Description

com.rti.dds.publication.Publisher (p. 1262) entity and associated elements

6.81.2

Variable Documentation

6.81.2.1

final DataWriterQos DATAWRITER QOS DEFAULT


[static, inherited]

Initial value:
new DataWriterQos()

Special value for creating com.rti.dds.publication.DataWriter (p. 557) with


default QoS.
When
used
in
com.rti.dds.publication.Publisher.create datawriter (p. 1269), this special value is used to indicate that the
com.rti.dds.publication.DataWriter (p. 557) should be created with
the default com.rti.dds.publication.DataWriter (p. 557) QoS by means of
the operation get default datawriter qos and using the resulting QoS to create
the com.rti.dds.publication.DataWriter (p. 557).
When
used
in
com.rti.dds.publication.Publisher.set default datawriter qos (p. 1267), this special value is used to indicate that the
default QoS should be reset back to the initial value that would be used if the
com.rti.dds.publication.Publisher.set default datawriter qos (p. 1267)
operation had never been called.
When
used
in
com.rti.dds.publication.DataWriter.set qos
(p. 562), this special value is used to indicate that the QoS of the
com.rti.dds.publication.DataWriter (p. 557) should be changed to
match the current defualt QoS set in the com.rti.dds.publication.Publisher
(p. 1262) that the com.rti.dds.publication.DataWriter (p. 557) belongs to.
Note:
You cannot use this value to get the default QoS
values
for
a
DataWriter
(p. 557);
for
this
purpose,
use
com.rti.dds.domain.DomainParticipant.get default datawriter qos
(p. 673).
See also:
com.rti.dds.publication.Publisher.create datawriter (p. 1269)
com.rti.dds.publication.Publisher.set default datawriter qos
(p. 1267)
com.rti.dds.publication.DataWriter.set qos (p. 562)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.81 Publishers
6.81.2.2

183

final DataWriterQos DATAWRITER QOS USE TOPIC QOS = new DataWriterQos() [static,
inherited]

Special value for creating com.rti.dds.publication.DataWriter (p. 557)


with a combination of the default com.rti.dds.publication.DataWriterQos
(p. 610) and the com.rti.dds.topic.TopicQos (p. 1566).
The use of this value is equivalent to the application obtaining the
default com.rti.dds.publication.DataWriterQos (p. 610) and the
com.rti.dds.topic.TopicQos (p. 1566) (by means of the operation
com.rti.dds.topic.Topic.get qos (p. 1548)) and then combining these
two QoS using the operation com.rti.dds.publication.Publisher.copy from topic qos (p. 1283) whereby any policy that is set on the
com.rti.dds.topic.TopicQos (p. 1566) overrides the corresponding policy
on the default QoS. The resulting QoS is then applied to the creation of the
com.rti.dds.publication.DataWriter (p. 557).
This value should only be used in com.rti.dds.publication.Publisher.create datawriter (p. 1269).
See also:
com.rti.dds.publication.Publisher.create datawriter (p. 1269)
com.rti.dds.publication.Publisher.get default datawriter qos
(p. 1266)
com.rti.dds.topic.Topic.get qos (p. 1548)
com.rti.dds.publication.Publisher.copy from topic qos (p. 1283)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

184

Module Documentation

6.82

Data Writers

com.rti.dds.publication.DataWriter (p. 557) entity and associated elements

Classes
class AcknowledgmentInfo
Information about an application-level acknowledged sample.

interface DataWriter
<<interface>> (p. 279) Allows an application to set the value of the data
to be published under a given com.rti.dds.topic.Topic ( p. 1545).

class DataWriterAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods or functions.)

class DataWriterCacheStatus
<<eXtension>> (p. 278) The status of the writers cache.

interface DataWriterListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for writer status.

class DataWriterProtocolStatus
<<eXtension>> (p. 278) The status of a writers internal protocol related
metrics, like the number of samples pushed, pulled, filtered; and status of
wire protocol traffic.

class DataWriterQos
QoS policies supported by a com.rti.dds.publication.DataWriter ( p. 557)
entity.

class LivelinessLostStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.LIVELINESS LOST STATUS

class OfferedDeadlineMissedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED DEADLINE MISSED STATUS

class OfferedIncompatibleQosStatus
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.82 Data Writers

185

com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED INCOMPATIBLE QOS STATUS

class PublicationMatchedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.PUBLICATION MATCHED STATUS

class ReliableReaderActivityChangedStatus
<<eXtension>> (p. 278) Describes the activity (i.e. are acknowledgements
forthcoming) of reliable readers matched to a reliable writer.

class ReliableWriterCacheChangedStatus
<<eXtension>> (p. 278) A summary of the state of a data writers cache
of unacknowledged samples written.

class ReliableWriterCacheEventCount
<<eXtension>> (p. 278) The number of times the number of unacknowledged samples in the cache of a reliable writer hit a certain well-defined
threshold.

class FooDataWriter
<<interface>> (p. 279) <<generic>> (p. 279) User data type specific
data writer.

6.82.1

Detailed Description

com.rti.dds.publication.DataWriter (p. 557) entity and associated elements

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

186

Module Documentation

6.83

Flow Controllers

com.rti.dds.publication.FlowController
<<eXtension>>
( p. 278)
(p. 964) and associated elements

Classes
interface FlowController
<<interface>> (p. 279) A flow controller is the object responsible for
shaping the network traffic by determining when attached asynchronous
com.rti.dds.publication.DataWriter ( p. 557) instances are allowed to
write data.

class FlowControllerProperty t
Determines
the
flow
control
characteristics
com.rti.dds.publication.FlowController ( p. 964).

of

the

class FlowControllerSchedulingPolicy
Kinds of flow controller scheduling policy.

class FlowControllerTokenBucketProperty t
com.rti.dds.publication.FlowController ( p. 964) uses the popular token
bucket approach for open loop network flow control. The flow control characteristics are determined by the token bucket properties.

Variables
static final String DEFAULT FLOW CONTROLLER NAME
[default] Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow controller name ( p. 1297) that refers to the built-in default flow controller.

static
final
NAME

String

FIXED RATE FLOW CONTROLLER -

Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow controller name ( p. 1297) that refers to the built-in fixed-rate flow
controller.

static final
NAME

String

ON DEMAND FLOW CONTROLLER -

Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow controller name ( p. 1297) that refers to the built-in on-demand flow
controller.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.83 Flow Controllers

6.83.1

187

Detailed Description

<<eXtension>>
( p. 278)
com.rti.dds.publication.FlowController
(p. 964) and associated elements
com.rti.dds.publication.FlowController (p. 964) provides the network traffic shaping capability to asynchronous com.rti.dds.publication.DataWriter
(p. 557) instances. For use cases and advantages of publishing asnychronously,
please refer to com.rti.dds.infrastructure.PublishModeQosPolicy
(p. 1295) of com.rti.dds.publication.DataWriterQos (p. 610).
See also:
com.rti.dds.infrastructure.PublishModeQosPolicy (p. 1295)
com.rti.dds.publication.DataWriterQos.publish mode (p. 615)
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
(p. 397)

6.83.2

Variable Documentation

6.83.2.1

final String DEFAULT FLOW CONTROLLER NAME


[static, inherited]

[default] Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow controller name (p. 1297) that refers to the built-in default flow controller.
RTI Connext provides several built-in com.rti.dds.publication.FlowController
(p. 964) for use with an asynchronous com.rti.dds.publication.DataWriter
(p. 557). The user can choose to use the built-in flow controllers and optionally
modify their properties or can create a custom flow controller.
By default, flow control is disabled.
That is, the built-in
com.rti.dds.publication.FlowController.DEFAULT FLOW CONTROLLER NAME (p. 187) flow controller does not apply any
flow control. Instead, it allows data to be sent asynchronously as soon as it is
written by the com.rti.dds.publication.DataWriter (p. 557).
Essentially,
this
is
equivalent
to
a
user-created
com.rti.dds.publication.FlowController (p. 964) with the following
com.rti.dds.publication.FlowControllerProperty t (p. 968) settings:
- com.rti.dds.publication.FlowControllerProperty t.scheduling policy
(p. 969) = com.rti.dds.publication.FlowControllerSchedulingPolicy.FlowControllerSchedulingPolicy.EDF FLOW CONTROLLER SCHED POLICY
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) max tokens = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

188

Module Documentation

com.rti.dds.publication.FlowControllerProperty (p. 969)


tokens added per period
=
t.token bucket
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) tokens leaked per period = 0
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) period = 1 second
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
bytes per token
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
See also:
com.rti.dds.publication.Publisher.create datawriter (p. 1269)
com.rti.dds.domain.DomainParticipant.lookup flowcontroller
(p. 712)
com.rti.dds.publication.FlowController.set property (p. 965)
com.rti.dds.infrastructure.PublishModeQosPolicy (p. 1295)
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
(p. 397)

6.83.2.2

final String FIXED RATE FLOW CONTROLLER NAME


[static, inherited]

Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow controller name (p. 1297) that refers to the built-in fixed-rate flow controller.
RTI
Connext
provides
several
builtin
(p. 352)
com.rti.dds.publication.FlowController (p. 964) for use with an asynchronous com.rti.dds.publication.DataWriter (p. 557).
The user can
choose to use the built-in flow controllers and optionally modify their
properties or can create a custom flow controller.
The built-in com.rti.dds.publication.FlowController.FIXED RATE FLOW CONTROLLER NAME (p. 188) flow controller shapes the network
traffic by allowing data to be sent only once every second. Any accumulated
samples destined for the same destination are coalesced into as few network
packets as possible.
Essentially,
this
is
equivalent
to
a
user-created
com.rti.dds.publication.FlowController (p. 964) with the following
com.rti.dds.publication.FlowControllerProperty t (p. 968) settings:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.83 Flow Controllers

189

- com.rti.dds.publication.FlowControllerProperty t.scheduling policy


(p. 969) = com.rti.dds.publication.FlowControllerSchedulingPolicy.FlowControllerSchedulingPolicy.EDF FLOW CONTROLLER SCHED POLICY
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) max tokens = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
tokens added per period
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
tokens leaked per period
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) period = 1 second
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
bytes per token
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
See also:
com.rti.dds.publication.Publisher.create datawriter (p. 1269)
com.rti.dds.domain.DomainParticipant.lookup flowcontroller
(p. 712)
com.rti.dds.publication.FlowController.set property (p. 965)
com.rti.dds.infrastructure.PublishModeQosPolicy (p. 1295)
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
(p. 397)

6.83.2.3

final String ON DEMAND FLOW CONTROLLER NAME [static, inherited]

Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow controller name (p. 1297) that refers to the built-in on-demand flow controller.
RTI
Connext
provides
several
builtin
(p. 352)
com.rti.dds.publication.FlowController (p. 964) for use with an asynchronous com.rti.dds.publication.DataWriter (p. 557).
The user can
choose to use the built-in flow controllers and optionally modify their
properties or can create a custom flow controller.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

190

Module Documentation

The built-in com.rti.dds.publication.FlowController.ON DEMAND FLOW CONTROLLER NAME (p. 189) allows data to be sent only
when the user calls com.rti.dds.publication.FlowController.trigger flow
(p. 967). With each trigger, all accumulated data since the previous trigger is sent (across all com.rti.dds.publication.Publisher (p. 1262) or
com.rti.dds.publication.DataWriter (p. 557) instances). In other words,
the network traffic shape is fully controlled by the user. Any accumulated samples destined for the same destination are coalesced into as few network packets
as possible.
This external trigger source is ideal for users who want to implement some
form of closed-loop flow control or who want to only put data on the
wire every so many samples (e.g.
with the number of samples based
on com.rti.ndds.transport.Transport.Property t.gather send buffer count max (p. 1574)).
Essentially,
this
is
equivalent
to
a
user-created
com.rti.dds.publication.FlowController (p. 964) with the following
com.rti.dds.publication.FlowControllerProperty t (p. 968) settings:
- com.rti.dds.publication.FlowControllerProperty t.scheduling policy
(p. 969) = com.rti.dds.publication.FlowControllerSchedulingPolicy.FlowControllerSchedulingPolicy.EDF
FLOW CONTROLLER SCHED POLICY
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) max tokens = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
tokens added per period
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
tokens leaked per period
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969) period = com.rti.dds.infrastructure.Duration t.INFINITE
com.rti.dds.publication.FlowControllerProperty t.token bucket
(p. 969)
bytes per token
=
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
See also:
com.rti.dds.publication.Publisher.create datawriter (p. 1269)
com.rti.dds.domain.DomainParticipant.lookup flowcontroller
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.83 Flow Controllers


(p. 712)
com.rti.dds.publication.FlowController.trigger flow (p. 967)
com.rti.dds.publication.FlowController.set property (p. 965)
com.rti.dds.infrastructure.PublishModeQosPolicy (p. 1295)
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
(p. 397)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

191

192

Module Documentation

6.84

Subscription Module

Contains
the
com.rti.dds.subscription.Subscriber
(p. 1476),
com.rti.dds.subscription.DataReader
(p. 487),
and
com.rti.dds.subscription.ReadCondition
(p. 1313),
com.rti.dds.subscription.QueryCondition (p. 1311) classes, as well
as the com.rti.dds.subscription.SubscriberListener (p. 1503) and
com.rti.dds.subscription.DataReaderListener (p. 518) interfaces, and
more generally, all that is needed on the subscription side.

Modules
Subscribers
com.rti.dds.subscription.Subscriber ( p. 1476) entity and associated elements

DataReaders
com.rti.dds.subscription.DataReader ( p. 487) entity and associated elements

Data Samples
com.rti.dds.subscription.SampleInfo
com.rti.dds.subscription.SampleStateKind
com.rti.dds.subscription.ViewStateKind
com.rti.dds.subscription.InstanceStateKind
ated elements

6.84.1

( p. 1061)

( p. 1398),
( p. 1426),
( p. 1703),
and associ-

Detailed Description

Contains
the
com.rti.dds.subscription.Subscriber
(p. 1476),
com.rti.dds.subscription.DataReader
(p. 487),
com.rti.dds.subscription.ReadCondition
(p. 1313),
and
com.rti.dds.subscription.QueryCondition (p. 1311) classes, as well
as the com.rti.dds.subscription.SubscriberListener (p. 1503) and
com.rti.dds.subscription.DataReaderListener (p. 518) interfaces, and
more generally, all that is needed on the subscription side.

6.84.2

Access to data samples

Data is
erations
jects:

made available to the application by the following opon


com.rti.dds.subscription.DataReader
(p. 487)
obcom.rti.ndds.example.FooDataReader.read
(p. 981),

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.84 Subscription Module


com.rti.ndds.example.FooDataReader.read w condition
com.rti.ndds.example.FooDataReader.take
(p. 990),
com.rti.ndds.example.FooDataReader.take w condition
and the other variants of read() and take().

193

(p. 983),
(p. 991),

The general semantics of the read() operation is that the application only gets
access to the corresponding data (i.e. a precise instance value); the data remains
the responsibility of RTI Connext and can be read again.
The semantics of the take() operations is that the application takes full responsibility for the data; that data will no longer be available locally to RTI
Connext. Consequently, it is possible to access the same information multiple
times only if all previous accesses were read() operations, not take().
Each of these operations returns a collection of Data values and associated
com.rti.dds.subscription.SampleInfo (p. 1398) objects. Each data value
represents an atom of data information (i.e., a value for one instance). This
collection may contain samples related to the same or different instances (identified by the key). Multiple samples can refer to the same instance if the settings
of the HISTORY (p. 79) QoS allow for it.
To return the memory back to the middleware, every read() or take()
that retrieves a sequence of samples must be followed with a call to
com.rti.ndds.example.FooDataReader.return loan (p. 1008).
See also:
Interpretation of the SampleInfo (p. 1400)

6.84.2.1

Data access patterns

The application accesses data by means of the operations read or


take on the com.rti.dds.subscription.DataReader (p. 487). These operations return an ordered collection of DataSamples consisting of a
com.rti.dds.subscription.SampleInfo (p. 1398) part and a Data part.
The way RTI Connext builds the collection depends on QoS policies set on the com.rti.dds.subscription.DataReader (p. 487) and
com.rti.dds.subscription.Subscriber (p. 1476), as well as the source timestamp of the samples, and the parameters passed to the read() / take()
operations, namely:
the
desired
sample
states
(any
combination
com.rti.dds.subscription.SampleStateKind (p. 1426))

of

the
desired
view
states
(any
combination
com.rti.dds.subscription.ViewStateKind (p. 1703))

of

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

194

Module Documentation
the
desired
instance
states
(any
combination
com.rti.dds.subscription.InstanceStateKind (p. 1061))

of

The read() and take() operations are non-blocking and just deliver what is
currently available that matches the specified states.
The read w condition() and take w condition() operations take a
com.rti.dds.subscription.ReadCondition (p. 1313) object as a parameter instead of sample, view or instance states.
The behaviour is
that the samples returned will only be those for which the condition is com.rti.dds.infrastructure.true.
These operations, in conjunction
with com.rti.dds.subscription.ReadCondition (p. 1313) objects and a
com.rti.dds.infrastructure.WaitSet (p. 1709), allow performing waiting
reads.
Once the data samples are available to the data readers, they can be read or
taken by the application. The basic rule is that the application may do this in
any order it wishes. This approach is very flexible and allows the application
ultimate control.
To access data coherently, or in order, the PRESENTATION (p. 90) QoS
must be set properly.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.85 Subscribers

6.85

195

Subscribers

com.rti.dds.subscription.Subscriber (p. 1476) entity and associated elements

Classes
interface Subscriber
<<interface>> (p. 279) A subscriber is the object responsible for actually
receiving data from a subscription ( p. 353).

class SubscriberAdapter
A listener adapter in the spirit of the Java AWT listener adapters. (The
Adapter provides empty implementations for the listener methods).

interface SubscriberListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for status about a subscriber.

class SubscriberQos
QoS policies supported
( p. 1476) entity.

by

com.rti.dds.subscription.Subscriber

class SubscriberSeq
Declares IDL sequence < com.rti.dds.subscription.Subscriber ( p. 1476)
>.

Variables
static final DataReaderQos DATAREADER QOS DEFAULT
Special value for creating data reader with default QoS.

static final DataReaderQos DATAREADER QOS USE TOPIC QOS = new DataReaderQos()
Special value for creating com.rti.dds.subscription.DataReader
( p. 487)
with
a
combination
of
the
default
com.rti.dds.subscription.DataReaderQos
( p. 536)
and
the
com.rti.dds.topic.TopicQos ( p. 1566).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

196

Module Documentation

6.85.1

Detailed Description

com.rti.dds.subscription.Subscriber (p. 1476) entity and associated elements

6.85.2

Variable Documentation

6.85.2.1

final DataReaderQos DATAREADER QOS DEFAULT


[static, inherited]

Initial value:
new DataReaderQos()

Special value for creating data reader with default QoS.


When
used
in
com.rti.dds.subscription.Subscriber.create datareader (p. 1483), this special value is used to indicate that the
com.rti.dds.subscription.DataReader (p. 487) should be created with
the default com.rti.dds.subscription.DataReader (p. 487) QoS by means
of the operation get default datareader qos and using the resulting QoS to
create the com.rti.dds.subscription.DataReader (p. 487).
When
used
in
com.rti.dds.subscription.Subscriber.set default datareader qos (p. 1481), this special value is used to indicate that the
default QoS should be reset back to the initial value that would be used if
the
com.rti.dds.subscription.Subscriber.set default datareader qos
(p. 1481) operation had never been called.
When
used
in
com.rti.dds.subscription.DataReader.set qos
(p. 495), this special value is used to indicate that the QoS of the
com.rti.dds.subscription.DataReader (p. 487) should be changed to match
the current default QoS set in the com.rti.dds.subscription.Subscriber
(p. 1476) that the com.rti.dds.subscription.DataReader (p. 487) belongs
to.
Note:
You cannot use this value to get the default QoS
values for a DataReader (p. 487);
for this purpose,
use
com.rti.dds.domain.DomainParticipant.get default datareader qos
(p. 675).
See also:
com.rti.dds.subscription.Subscriber.create datareader (p. 1483)
com.rti.dds.subscription.Subscriber.set default datareader qos
(p. 1481)
com.rti.dds.subscription.DataReader.set qos (p. 495)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.85 Subscribers
6.85.2.2

197

final DataReaderQos DATAREADER QOS USE TOPIC QOS = new DataReaderQos() [static,
inherited]

Special
value
for
creating
com.rti.dds.subscription.DataReader
(p. 487)
with
a
combination
of
the
default
and
the
com.rti.dds.subscription.DataReaderQos
(p. 536)
com.rti.dds.topic.TopicQos (p. 1566).
The use of this value is equivalent to the application obtaining the
default com.rti.dds.subscription.DataReaderQos (p. 536) and the
com.rti.dds.topic.TopicQos (p. 1566) (by means of the operation
com.rti.dds.topic.Topic.get qos (p. 1548)) and then combining these two
QoS using the operation com.rti.dds.subscription.Subscriber.copy from topic qos (p. 1499) whereby any policy that is set on the
com.rti.dds.topic.TopicQos (p. 1566) overrides the corresponding policy
on the default QoS. The resulting QoS is then applied to the creation of the
com.rti.dds.subscription.DataReader (p. 487).
This value should only be used in com.rti.dds.subscription.Subscriber.create datareader (p. 1483).
See also:
com.rti.dds.subscription.Subscriber.create datareader (p. 1483)
com.rti.dds.subscription.Subscriber.get default datareader qos
(p. 1480)
com.rti.dds.topic.Topic.get qos (p. 1548)
com.rti.dds.subscription.Subscriber.copy from topic qos (p. 1499)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

198

Module Documentation

6.86

DataReaders

com.rti.dds.subscription.DataReader (p. 487) entity and associated elements

Modules
Read Conditions
com.rti.dds.subscription.ReadCondition ( p. 1313) and associated elements

Query Conditions
com.rti.dds.subscription.QueryCondition ( p. 1311) and associated elements

Classes
interface DataReader
<<interface>> (p. 279) Allows the application to: (1) declare the data it
wishes to receive (i.e. make a subscription ( p. 353)) and (2) access the data
received by the attached com.rti.dds.subscription.Subscriber ( p. 1476).

class DataReaderAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

class DataReaderCacheStatus
<<eXtension>> (p. 278) The status of the readers cache.

interface DataReaderListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for reader status.

class DataReaderProtocolStatus
<<eXtension>> (p. 278) The status of a readers internal protocol related
metrics, like the number of samples received, filtered, rejected; and status of
wire protocol traffic.

class DataReaderQos
QoS policies supported by a com.rti.dds.subscription.DataReader
( p. 487) entity.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.86 DataReaders

199

class DataReaderSeq
Declares IDL sequence < com.rti.dds.subscription.DataReader ( p. 487)
>.

class LivelinessChangedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.LIVELINESS CHANGED STATUS

class RequestedDeadlineMissedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED DEADLINE MISSED STATUS

class RequestedIncompatibleQosStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED INCOMPATIBLE QOS STATUS

class SampleLostStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.SAMPLE LOST STATUS STATUS

class SampleLostStatusKind
Kinds of reasons why a sample was lost.

class SampleRejectedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.SAMPLE REJECTED STATUS

class SampleRejectedStatusKind
Kinds of reasons for rejecting a sample.

class SubscriptionMatchedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.SUBSCRIPTION MATCHED STATUS

class FooDataReader
<<interface>> (p. 279) <<generic>> (p. 279) User data type-specific
data reader.

6.86.1

Detailed Description

com.rti.dds.subscription.DataReader (p. 487) entity and associated elements


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

200

Module Documentation

6.87

Read Conditions

com.rti.dds.subscription.ReadCondition (p. 1313) and associated elements

Classes
interface ReadCondition
<<interface>> (p. 279) Conditions specifically dedicated to read operations
and attached to one com.rti.dds.subscription.DataReader ( p. 487).

6.87.1

Detailed Description

com.rti.dds.subscription.ReadCondition (p. 1313) and associated elements

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.88 Query Conditions

6.88

201

Query Conditions

com.rti.dds.subscription.QueryCondition (p. 1311) and associated elements

Classes
interface QueryCondition
<<interface>>
(p. 279)
These
are
specialised
com.rti.dds.subscription.ReadCondition ( p. 1313) objects that allow the application to also specify a filter on the locally available data.

6.88.1

Detailed Description

com.rti.dds.subscription.QueryCondition (p. 1311) and associated elements

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

202

Module Documentation

6.89

Data Samples

com.rti.dds.subscription.SampleInfo
(p. 1398),
com.rti.dds.subscription.SampleStateKind
(p. 1426),
com.rti.dds.subscription.ViewStateKind
(p. 1703),
com.rti.dds.subscription.InstanceStateKind (p. 1061) and associated
elements

Modules
Sample States
com.rti.dds.subscription.SampleStateKind ( p. 1426) and associated elements

View States
com.rti.dds.subscription.ViewStateKind ( p. 1703) and associated elements

Instance States
com.rti.dds.subscription.InstanceStateKind ( p. 1061) and associated
elements

Classes
class SampleInfo
Information that accompanies each sample that is read or taken.

class SampleInfoSeq
Declares IDL
( p. 1398) > .

6.89.1

sequence

<

com.rti.dds.subscription.SampleInfo

Detailed Description

com.rti.dds.subscription.SampleInfo
(p. 1398),
com.rti.dds.subscription.SampleStateKind
(p. 1426),
com.rti.dds.subscription.ViewStateKind
(p. 1703),
com.rti.dds.subscription.InstanceStateKind (p. 1061) and associated
elements

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.90 Sample States

6.90

203

Sample States

com.rti.dds.subscription.SampleStateKind (p. 1426) and associated elements

Classes
class SampleStateKind
Indicates whether or not a sample has ever been read.

Variables
static final int ANY SAMPLE STATE = 0xffff
Any sample state com.rti.dds.subscription.SampleStateKind.SampleStateKind.READ SAMPLE STATE | com.rti.dds.subscription.SampleStateKind.SampleStateKind.NOT READ SAMPLE STATE.

6.90.1

Detailed Description

com.rti.dds.subscription.SampleStateKind (p. 1426) and associated elements

6.90.2

Variable Documentation

6.90.2.1

final int ANY SAMPLE STATE = 0xffff [static,


inherited]

Any sample state com.rti.dds.subscription.SampleStateKind.SampleStateKind.READ SAMPLE STATE | com.rti.dds.subscription.SampleStateKind.SampleStateKind.NOT READ SAMPLE STATE.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

204

Module Documentation

6.91

View States

com.rti.dds.subscription.ViewStateKind (p. 1703) and associated elements

Classes
class ViewStateKind
Indicates whether or not an instance is new.

Variables
static final int ANY VIEW STATE = 0xffff
Any view state com.rti.dds.subscription.ViewStateKind.ViewStateKind.NEW VIEW STATE | com.rti.dds.subscription.ViewStateKind.ViewStateKind.NOT NEW VIEW STATE.

6.91.1

Detailed Description

com.rti.dds.subscription.ViewStateKind (p. 1703) and associated elements

6.91.2

Variable Documentation

6.91.2.1

final int ANY VIEW STATE = 0xffff [static, inherited]

Any view state com.rti.dds.subscription.ViewStateKind.ViewStateKind.NEW VIEW STATE | com.rti.dds.subscription.ViewStateKind.ViewStateKind.NOT NEW VIEW STATE.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.92 Instance States

6.92

205

Instance States

com.rti.dds.subscription.InstanceStateKind (p. 1061) and associated elements

Classes
class InstanceStateKind
Indicates
is
the
samples
are
from
com.rti.dds.publication.DataWriter ( p. 557) or not.

live

Variables
static final int ANY INSTANCE STATE = 0xffff
Any instance state ALIVE INSTANCE STATE | NOT ALIVE DISPOSED INSTANCE STATE
|
NOT ALIVE NO WRITERS INSTANCE STATE.

static final int NOT ALIVE INSTANCE STATE = 0x006


Not alive instance state NOT ALIVE DISPOSED INSTANCE STATE |
NOT ALIVE NO WRITERS INSTANCE STATE.

6.92.1

Detailed Description

com.rti.dds.subscription.InstanceStateKind (p. 1061) and associated elements

6.92.2

Variable Documentation

6.92.2.1

final int ANY INSTANCE STATE = 0xffff [static,


inherited]

Any instance state ALIVE INSTANCE STATE | NOT ALIVE DISPOSED INSTANCE STATE | NOT ALIVE NO WRITERS INSTANCE STATE.
6.92.2.2

final int NOT ALIVE INSTANCE STATE = 0x006


[static, inherited]

Not alive instance state NOT ALIVE DISPOSED INSTANCE STATE | NOT ALIVE NO WRITERS INSTANCE STATE.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

206

Module Documentation

6.93

Infrastructure Module

Defines the abstract classes and the interfaces that are refined by the other
modules. Contains common definitions such as return codes, status values, and
QoS policies.

Modules
Conditions and WaitSets
com.rti.dds.infrastructure.Condition
( p. 464)
com.rti.dds.infrastructure.WaitSet ( p. 1709) and related items.

and

Time Support
Time and duration types and defines.

Entity Support
com.rti.dds.infrastructure.Entity
( p. 931),
com.rti.dds.infrastructure.Listener ( p. 1130) and related items.

GUID Support
<<eXtension>> (p. 278) GUID type and defines.

Object Support
<<eXtension>> (p. 278) Object related items.

QoS Policies
Quality of Service (QoS) policies.

Return Codes
Types of return codes.

Sequence Number Support


<<eXtension>> (p. 278) Sequence number type and defines.

Status Kinds
Kinds of communication status.

Exception Codes
<<eXtension>> (p. 278) Exception codes.

Sequence Support
The com.rti.dds.infrastructure.com.rti.dds.util.Sequence interface allows you
to work with variable-length collections of homogeneous data.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.93 Infrastructure Module

207

Classes
class Enum
A superclass for all type-safe enumerated types.

6.93.1

Detailed Description

Defines the abstract classes and the interfaces that are refined by the other
modules. Contains common definitions such as return codes, status values, and
QoS policies.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

208

Module Documentation

6.94

Built-in Sequences

Defines sequences of primitive data type.

Classes
class BooleanSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
boolean >.

class ByteSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
byte >.

class CharSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
char >.

class DoubleSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
double >.

class FloatSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
float >.

class IntSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.int >.

class LongDoubleSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.LongDouble >.

class LongSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
long >.

class ShortSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
short >.

class StringSeq
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.94 Built-in Sequences

209

Declares IDL sequence < com.rti.dds.infrastructure.String > .

class WcharSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.char >.

class WstringSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.char >.

6.94.1

Detailed Description

Defines sequences of primitive data type.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

210

Module Documentation

6.95

Multi-channel DataWriters

APIs related to Multi-channel DataWriters.

6.95.1

What is a Multi-channel DataWriter?

A Multi-channel com.rti.dds.publication.DataWriter (p. 557) is a


com.rti.dds.publication.DataWriter (p. 557) that is configured to send
data over multiple multicast addresses, according to some filtering criteria
applied to the data.
To determine which multicast addresses will be used to send the data,
the middleware evaluates a set of filters that are configured for the
Each filter guards a
com.rti.dds.publication.DataWriter (p. 557).
channel (a set of multicast addresses).
Each time a multi-channel
com.rti.dds.publication.DataWriter (p. 557) writes data, the filters are applied. If a filter evaluates to true, the data is sent over that filters associated
channel (set of multicast addresses). We refer to this type of filter as a Channel
Guard filter.

6.95.2

Configuration on the Writer Side

To configure a multi-channel com.rti.dds.publication.DataWriter


(p. 557),
simply define a list of all its channels in the
com.rti.dds.infrastructure.MultiChannelQosPolicy (p. 1187).
The com.rti.dds.infrastructure.MultiChannelQosPolicy (p. 1187) is
propagated along with discovery traffic. The value of this policy is available
in builtin.PublicationBuiltinTopicData.locator filter.

6.95.3

Configuration on the Reader Side

No special changes are required in a subscribing application to get data from a


multichannel com.rti.dds.publication.DataWriter (p. 557). If you want the
com.rti.dds.subscription.DataReader (p. 487) to subscribe to only a subset
of the channels, use a com.rti.dds.topic.ContentFilteredTopic (p. 471).
For more information on Multi-channel DataWriters, refer to the Users
Manual.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.95 Multi-channel DataWriters

6.95.4

Reliability with Multi-Channel DataWriters

6.95.4.1

Reliable Delivery

211

Reliable
delivery
is
only
guaranteed
when
the
com.rti.dds.infrastructure.PresentationQosPolicy.access scope
(p. 1225) is set to com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPolicyAccessSco
PRESENTATION QOS and the filters in com.rti.dds.infrastructure.MultiChannelQosPolicy
(p. 1187) are keyed-only based.
If any of the guard filters are based on non-key fields, RTI Connext only guarantees reception of the most recent data from the MultiChannel DataWriter.

6.95.4.2

Reliable Protocol Considerations

Reliability is maintained on a per-channel basis. Each channel has its


own reliability channel send queue. The size of that queue is limited
by com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max samples
(p. 1351) and/or com.rti.dds.infrastructure.DataWriterResourceLimitsQosPolicy.max batches (p. 624).
The protocol parameters described in com.rti.dds.infrastructure.DataWriterProtocolQosPolicy
(p. 592) are applied per channel, with the following exceptions:
com.rti.dds.infrastructure.RtpsReliableWriterProtocol t.low watermark (p. 1375) and com.rti.dds.infrastructure.RtpsReliableWriterProtocol t.high watermark (p. 1375): The low watermark and high watermark control
the queue levels (in number of samples) that determine when to switch
between regular and fast heartbeat rates. With MultiChannel DataWriters,
high watermark and low watermark refer to the DataWriters queue (not
the reliability channel queue). Therefore, periodic heartbeating cannot be
controlled on a per-channel basis.
Important: With MultiChannel DataWriters, low watermark and high watermark refer to application samples even if batching is enabled. This behavior differs from the one without MultiChannel DataWriters (where low watermark and high watermark refer to batches).
com.rti.dds.infrastructure.RtpsReliableWriterProtocol t.heartbeats per max samples (p. 1379): This field defines the number of heartbeats per send queue. For MultiChannel DataWriters, the
value is applied per channel. However, the send queue size that is used
to calculate the a piggyback heartbeat rate is defined per DataWriter (see
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max samples
(p. 1351))
Important: With MultiChannel DataWriters, heartbeats per max samples
refers to samples even if batching is enabled. This behavior differs from the one
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

212

Module Documentation

without MultiChannels DataWriters (where heartbeats per max samples refers


to batches).

With
batching
and
MultiChannel
DataWriters,
the
size
of
the
DataWriters
send
queue
should
be
configured
using
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max samples
(p. 1351) instead of max batches com.rti.dds.infrastructure.DataWriterResourceLimitsQosPolicy
batches (p. 624) in order to take advantage of heartbeats per max samples.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.96 Pluggable Transports

6.96

213

Pluggable Transports

APIs related to RTI Connext pluggable transports.

Modules
Using Transport Plugins
Configuring transports used by RTI Connext.

Built-in Transport Plugins


Transport plugins delivered with RTI Connext.

6.96.1

Detailed Description

APIs related to RTI Connext pluggable transports.

6.96.2

Overview

RTI Connext has a pluggable transports architecture. The core of RTI Connext is transport agnostic; it does not make any assumptions about the actual
transports used to send and receive messages. Instead, the RTI Connext core
uses an abstract transport API to interact with the transport plugins which
implement that API.
A transport plugin implements the abstract transport API and performs the
actual work of sending and receiving messages over a physical transport. A
collection of builtin plugins (see Built-in Transport Plugins (p. 222)) is
delivered with RTI Connext for commonly used transports. New transport
plugins can easily be created, thus enabling RTI Connext applications to run
over transports that may not even be conceived yet. This is a powerful capability
and that distinguishes RTI Connext from competing middleware approaches.
RTI Connext also provides a set of APIs for installing and configuring transport plugins to be used in an application. So that RTI Connext applications
work out of the box, a subset of the builtin transport plugins is preconfigured
by default (see com.rti.dds.infrastructure.TransportBuiltinQosPolicy
(p. 1580)). You can turn-off some or all of the builtin transport plugins. In
addition, you can configure other transport plugins for use by the application.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

214

Module Documentation

6.96.3

Transport Aliases

In order to use a transport plugin instance in an RTI Connext application, it


must be registered with a com.rti.dds.domain.DomainParticipant (p. 654).
When you register a transport, you specify a sequence of alias strings to
symbolically refer to the transport plugin. The same alias strings can be used
to register more than one transport plugin.
You
can
register
multiple
transport
plugins
with
a
An alias symcom.rti.dds.domain.DomainParticipant (p. 654).
bolically refers to one or more transport plugins registered with the
com.rti.dds.domain.DomainParticipant (p. 654).
Builtin transport
plugin instances can be referred to using preconfigured aliases (see TRANSPORT BUILTIN (p. 119)).
A transport plugins class name is automatically used as an implicit alias. It
can be used to refer to all the transport plugin instances of that class.
You can use aliases to refer to transport plugins, in order to specify:
the
transport
plugins
to
use
for
discovery
(see
com.rti.dds.infrastructure.DiscoveryQosPolicy.enabled transports
(p. 650)),
and
for
com.rti.dds.publication.DataWriter
(p. 557)
and
com.rti.dds.subscription.DataReader
(p. 487)
entities
(see
com.rti.dds.infrastructure.TransportSelectionQosPolicy (p. 1600)).
- the multicast addresses on which to receive discovery messages (see
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650)), and the multicast addresses and ports on which to receive
user data (see com.rti.dds.subscription.DataReaderQos.multicast
(p. 541)).
the
unicast
ports
used
for
user
data
(see
com.rti.dds.infrastructure.TransportUnicastQosPolicy
(p. 1605))
on
both
com.rti.dds.publication.DataWriter
(p. 557)
and
com.rti.dds.subscription.DataReader (p. 487) entities.
- the transport plugins used to parse an address string in a locator (Locator
Format (p. 58) and NDDS DISCOVERY PEERS (p. 57)).
A
com.rti.dds.domain.DomainParticipant
(p. 654)
(and
contained its entities) start using a transport plugin after the
com.rti.dds.domain.DomainParticipant (p. 654) is enabled (see
com.rti.dds.infrastructure.Entity.enable (p. 935)). An entity will use
all the transport plugins that match the specified transport QoS policy. All
transport plugins are treated uniformly, regardless of how they were created
or registered; there is no notion of some transports being more special that
others.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.96 Pluggable Transports

6.96.4

215

Transport Lifecycle

A transport plugin is owned by whoever created it. Thus, if you create and
register a transport plugin with a com.rti.dds.domain.DomainParticipant
(p. 654), you are responsible for deleting it by calling its destructor. Note that
builtin transport plugins (TRANSPORT BUILTIN (p. 119)) and transport
plugins that are loaded through the PROPERTY (p. 92) QoS policy (see
Loading Transport Plugins through Property QoS Policy of Domain
Participant (p. 219)) are automatically managed by RTI Connext.
A user-created transport plugin must not be deleted while it is still in
This
use by a com.rti.dds.domain.DomainParticipant (p. 654).
generally means that a user-created transport plugin instance can
only be deleted after the com.rti.dds.domain.DomainParticipant
(p. 654)
with
which
it
was
registered
is
deleted
(see
com.rti.dds.domain.DomainParticipantFactory.delete participant
(p. 749)). Note that a transport plugin cannot be unregistered from a
com.rti.dds.domain.DomainParticipant (p. 654).
A transport plugin instance cannot be registered with more than one
com.rti.dds.domain.DomainParticipant (p. 654) at a time. This requirement is necessary to guarantee the multi-threaded safety of the transport API.
If the same physical transport resources are to be used with more
than one com.rti.dds.domain.DomainParticipant (p. 654) in the same
address space, the transport plugin should be written in such a
way so that it can be instantiated multiple timesonce for each
com.rti.dds.domain.DomainParticipant (p. 654) in the address space.
Note that it is always possible to write the transport plugin so that multiple transport plugin instances share the same underlying resources; however the
burden (if any) of guaranteeing multi-threaded safety to access shared resource
shifts to the transport plugin developer.

6.96.5

Transport Class Attributes

A transport plugin instance is associated with two kinds of attributes:


- the class attributes that are decided by the plugin writer; these are invariant
across all instances of the transport plugin class, and
- the instance attributes that can be set on a per instance basis by the transport
plugin user.
Every transport plugin must specify the following class attributes.
transport class id (see com.rti.ndds.transport.Transport.Property t.classid (p. 1573))
Identifies a transport plugin implementation class. It denotes a unique
class to which the transport plugin instance belongs. The class is
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

216

Module Documentation
used to distinguish between different transport plugin implementations.
Thus, a transport plugin vendor should ensure that its transport plugin
implementation has a unique class.
Two transport plugin instances report the same class iff they have compatible implementations. Transport plugin instances with mismatching
classes are not allowed (by the RTI Connext Core) to communicate with
one another.
Multiple implementations (possibly from different vendors) for a physical
transport mechanism can co-exist in an RTI Connext application, provided
they use different transport class IDs.
The class ID can also be used to distinguish between different transport
protocols over the same physical transport network (e.g., UDP vs. TCP
over the IP routing infrastructure).

transport significant address bit count (see com.rti.ndds.transport.Transport.Property t.a


RTI Connexts addressing is modeled after the IPv6 and uses 128-bit
addresses ( java.net.InetAddress ) to route messages.
A transport plugin is expected to map the transports internal addressing
scheme to 128-bit addresses. In general, this mapping is likely to use only
N least significant bits (LSB); these are specified by this attribute.
>-------------- netmask ----------------<
+---------------------------------------+----------------------------+
|
Network Address
|
Transport Local Address |
+---------------------------------------+----------------------------+
>------------ N ------------<
address_bits_count
Only these bits are used
by the transport plugin.

The remaining bits of an address using the 128-bit address representation will be considered as part of the network address (see Transport
Network Address (p. 381)) and thus ignored by the transport plugins
internal addressing scheme.
For unicast addresses, the transport plugin is expected to ignore the higher
(128 - com.rti.ndds.transport.Transport.Property t.address bit count (p. 1573)) bits. RTI Connext is free to manipulate those bits freely
in the addresses passed in/out to the transport plugin APIs.
Theoretically, the significant address bits count, N is related to the size of
the underlying transport network as follows:
address bits count >= ceil(log2 (total addressable transport unicast interf aces))
The equality holds when the most compact (theoretical) internal address
mapping scheme is used. A practical address mapping scheme may waste
some bits.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.96 Pluggable Transports

6.96.6

217

Transport Instance Attributes

The per instance attributes to configure the plugin instance are generally passed
in to the plugin constructor. These are defined by the transport plugin writer,
and can be used to:
- customize the behavior of an instance of a transport plugin, including the send
and the receiver buffer sizes, the maximum message size, various transport level
classes of service (CoS), and so on.
- specify the resource values, network interfaces to use, various transport level
policies, and so on.
RTI Connext requires that every transport plugin instance must specify
the
com.rti.ndds.transport.Transport.Property t.message size max
(p. 1574) and com.rti.ndds.transport.Transport.Property t.gather send buffer count max (p. 1574).
It is up to the transport plugin developer to make these available for configuration to transport plugin user.
Note that it is important that the instance attributes are compatible between
the sending side and the receiving side of communicating applications using
different instances of a transport plugin class. For example, if one side is configured to send messages larger than can be received by the other side, then
communications via the plugin may fail.

6.96.7

Transport Network Address

The address bits not used by the transport plugin for its internal addressing
constitute its network address bits.
In order for RTI Connext to properly route the messages, each unicast interface in the RTI Connext domain must have a unique address. RTI Connext
allows the user to specify the value of the network address when installing
a transport plugin via the com.rti.ndds.transport.TransportSupport.register transport() API.
The network address for a transport plugin should be chosen such that the
resulting fully qualified 128-bit address will be unique in the RTI Connext
domain. Thus, if two instances of a transport plugin are registered with a
com.rti.dds.domain.DomainParticipant (p. 654), they will be at different
network addresses in order for their unicast interfaces to have unique fully qualified 128-bit addresses. It is also possible to create multiple transports with the
same network address, as it can be useful for certain use cases; note that this
will require special entity configuration for most transports to avoid clashes in
resource use (e.g. sockets for UDPv4 transport).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

218

Module Documentation

6.96.8

Transport Send Route

By default, a transport plugin is configured to send outgoing messages destined


to addresses in the network address range at which the plugin was registered.
RTI Connext allows the user to configure the routing of outgoing messages via
the com.rti.ndds.transport.TransportSupport.add send route() API, so that a
transport plugin will be used to send messages only to certain ranges of destination addresses. The method can be called multiple times for a transport plugin,
with different address ranges.
+--------------------------------------------------------------------+
|
Outgoing Address Range 1
->
Transport Plugin
|
+--------------------------------------------------------------------+
|
:
->
:
|
+--------------------------------------------------------------------+
|
Outgoing Address Range K
->
Transport Plugin
|
+--------------------------------------------------------------------+

The user can set up a routing table to restrict the use of a transport plugin to
send messages to selected addresses ranges.

6.96.9

Transport Receive Route

By default, a transport plugin is configured to receive incoming messages destined to addresses in the network address range at which the plugin was registered.
RTI Connext allows the user to configure the routing of incoming messages via
the com.rti.ndds.transport.TransportSupport.add receive route() API, so that
a transport plugin will be used to receive messages only on certain ranges of
addresses. The method can be called multiple times for a transport plugin, with
different address ranges.
+--------------------------------------------------------------------+
|
Transport Plugin
<- Incoming Address Range 1 |
+--------------------------------------------------------------------+
|
:
<:
|
+--------------------------------------------------------------------+
|
Transport Plugin
<- Incoming Address Range M |
+--------------------------------------------------------------------+

The user can set up a routing table to restrict the use of a transport plugin
to receive messages from selected ranges. For example, the user may restrict a
transport plugin to
- receive messages from a certain multicast address range.
- receive messages only on certain unicast interfaces (when multiple unicast
interfaces are available on the transport plugin).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.97 Using Transport Plugins

6.97

219

Using Transport Plugins

Configuring transports used by RTI Connext.

Classes
class TransportSupport
<<interface>> (p. 279) The utility class used to configure RTI Connext
pluggable transports.

6.97.1

Detailed Description

Configuring transports used by RTI Connext.


There is more than one way to install a transport plugin for use with RTI
Connext:
If it is a builtin transport plugin, by specifying a bitmask
in com.rti.dds.infrastructure.TransportBuiltinQosPolicy (p. 1580)
(see Built-in Transport Plugins (p. 222))
For all other non-builtin transport plugins, by dynamically loading the plugin through PROPERTY (p. 92) QoS policy settings of
com.rti.dds.domain.DomainParticipant (p. 654) (on UNIX, Solaris
and Windows systems only) (see Loading Transport Plugins through
Property QoS Policy of Domain Participant (p. 219))
The lifecycle of the transport plugin is automatically managed by RTI Connext.
See Transport Lifecycle (p. 378) for details.

6.97.2

Loading Transport Plugins through Property QoS


Policy of Domain Participant

On UNIX, Solaris and Windows operating systems, a non-builtin transport


plugin written in C/C++ and built as a dynamic-link library (.dll/.so) can be
loaded by RTI Connext through the PROPERTY (p. 92) QoS policy settings
of the com.rti.dds.domain.DomainParticipant (p. 654). The dynamic-link
library (and all the dependent libraries) need to be in the path during runtime (in
LD LIBRARY PATH environment variable on Linux/Solaris systems,and in
PATH environment variable for Windows systems).
To allow dynamic loading of the transport plugin, the transport plugin must implement the RTI Connext abstract transport API and must provide a function
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

220

Module Documentation

with the signature com.rti.ndds.transport.NDDS Transport create plugin that


can be called by RTI Connext to create an instance of the transport plugin.
The name of the dynamic library that contains the transport plugin implementation, the name of the function and properties that can be used to create the
plugin, and the aliases and network address that are used to register the plugin can all be specified through the PROPERTY (p. 92) QoS policy of the
com.rti.dds.domain.DomainParticipant (p. 654).
The following table lists the property names that are used to load the transport
plugins dynamically:

A transport plugin is dynamically created and registered to the


com.rti.dds.domain.DomainParticipant (p. 654) by RTI Connext when:
the com.rti.dds.domain.DomainParticipant (p. 654) is enabled,
the first DataWriter/DataReader is created, or
you lookup a builtin DataReader (com.rti.dds.subscription.Subscriber.lookup datareader (p. 1488)),
whichever happens first.
Any changes to the transport plugin related properties in PROPERTY
(p. 92) QoS policy after the transport plugin has been registered with the
com.rti.dds.domain.DomainParticipant (p. 654) will have no effect.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.97 Using Transport Plugins


Property Name
dds.transport.load plugins

<TRANSPORT PREFIX>.library

<TRANSPORT PREFIX>.create function on Mon Aug


Generated

13

Description
Required?
Comma-separated
YES
strings indicating the
prefix names of all
plugins that will be
loaded by RTI
Connext. Up to 8
plugins may be
specified. For example,
dds.transport.WAN.wan1,
dds.transport.DTLS.dtls1,
In the following
examples,
<TRANSPORT PREFIX> is used to
indicate one element of
this string that is used
as a prefix in the
property names for all
the settings that are
related to the plugin.
<TRANSPORT PREFIX> must begin
with dds.transport.
(such as
dds.transport.mytransport).
Should be set to the
YES
name of the dynamic
library (.so for
Unix/Solaris, and .dll
for Windows) that
contains the transport
plugin implementation.
This library (and all
the other dependent
dynamic libraries)
needs to be in the path
during run time for
used by RTI Connext
(in the LD LIBRARY PATH
environment variable
on UNIX/Solaris
systems, in PATH for
Windows systems).
Should be set to the
YES
name of the function
with the
of
09:02:20
2012prototype
for RTI Connext
Java API by Doxygen
com.rti.ndds.transport.NDDS Transport create plugin that can be
called by RTI Connext
to create an instance of
the plugin. The
resulting transport
plugin will then be

221

222

Module Documentation

6.98

Built-in Transport Plugins

Transport plugins delivered with RTI Connext.

Classes
interface ShmemTransport
Built-in transport ( p. 376) plug-in for inter-process communications using
shared memory.

interface UDPv4Transport
Built-in transport ( p. 376) plug-in using UDP/IPv4.

interface UDPv6Transport
Built-in transport ( p. 376) plug-in using UDP/IPv6.

6.98.1

Detailed Description

Transport plugins delivered with RTI Connext.


The TRANSPORT BUILTIN (p. 119) specifies the collection of transport
plugins that can be automatically configured and managed by RTI Connext as
a convenience to the user.
These transport plugins can simply be turned on or off by a specifying a bitmask in com.rti.dds.infrastructure.TransportBuiltinQosPolicy
(p. 1580), thus bypassing the steps for setting up a transport plugin. RTI Connext preconfigures the transport plugin properties, the network address, and
the aliases to factory defined values.
If
a
builtin
transport
plugin
is
turned
on
in
com.rti.dds.infrastructure.TransportBuiltinQosPolicy
(p. 1580),
the plugin is implicitly created and registered to the corresponding
com.rti.dds.domain.DomainParticipant (p. 654) by RTI Connext when:
the com.rti.dds.domain.DomainParticipant (p. 654) is enabled,
the first DataWriter/DataReader is created, or
you lookup a builtin DataReader (com.rti.dds.subscription.Subscriber.lookup datareader (p. 1488)),
whichever happens first.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.98 Built-in Transport Plugins

223

Each builtin transport contains its own set of properties. For example, the
com.rti.ndds.transport.UDPv4Transport (p. 1668) allows the application
to specify whether or not multicast is supported, the maximum size of the
message, and provides a mechanism for the application to filter out network
interfaces.
The builtin transport plugin properties can be changed by
the
method
com.rti.ndds.transport.TransportSupport.set builtin transport property()
(p. 1603)
or
by
using
the
PROPERTY
(p. 92)
QoS
policy
associated
with
the
com.rti.dds.domain.DomainParticipant (p. 654). Builtin transport plugin
properties specified in com.rti.dds.infrastructure.PropertyQosPolicy
always
overwrite
the
ones
specified
through
(p. 1236)
com.rti.ndds.transport.TransportSupport.set builtin transport property() (p. 1603). Refer to the specific builtin transport for the list of
property names that can be specified through PROPERTY (p. 92) QoS
policy.
Any changes to the builtin transport properties after the builtin transports have
been registered with will have no effect.
See also:
com.rti.ndds.transport.TransportSupport.set builtin transport property() (p. 1603) com.rti.dds.infrastructure.PropertyQosPolicy
(p. 1236)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

224

Module Documentation

6.99

Configuration Utilities

Utility APIs independent of the DDS standard.

Classes
class LibraryVersion t
The version of a single library shipped as part of an RTI Connext distribution.

class LogCategory
Categories of logged messages.

class Logger
<<interface>> (p. 279) The singleton type used to configure RTI Connext
logging.

interface LoggerDevice
<<interface>> (p. 279) Logging device interface. Use for user-defined logging devices.

class LogLevel
Level category assigned to RTI Connext log messages returned to an output
device.

class LogMessage
Log message.

class LogPrintFormat
The format used to output RTI Connext diagnostic information.

class LogVerbosity
The verbosities at which RTI Connext diagnostic information is logged.

class Version
<<interface>> (p. 279) The version of an RTI Connext distribution.

6.99.1

Detailed Description

Utility APIs independent of the DDS standard.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.100 Durability and Persistence

6.100

225

Durability and Persistence

APIs related to RTI Connext Durability and Persistence. RTI Connext offers
the following mechanisms for achieving durability and persistence:
Durable Writer History (p. 225)
Durable Reader State (p. 225)
Data Durability (p. 226)
To use any of these features, you need a relational database, which is not
included with RTI Connext. Supported databases are listed in the Release
Notes.
These three features can be used separately or in combination.

6.100.1

Durable Writer History

This feature allows a com.rti.dds.publication.DataWriter (p. 557) to


locally persist its local history cache so that it can survive shutdowns, crashes and restarts.
When an application restarts, each
com.rti.dds.publication.DataWriter (p. 557) that has been configured to
have durable writer history automatically loads all the data in its history cache from disk and can carry on sending data as if it had never
stopped executing. To the rest of the system, it will appear as if the
com.rti.dds.publication.DataWriter (p. 557) had been temporarily disconnected from the network and then reappeared.
See also:
Configuring Durable Writer History (p. 227)

6.100.2

Durable Reader State

This feature allows a com.rti.dds.subscription.DataReader (p. 487) to


locally persists its state and remember the data it has already received.
When an application restarts, each com.rti.dds.subscription.DataReader
(p. 487) that has been configured to have durable reader state automatically loads its state from disk and can carry on receiving data as if it
had never stopped executing. Data that had already been received by the
com.rti.dds.subscription.DataReader (p. 487) before the restart will be
suppressed so it is not sent over the network.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

226

Module Documentation

6.100.3

Data Durability

This feature is a full implementation of the OMG DDS Persistence Profile.


The DURABILITY (p. 68) QoS lets an application configure a
com.rti.dds.publication.DataWriter (p. 557) such that the information
written by the com.rti.dds.publication.DataWriter (p. 557) survives beyond the lifetime of the com.rti.dds.publication.DataWriter (p. 557).
In this manner, a late-joining com.rti.dds.subscription.DataReader
(p. 487) can subscribe and receive the information even after the
com.rti.dds.publication.DataWriter (p. 557) application is no longer executing. To use this feature, you need RTI Persistence Service an optional
product that can be purchased separately.

6.100.4

Durability and Persistence Based on Virtual


GUID

Every
modification
to
the
global
dataspace
made
by
a
com.rti.dds.publication.DataWriter (p. 557) is identified by a pair
(virtual GUID, sequence number).
The virtual GUID (Global Unique Identifier) is a 16-byte character identifier associated with a com.rti.dds.publication.DataWriter (p. 557) or
com.rti.dds.subscription.DataReader (p. 487); it is used to uniquely
identify this entity in the global data space.
The sequence number is a 64-bit identifier that identifies changes published
by a specific com.rti.dds.publication.DataWriter (p. 557).
entities
Several
com.rti.dds.publication.DataWriter
(p. 557)
can be configured with the same virtual GUID. If each of these
com.rti.dds.publication.DataWriter (p. 557) entities publishes a sample with sequence number 0, the sample will only be received once by the
com.rti.dds.subscription.DataReader (p. 487) entities subscribing to the
content published by the com.rti.dds.publication.DataWriter (p. 557)
entities.
RTI Connext also uses the virtual GUID (Global Unique Identifier) to associate
a persisted state (state in permanent storage) to the corresponding DDS entity.
For example, the history of a com.rti.dds.publication.DataWriter (p. 557)
will be persisted in a database table with a name generated from the virtual GUID of the com.rti.dds.publication.DataWriter (p. 557). If the
com.rti.dds.publication.DataWriter (p. 557) is restarted, it must have associated the same virtual GUID to restore its previous history.
Likewise, the state of a com.rti.dds.subscription.DataReader (p. 487)
will be persisted in a database table whose name is generated from the
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.100 Durability and Persistence

227

com.rti.dds.subscription.DataReader (p. 487) virtual GUID


A com.rti.dds.publication.DataWriter (p. 557)s virtual GUID can be configured using com.rti.dds.infrastructure.DataWriterProtocolQosPolicy.virtual guid (p. 593).
Similarly, a com.rti.dds.subscription.DataReader
virtual
GUID
can
be
configured
using
(p. 487)s
com.rti.dds.infrastructure.DataReaderProtocolQosPolicy.virtual guid (p. 522).
The builtin.PublicationBuiltinTopicData and builtin.SubscriptionBuiltinTopicData
structures include the virtual GUID associated with the discovered publication
or subscription.
Refer to the Users Manual for additional use cases.
See also:
com.rti.dds.infrastructure.DataWriterProtocolQosPolicy.virtual guid (p. 593) com.rti.dds.infrastructure.DataReaderProtocolQosPolicy.virtual guid (p. 522).

6.100.5

Configuring Durable Writer History

To configure a com.rti.dds.publication.DataWriter (p. 557) to have


durable writer history, use the PROPERTY (p. 92) QoS policy associated with the com.rti.dds.publication.DataWriter (p. 557) or the
com.rti.dds.domain.DomainParticipant (p. 654).
Properties defined for the com.rti.dds.domain.DomainParticipant (p. 654)
will be applied to all the com.rti.dds.publication.DataWriter (p. 557) objects belonging to the com.rti.dds.domain.DomainParticipant (p. 654), unless the property is overwritten by the com.rti.dds.publication.DataWriter
(p. 557).
See also:
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236)
The following table lists the supported durable writer history properties.

6.100.6

Configuring Durable Reader State

To configure a com.rti.dds.subscription.DataReader (p. 487) with


durable reader state, use the PROPERTY (p. 92) QoS policy associated with the com.rti.dds.subscription.DataReader (p. 487) or
com.rti.dds.domain.DomainParticipant (p. 654).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

228

Module Documentation

A property defined in the com.rti.dds.domain.DomainParticipant (p. 654)


will be applicable to all the com.rti.dds.subscription.DataReader (p. 487)
belonging to the com.rti.dds.domain.DomainParticipant (p. 654) unless it
is overwritten by the com.rti.dds.subscription.DataReader (p. 487).
See also:
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236)
The following table lists the supported durable reader state properties.

6.100.7

Configuring Data Durability

RTI Connext implements com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.T


DURABILITY QOS and com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.P
DURABILITY QOS durability using RTI Persistence Service, available for
purchase as a separate RTI product.
For more information on RTI Persistence Service, refer to the Users Manual,
or the RTI Persistence Service API Reference HTML documentation.
See also:
DURABILITY (p. 68)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.100 Durability and Persistence


Property
dds.data writer.history.plugin name

dds.data writer.history.odbc plugin.dsn

dds.data writer.history.odbc plugin.driver

dds.data writer.history.odbc plugin.username

dds.data writer.history.odbc plugin.password

dds.data writer.history.odbc plugin.shared

dds.data writer.history.odbc plugin.instance cache max size

Generated on Mon Aug 13 09:02:20 2012

229
Description
Must be set to dds.data writer.history.odbc plugin.builtin
to enable durable writer history in
the DataWriter. This property is
required.
The ODBC DSN (Data Source
Name) associated with the database
where the writer history must be
persisted. This property is required.
This property tells RTI Connext
which ODBC driver to load. If the
property is not specified, RTI
Connext will try to use the standard
ODBC driver manager library:
UnixOdbc (odbc32.dll) on
UNIX/Linux systems; the Windows
ODBC driver manager (libodbc.so)
on Windows systems).
Configures the username used to
connect to the database. This
property is not used if it is
unspecified. There is no default
value.
Configures the password used to
connect to the database. This
property is not used if it is
unspecified. There is no default
value.
If set to 1, RTI Connext creates a
single connection per DSN that will
be shared across DataWriters within
the same Publisher.
If set to 0 (the default), a
com.rti.dds.publication.DataWriter
(p. 557) will create its own database
connection.
Default: 0 (false)
These properties configure the
resource limits associated with the
ODBC writer history caches. To
minimize the number of accesses to
the database, RTI Connext uses two
caches, one for samples and one for
instances. The initial and maximum
sizes of these caches are configured
using these properties. The resource
for limits
RTI Connext
API by Doxygen
instances,
initial Java
max instances, initial samples,
max samples and
max samples per instance in the
com.rti.dds.infrastructure.ResourceLimitsQosPolicy
(p. 1348) are used to configure the
maximum number of samples and
instances that can be stored in the

230
Property
dds.data reader.state.odbc.dsn

Module Documentation

Description
The ODBC DSN (Data Source
Name) associated with the database where the
com.rti.dds.subscription.DataReader
(p. 487) state must be persisted.
This property is required.
dds.data reader.state.filter To enable durable reader state, this
redundant samples
property must be set to 1.
Otherwise, the reader state will not
be kept and/or persisted. When the
reader state is not maintained, RTI
Connext does not filter duplicate
samples that may be coming from
the same virtual writer. By default,
this property is set to 1.
dds.data reader.state.odbc.driver
This property is used to indicate
which ODBC driver to load. If the
property is not specified, RTI
Connext will try to use the standard
ODBC driver manager library:
UnixOdbc (odbc32.dll) on
UNIX/Linux systems; the Windows
ODBC driver manager (libodbc.so)
on Windows systems).
dds.data This property configures the
reader.state.odbc.username
username used to connect to the
database. This property is not used
if it is unspecified. There is no
default value.
dds.data reader.state.odbc.password This property configures the
password used to connect to the
database. This property is not used
if it is unspecified. There is no
default value.
dds.data reader.state.restore
This property indicates if the
persisted
com.rti.dds.subscription.DataReader
(p. 487) state must be restored or
not once the
com.rti.dds.subscription.DataReader
(p. 487) is restarted. If this property
is 0, the previous state will be
deleted from the database. If it is 1,
the
com.rti.dds.subscription.DataReader
(p. 487) will restore its previous
state
from
the database
content.
Generated on Mon Aug 13 09:02:20 2012
for RTI
Connext
Java API
by Doxygen
Default: 1
dds.data reader.state.checkpoint This property controls how often
frequency
the reader state is stored in the
database. A value of N means to
store the state once every N
samples.
A high frequency will provide better

6.101 System Properties

6.101

231

System Properties

System
Properties.
RTI
Connext
uses
the
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236) of a DomainParticipant to maintain a set of properties that provide system information such
as hostname.
Unless the default com.rti.dds.domain.DomainParticipantQos (p. 773)
value is overwritten, the system properties are automatically set in the
com.rti.dds.domain.DomainParticipantQos (p. 773) obtained by calling
the
method
com.rti.dds.domain.DomainParticipantFactory.get (p. 750)
or
using
the
constant
default participant qos
com.rti.dds.domain.DomainParticipantFactory.PARTICIPANT QOS DEFAULT (p. 149).
System
properties
are
also
automatically
set
in
the
com.rti.dds.domain.DomainParticipantQos (p. 773) loaded from an
XML QoS profile unless you disable property inheritance using the attribute
inherit in the XML tag <property>.
By default, the system properties are propagated to other DomainParticipants in the system and can be accessed through
builtin.ParticipantBuiltinTopicData.property.
You can disable the propagation of individual properties by setting
the flag com.rti.dds.infrastructure.Property t.propagate (p. 1235) to
com.rti.dds.infrastructure.false or by removing the property using the
method com.rti.dds.infrastructure.PropertyQosPolicyHelper.remove property (p. 1242).
The
number
of
system
properties
set
on
the
com.rti.dds.domain.DomainParticipantQos (p. 773) is platform specific.

6.101.1

System Properties List

The following table lists the supported system properties.


Property Name
dds.sys info.hostname
dds.sys info.process id

6.101.2

Description
Hostname
Process ID

System Resource Consideration

System
properties
are
affected
by
the
resource
limits
com.rti.dds.infrastructure.DomainParticipantResourceLimitsQosPolicy.participant Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

232

Module Documentation

property list max length (p. 794) and com.rti.dds.infrastructure.DomainParticipantResource


property string max length (p. 794).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.102 Configuring QoS Profiles with XML

6.102

233

Configuring QoS Profiles with XML

APIs related to XML QoS Profiles.

6.102.1

Loading QoS Profiles from XML Resources

A QoS profile is a group of QoS settings, specified in XML format. By using


QoS profiles, you can change QoS settings without recompiling the application.
The Qos profiles are loaded the first time any of the following operations are
called:
com.rti.dds.domain.DomainParticipantFactory.create participant (p. 748)
com.rti.dds.domain.DomainParticipantFactory.create participant with profile (p. 764)
com.rti.dds.domain.DomainParticipantFactory.set default participant qos with profile (p. 752)
com.rti.dds.domain.DomainParticipantFactory.get default participant qos (p. 750)
com.rti.dds.domain.DomainParticipantFactory.set default library (p. 756)
com.rti.dds.domain.DomainParticipantFactory.set default profile (p. 757)
com.rti.dds.domain.DomainParticipantFactory.get participant qos from profile (p. 758)
com.rti.dds.domain.DomainParticipantFactory.get topic qos from profile (p. 762)
com.rti.dds.domain.DomainParticipantFactory.get topic qos from profile w topic name (p. 763)
com.rti.dds.domain.DomainParticipantFactory.get publisher qos from profile (p. 758)
com.rti.dds.domain.DomainParticipantFactory.get subscriber qos from profile (p. 759)
com.rti.dds.domain.DomainParticipantFactory.get datawriter qos from profile (p. 760)
com.rti.dds.domain.DomainParticipantFactory.get datawriter qos from profile w topic name (p. 760)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

234

Module Documentation
com.rti.dds.domain.DomainParticipantFactory.get datareader qos from profile (p. 761)
com.rti.dds.domain.DomainParticipantFactory.get datareader qos from profile w topic name (p. 761)
com.rti.dds.domain.DomainParticipantFactory.get qos profile libraries (p. 763)
com.rti.dds.domain.DomainParticipantFactory.get qos profiles
(p. 764)
com.rti.dds.domain.DomainParticipantFactory.load profiles
(p. 754)

The QoS profiles are reloaded replacing previously loaded profiles when the
following operations are called:
com.rti.dds.domain.DomainParticipantFactory.set qos (p. 754)
com.rti.dds.domain.DomainParticipantFactory.reload profiles
(p. 755)
The com.rti.dds.domain.DomainParticipantFactory.unload profiles()
(p. 755) operation will free the resources associated with the XML QoS profiles.
There are five ways to configure the XML resources (listed by load order):
The file NDDS QOS PROFILES.xml in NDDSHOME/resource/qos profiles 5.0.0/xml
is
loaded
if
it
exists
and
com.rti.dds.infrastructure.ProfileQosPolicy.ignore resource profile (p. 1233) in com.rti.dds.infrastructure.ProfileQosPolicy
(p. 1231) is set to com.rti.dds.infrastructure.false (first to be loaded). An
example file, NDDS QOS PROFILES.example.xml, is available for reference.
The URL groups separated by semicolons referenced by the enviroment variable NDDS QOS PROFILES are loaded if they exist
and
com.rti.dds.infrastructure.ProfileQosPolicy.ignore environment profile (p. 1232) in com.rti.dds.infrastructure.ProfileQosPolicy
(p. 1231) is set to com.rti.dds.infrastructure.false.
The
file
USER QOS PROFILES.xml
in
the
working
directory
will
be
loaded
if
it
exists
and
com.rti.dds.infrastructure.ProfileQosPolicy.ignore user profile
(p. 1232) in com.rti.dds.infrastructure.ProfileQosPolicy (p. 1231) is
set to com.rti.dds.infrastructure.false.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.102 Configuring QoS Profiles with XML

235

The URL groups referenced by com.rti.dds.infrastructure.ProfileQosPolicy.url profile (p. 1232) in com.rti.dds.infrastructure.ProfileQosPolicy


(p. 1231) will be loaded if specified.
The
sequence
of
XML
strings
referenced
com.rti.dds.infrastructure.ProfileQosPolicy.string profile
(p. 1232) will be loaded if specified (last to be loaded).

by

The above methods can be combined together.

6.102.2

URL

The location of the XML resources (only files and strings are supported) is
specified using a URL (Uniform Resource Locator) format. For example:
File Specification: file:///usr/local/default dds.xml
String Specification:
library>&lt/dds>

str://<dds><qos library> .

lt;/qos -

If the URL schema name is omitted, RTI Connext will assume a file name. For
example:
File Specification: /usr/local/default dds.xml

6.102.2.1

URL groups

To provide redundancy and fault tolerance, you can specify multiple locations
for a single XML document via URL groups. The syntax of a URL group is as
follows:
[URL1 | URL2 | URL2 | . . .| URLn]
For example:
[file:///usr/local/default dds.xml | file:///usr/local/alternative default dds.xml]
Only one of the elements in the group will be loaded by RTI Connext, starting
from the left.
Brackets are not required for groups with a single URL.

6.102.2.2

NDDS QOS PROFILES environment variable

The environment variable NDDS QOS PROFILES contains a list of URL


groups separated by ;
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

236

Module Documentation

The URL groups referenced by the environment variable are loaded if they exist
and com.rti.dds.infrastructure.ProfileQosPolicy.ignore environment profile (p. 1232) is set to com.rti.dds.infrastructure.false
For more information on XML Configuration, refer to the Users Manual.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.103 Publication Example

6.103

Publication Example

A data publication example.

6.103.1

A typical publication example

Prep
Create user data types using rtiddsgen (p. 298)
Set up
Get the factory (p. 239)
Set up participant (p. 239)
Set up publisher (p. 247)
Register user data type(s) (p. 241)
Set up topic(s) (p. 241)
Set up data writer(s) (p. 248)
Adjust the desired quality of service (QoS)
Adjust QoS on entities as necessary (p. 257)
Send data
Send data (p. 249)
Tear down
Tear down data writer(s) (p. 249)
Tear down topic(s) (p. 241)
Tear down publisher (p. 247)
Tear down participant (p. 240)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

237

238

Module Documentation

6.104

Subscription Example

A data subscription example.

6.104.1

A typical subscription example

Prep
Create user data types using rtiddsgen (p. 298)
Set up
Get the factory (p. 239)
Set up participant (p. 239)
Set up subscriber (p. 250)
Register user data type(s) (p. 241)
Set up topic(s) (p. 241)
Set up data reader(s) (p. 253)
Set up data reader (p. 254) OR Set up subscriber (p. 250) to receive
data
Adjust the desired quality of service (QoS)
Adjust QoS on entities as necessary (p. 257)
Receive data
Access received data either via a reader (p. 254) OR via a subscriber
(p. 251) (possibly in a ordered or coherent (p. 252) manner)
Tear down
Tear down data reader(s) (p. 256)
Tear down topic(s) (p. 241)
Tear down subscriber (p. 252)
Tear down participant (p. 240)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.105 Participant Use Cases

6.105

239

Participant Use Cases

Working with domain partcipants. Working with domain participants.

6.105.1

Turning off auto-enable of newly created participant(s)

Get the factory (p. 239)


Change the value of the ENTITY FACTORY (p. 73) for the
com.rti.dds.domain.DomainParticipantFactory (p. 742)
DomainParticipantFactoryQos factory_qos = new DomainParticipantFactoryQos();
try {
factory.get_qos(factory_qos);
/* Change the QosPolicy to create disabled participants */
factory_qos.entity_factory.autoenable_created_entities = false;
factory.set_qos(factory_qos);
} catch (RETCODE_ERROR err) {
System.out.println(
"***Error: changing domain participant factory qos\n");
}

6.105.2

Getting the factory

Get the DDSDomainParticipantFactory instance:


DomainParticipantFactory factory = null;
factory = DomainParticipantFactory.get_instance();

6.105.3

Setting up a participant

Get the factory (p. 239)


Create DDSDomainParticipant:
int domain_id = 10;
DomainParticipantQos participant_qos = new DomainParticipantQos();
// initialize participant_qos with default values
factory.get_default_participant_qos(participant_qos);

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

240

Module Documentation
/* Set the peer hosts. These list all the computers the application
may communicate with along with the maximum maximum participant
index of the participants that can concurrently run on that
computer. This list only needs to be a superset of the actual list
of computers and participants that will be running at any time.
*/
/* To run this example across multiple nodes, modify the following
IP addresses to match your network configuration.
*/
final String[] NDDS_DISCOVERY_INITIAL_PEERS = {
"1@udpv4://10.10.1.192",
"1@udpv4://10.10.1.190",
"1@udpv4://10.10.1.152"
};
participant_qos.discovery.initial_peers.
ensureCapacity(NDDS_DISCOVERY_INITIAL_PEERS.length);
for (int i = 0; i < NDDS_DISCOVERY_INITIAL_PEERS.length; ++i) {
participant_qos.discovery.initial_peers.add(
NDDS_DISCOVERY_INITIAL_PEERS[i]);
}
// Initialize listener if desired
DomainParticipantListener participant_listener = null;

// Create the participant


DomainParticipant participant = null;
try {
participant = factory.create_participant(
domain_id, participant_qos,
participant_listener, StatusKind.STATUS_MASK_NONE);
} catch (RETCODE_ERROR err) {
// participant couldnt be created
}

6.105.4

Tearing down a participant

Get the factory (p. 239)


Delete DDSDomainParticipant:
try {
factory.delete_participant(participant);
} catch (RETCODE_ERROR err) {
// unable to delete
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.106 Topic Use Cases

6.106

241

Topic Use Cases

Working with topics.

6.106.1

Registering a user data type

Set up participant (p. 239)


Register user data type of type Foo under the name My Type
String type_name = "My_Type";
FooTypeSupport.register_type(participant, type_name);

6.106.2

Setting up a topic

Set up participant (p. 239)


Ensure user data type is registered (p. 241)
Create a com.rti.dds.topic.Topic (p. 1545) under the name my topic
String topic_name = "my_topic";
String type_type = "My_Type";
// user data type
TopicQos topic_qos = new TopicQos();
// MyTopicListener is user defined and
// implements TopicListener
TopicListener topic_listener = new MyTopicListener(); // or = null
participant.get_default_topic_qos(topic_qos);
Topic topic = null;
try {
topic = participant.create_topic(topic_name, type_name,
topic_qos, topic_listener,
StatusKind.STATUS_MASK_ALL);
} catch (RETCODE_ERROR err) {
// handle exception
}

6.106.3

Tearing down a topic

Delete Topic:
try {
participant.delete_topic(topic);
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

242

Module Documentation
} catch (RETCODE_ERROR err) {
// handle exception
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.107 FlowController Use Cases

6.107

243

FlowController Use Cases

Working with flow controllers.

6.107.1

Creating a flow controller

Set up participant (p. 239)


Create a flow controller
FlowController controller = null;
FlowControllerProperty_t property = new FlowControllerProperty_t();
retcode = participant.get_default_flowcontroller_property(property);
// optionally modify flow controller property values
try {
controller = participant.create_flowcontroller(
"my flow controller name", property);
} catch (RETCODE_ERROR err) {
// handle exception
}

6.107.2

Flow controlling a data writer

Set up participant (p. 239)


Create flow controller (p. 243)
Create an asynchronous data writer, FooDataWriter, of user data type
Foo:
DataWriterQos writer_qos = new DataWriterQos();
// MyWriterListener is user defined and
// implements DataWriterListener
MyWriterListener writer_listener = new MyWriterListener(); // or = null
publisher.get_default_datawriter_qos(writer_qos);
/* Change the writer QoS to publish asnychronously */
writer_qos.publish_mode.kind = PublishModeQosPolicyKind.ASYNCHRONOUS_PUBLISH_MODE_QOS;
/* Setup to use the previously created flow controller */
writer_qos.publish_mode.flow_controller_name = "my flow controller name";
/* Samples queued for asynchronous write are subject to the History Qos policy */
writer_qos.history.kind = HistoryQosPolicyKind.KEEP_ALL_HISTORY_QOS;
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

244

Module Documentation

FooDataWriter writer = null;


try {
writer = (FooDataWriter) publisher.create_datawriter(topic, writer_qos,
writer_listener,
StatusKind.STATUS_MASK_ALL);

/* Send data asynchronously... */


/* Wait for asynchronous send completes, if desired */
writer.wait_for_asynchronous_publishing(timout);
} catch (RETCODE_ERROR err) {
// handle exception
}

6.107.3

Using the built-in flow controllers

RTI Connext provides several built-in flow controllers.


The
com.rti.dds.publication.FlowController.DEFAULT FLOW CONTROLLER NAME
(p. 187)
built-in
flow
controller
provides the basic asynchronous writer behavior.
When calling
com.rti.ndds.example.FooDataWriter.write (p. 1021), the call signals
the com.rti.dds.publication.Publisher (p. 1262) asynchronous publishing
thread
(com.rti.dds.publication.PublisherQos.asynchronous publisher (p. 1291)) to send the actual data.
As with any
com.rti.dds.infrastructure.PublishModeQosPolicyKind.PublishModeQosPolicyKind.ASYNCHRONOUS
PUBLISH MODE QOS com.rti.dds.publication.DataWriter (p. 557), the
com.rti.ndds.example.FooDataWriter.write (p. 1021) call returns immediately afterwards. The data is sent immediately in the context of the
com.rti.dds.publication.Publisher (p. 1262) asynchronous publishing
thread.
When using the com.rti.dds.publication.FlowController.FIXED RATE FLOW CONTROLLER NAME (p. 188) flow controller, data is
also sent in the context of the com.rti.dds.publication.Publisher (p. 1262)
asynchronous publishing thread, but at a regular fixed interval. The thread accumulates samples from different com.rti.dds.publication.DataWriter
(p. 557) instances and generates data on the wire only once per
com.rti.dds.publication.FlowControllerTokenBucketProperty t.period (p. 975).
In
contrast,
the
com.rti.dds.publication.FlowController.ON DEMAND FLOW CONTROLLER NAME (p. 189) flow controller
permits flow only when com.rti.dds.publication.FlowController.trigger flow (p. 967) is called.
The data is still sent in the context of
the com.rti.dds.publication.Publisher (p. 1262) asynchronous pubGenerated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.107 FlowController Use Cases

245

lishing thread.
The thread accumulates samples from different
com.rti.dds.publication.DataWriter (p. 557) instances (across any
com.rti.dds.publication.Publisher (p. 1262)) and sends all data since
the previous trigger.
The properties of the built-in com.rti.dds.publication.FlowController
(p. 964) instances can be adjusted.
Set up participant (p. 239)
Lookup built-in flow controller
FlowController controller = null;
try {
controller = participant.lookup_flowcontroller(
FlowController.DEFAULT_FLOW_CONTROLLER_NAME);
} catch (RETCODE_ERROR err) {
// This should never happen, built-in flow controllers are always created
// handle exception
}

Change property of built-in flow controller, if desired


FlowControllerProperty_t property = new FlowControllerProperty_t();
/* Get the property of the looked-up default flow controller */
controller.get_property(property);
/* Change the property value as desired */
property.token_bucket.period.sec = 2;
property.token_bucket.period.nanosec = 0;
/* Update the flow controller property */
controller.set_property(property);

Create a data writer using the correct flow controller name


(p. 243)

6.107.4

Shaping the network traffic for a particular transport

Set up participant (p. 239)


Create the transports (p. 263)
Create a separate flow controller for each transport (p. 243)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

246

Module Documentation
Configure com.rti.dds.publication.DataWriter (p. 557) instances to
only use a single transport
Associate all data writers using the same transport to the corresponding flow controller (p. 243)
For each transport, the corresponding flow controller limits the network
traffic based on the token bucket properties

6.107.5

Coalescing multiple samples in a single network


packet

Set up participant (p. 239)


Create a flow controller with a desired token bucket period
(p. 243)
Associate the data writer with the flow controller (p. 243)
Multiple samples written within the specified period will be coalesced
into a single network packet (provided that tokens added per period
and bytes per token permit).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.108 Publisher Use Cases

6.108

247

Publisher Use Cases

Working with publishers.

6.108.1

Setting up a publisher

Set up participant (p. 239)


Create a DDSPublisher
PublisherQos publisher_qos = new PublisherQos();
// MyPublisherListener is user defined and
// extends DDSPublisherListener
PublisherListener publisher_listener
= new MyPublisherListener(); // or = null
participant.get_default_publisher_qos(publisher_qos);
Publisher publisher = null;
try {
publisher = participant.create_publisher(publisher_qos,
publisher_listener,
StatusKind.STATUS_MASK_ALL);
} catch (RETCODE_ERROR err) {
// respond to exception
}

6.108.2

Tearing down a publisher

Delete DDSPublisher:
try {
participant.delete_publisher(publisher);
} catch (RETCODE_ERROR err) {
// respond to exception
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

248

Module Documentation

6.109

DataWriter Use Cases

Working with data writers.

6.109.1

Setting up a data writer

Set up publisher (p. 247)


Set up a topic (p. 241)
Create a data writer, FooDataWriter, of user data type Foo:
DataWriterQos writer_qos = new DataWriterQos();
// MyWriterListener is user defined and
// implements DataWriterListener
MyWriterListener writer_listener = new MyWriterListener(); // or = null
publisher.get_default_datawriter_qos(writer_qos);
FooDataWriter writer = null;
try {
writer = (FooDataWriter) publisher.create_datawriter(topic, writer_qos,
writer_listener,
StatusKind.STATUS_MASK_ALL);
} catch (RETCODE_ERROR err) {
// handle exception
}

6.109.2

Managing instances

Getting an instance key value of user data type Foo


Foo data = ...;

// user data

try {
writer.get_key_value(data, instance_handle);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}

Registering an instance of type Foo


InstanceHandle_t instance_handle = InstanceHandle_t.HANDLE_NIL;
instance_handle = writer->register_instance(data);

Unregistering an instance of type Foo


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.109 DataWriter Use Cases

249

try {
writer.unregister_instance(data, instance_handle);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}

Disposing of an instance of type Foo


try {
writer.dispose(data, instance_handle);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}

6.109.3

Sending data

Set up data writer (p. 248)


Register instance (p. 248)
Write instance of type Foo
Foo data = new Foo();

// user data

InstanceHandle_t instance_handle
= InstanceHandle_t.HANDLE_NIL; // or a valid registered handle
try {
writer.write(data, instance_handle);
} catch (RETCODE_ERR err) {
// ... check for cause of failure
}

6.109.4

Tearing down a data writer

Delete DataWriter:
try {
publisher.delete_datawriter(writer);
} catch (RETCODE_ERR err) {
// ... check for cause of failure
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

250

Module Documentation

6.110

Subscriber Use Cases

Working with subscribers.

6.110.1

Setting up a subscriber

Set up participant (p. 239)


Create a Subscriber
SubscriberQos subscriber_qos = new SubscriberQos();
// MySubscriberListener is user defined and
// implements SubscriberListener
SubscriberListener subscriber_listener
= new MySubscriberListener(); // or = null
participant.get_default_subscriber_qos(subscriber_qos);
Subscriber subscriber = null;
try {
subscriber = participant.create_subscriber(subscriber_qos,
subscriber_listener,
StatusKind.STATUS_MASK_ALL);
} catch (RETCODE_ERROR err) {
// respond to exception
}

6.110.2

Set up subscriber to access received data

Set up subscriber (p. 250)


Set up to handle the DATA ON READERS STATUS status, in one or
both of the following two ways.
Enable DATA ON READERS STATUS for the SubscriberListener associated with the subscriber (p. 258)
The processing to handle the status change is done in the
com.rti.dds.subscription.SubscriberListener.on data on readers (p. 1504) method of the attached listener.
Typical processing will access the received data (p. 251), either in
arbitrary order or in a coherent and ordered manner (p. 252).
Enable DATA ON READERS STATUS for the StatusCondition
associated with the subscriber (p. 259)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.110 Subscriber Use Cases

251

The processing to handle the status change is done when the subscribers attached status condition is triggered (p. 261) and the
DATA ON READERS STATUS status on the subscriber is changed.
Typical processing will access the received data (p. 251), either in
an arbitrary order or in a coherent and ordered manner (p. 252).

6.110.3

Access received data via a subscriber

Ensure subscriber is set up to access received data (p. 250)


Get the list of readers that have data samples available:
DataReaderSeq reader_seq = new DataReaderSeq(); // list of readers
int max_samples = DataReader.LENGTH_UNLIMITED;
int sample_state_mask = SampleStateKind.NOT_READ_SAMPLE_STATE;
int view_state_mask = ViewStateKind.ANY_VIEW_STATE;
int instance_state_mask = InstanceStateKind.ANY_INSTANCE_STATE;
try {
subscriber.get_datareaders(reader_seq,
sample_state_mask,
view_state_mask,
instance_state_mask);
} catch (RETCODE_ERROR err) {
// handle exception
}

Upon successfully getting the list of readers with data, process the data
readers to either:
Read the data in each reader (p. 255), OR
Take the data in each reader (p. 254)
If the intent is to access the data coherently or in order (p. 252), the
list of data readers must be processed in the order returned:
for (int i = 0; i < reader_seq.size(); ++i) {
FooDataReader reader = (FooDataReader) reader_seq.get(i);
// Take the data from reader,
//
OR
// Read the data from reader
}

Alternatively, call com.rti.dds.subscription.Subscriber.notify datareaders (p. 1491) to invoke the DataReaderListener for each of the
data readers.
subscriber.notify_datareaders();

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

252

Module Documentation

6.110.4

Access received data coherently and/or in order

To access the received data coherently and/or in an ordered manner, according


to the settings of the com.rti.dds.infrastructure.PresentationQosPolicy
(p. 1221) attached to a com.rti.dds.subscription.Subscriber (p. 1476):
Ensure subscriber is set up to access received data (p. 250)
Indicate that data will be accessed via the subscriber:
subscriber.begin_access();

Access received data via the subscriber, making sure that the
data readers are processed in the order returned. (p. 251)
Indicate that the data access via the subscriber is done:
subscriber.end_access();

6.110.5

Tearing down a subscriber

Delete Subscriber:
try {
participant.delete_subscriber(subscriber);
} catch (RETCODE_ERROR err) {
// handle exception
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.111 DataReader Use Cases

6.111

253

DataReader Use Cases

Working with data readers.

6.111.1

Setting up a data reader

Set up subscriber (p. 250)


Set up a topic (p. 241)
Create a data reader, FooDataReader, of user data type Foo:
DataReaderQos reader_qos = new DataReaderQos();
// MyReaderListener is user defined and
// implements DataReaderListener
DataReaderListener reader_listener
= new MyReaderListener(); // or = null
subscriber.get_default_datareader_qos(reader_qos);
FooDataReader reader = null;
try {
reader = (FooDataReader) subscriber.create_datareader(topic,
reader_qos,
reader_listener,
StatusKind.STATUS_MASK_ALL);
} catch (RETCODE_ERROR err) {
// respond to exception
}

6.111.2

Managing instances

Given a data reader


FooDataReader reader = ...;

Getting an instance key value of user data type Foo


Foo data = new Foo();
// user data of type Foo
// ...
try {
reader.get_key_value(data, instance_handle);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

254

Module Documentation

6.111.3

Set up reader to access received data

Set up data reader (p. 253)


Set up to handle the DATA AVAILABLE STATUS status, in one or both
of the following two ways.
Enable DATA AVAILABLE STATUS for the DataReaderListener associated with the data reader (p. 258)
The processing to handle the status change is done in
the com.rti.dds.subscription.DataReaderListener.on data available (p. 520) method of the attached listener.
Typical processing will access the received data (p. 254).
Enable DATA AVAILABLE STATUS for the StatusCondition
associated with the data reader (p. 259)
The processing to handle the status change is done when the data
readers attached status condition is triggered (p. 261) and the
DATA AVAILABLE STATUS status on the data reader is changed.
Typical processing will access the received data (p. 254).

6.111.4

Access received data via a reader

Ensure reader is set up to access received data (p. 254)


Access the received data, by either:
Taking the received data in the reader (p. 254), OR
Reading the received data in the reader (p. 255)

6.111.5

Taking data

Ensure reader is set up to access received data (p. 254)


Take samples of user data type Foo. The samples are removed from the
Service. The caller is responsible for deallocating the buffers.
FooSeq
SampleInfoSeq
int
int
int

data_seq = new FooSeq();


// holder for sequence of user data type Foo
info_seq = new SampleInfoSeq(); // holder for sequence of DDS_SampleInfo
max_samples;
sample_state_mask = SampleStateMask.ANY_SAMPLE_STATE;
view_state_mask = ViewStateMask.ANY_VIEW_STATE;

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.111 DataReader Use Cases


int

255

instance_state_mask = InstanceStateMask.ANY_INSTANCE_STATE;

try {
reader.take(data_seq, info_seq,
max_samples,
sample_state_mask,
view_state_mask,
instance_state_mask);
} catch (RETCODE_ERROR) {
// ... check for cause of failure
}

Use the received data


// Use the received data samples data_seq and associated
// information info_seq
for (int i = 0; i < data_seq.size(); ++i) {
// use... data_seq.get(i) ...
// use... info_seq.get(i) ...
}

Return the data samples and the information buffers back to the middleware. IMPORTANT : Once this call returns, you must not retain any
pointers to any part of any sample or sample info object.
reader.return_loan(data_seq, info_seq);

6.111.6

Reading data

Ensure reader is set up to access received data (p. 254)


Read samples of user data type Foo. The samples are not removed from
the Service. It remains responsible for deallocating the buffers.
FooSeq
SampleInfoSeq
int
int
int
int

data_seq = new FooSeq();


// holder for sequence of user data type Foo
info_seq = new SampleInfoSeq)_; // holder for sequence of DDS_SampleInfo
max_samples;
sample_state_mask = SampleStateMask.ANY_SAMPLE_STATE;
view_state_mask = ViewStateMask.ANY_VIEW_STATE;
instance_state_mask = InstanceStateMask.ANY_INSTANCE_STATE;

try {
reader.read(data_seq, info_seq,
max_samples,
sample_state_mask,
view_state_mask,
instance_state_mask);
} catch (RETCODE_ERROR) {
// ... check for cause of failure
}
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

256

Module Documentation
Use the received data
// Use the received data samples data_seq and associated
// information info_seq
for (int i = 0; i < data_seq.size(); ++i) {
// use... data_seq.get(i) ...
// use... info_seq.get(i) ...
}

Return the data samples and the information buffers back to the middleware
reader.return_loan(data_seq, info_seq);

6.111.7

Tearing down a data reader

Delete DDSDataReader:
try {
subscriber.delete_datareader(reader);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.112 Entity Use Cases

6.112

257

Entity Use Cases

Working with entities.

6.112.1

Enabling an entity

To enable an com.rti.dds.infrastructure.Entity (p. 931)


try {
entity.enable();
} catch (RETCODE_ERROR err) {
System.out.println(
"*** Error: failed to enable entity");
}

6.112.2

Checking if a status changed on an entity.

Given an com.rti.dds.infrastructure.Entity (p. 931) and a


com.rti.dds.infrastructure.StatusKind (p. 1451) to check for,
get the list of statuses that have changed since the last time they were
respectively cleared.
int status_changes_list = entity.get_status_changes();

Check if status kind was changed since the last time it was cleared.
A plain communication status change is cleared when the status is read
using the entitys get <plain communication status>() method. A
read communication status change is cleared when the data is taken from
the middleware via a TDataReader take() call [see Changes in Status
(p. 111) for details].
if ((status_changes_list & status_kind) != 0) {
return true; /* ... YES, status_kind changed ... */
} else {
return false; /* ... NO, status_kind did NOT change ... */
}

6.112.3

Changing the QoS for an entity

The QoS for an entity can be specified at the entity creation time. Once an
entity has been created, its QoS can be manipulated as follows.
Get an entitys QoS settings using get qos (abstract) (p. 933)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

258

Module Documentation
try {
entity.get_qos(qos);
} catch (RETCODE_ERROR err) {
System.out.println("***Error: failed to get qos\n");
}

Change the desired qos policy fields


/* Change the desired qos policies */
/* qos.policy.field = ... */

Set the qos using set qos (abstract) (p. 932).


try {
entity.set_qos(qos);
} catch (RETCODE_IMMUTABLE_POLICY immutable) {
System.out.println(
"***Error: tried changing a policy that can only be" +
"
set at entity creation time\n");
} catch (RETCODE_INCONSISTENT_POLICY inconsistent) {
System.out.println(
"***Error: tried changing a policy to a value inconsistent" +
"
with other policy settings\n");
} catch (RETCODE_ERROR other) {
System.out.println(
"***Error: tried changing a policy that can only be" +
"
set at entity creation time\n");
}

6.112.4

Changing the listener and enabling/disabling statuses associated with it

The listener for an entity can be specified at the entity creation time. By default
the listener is enabled for all the statuses supported by the entity.
Once an entity has been created, its listener and/or the statuses for which it is
enabled can be manipulated as follows.
User defines entity listener methods
/* ... methods defined by EntityListener ... */
public class MyEntityListener implements Listener {
// ... methods defined by EntityListener ...
}

Get an entitys listener using get listener (abstract) (p. 934)


entity_listener = entity.get_listener();

Enable status kind for the listener


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.112 Entity Use Cases

259

enabled_status_list |= status_kind;

Disable status kind for the listener


enabled_status_list &= ~status_kind;

Set an entitys listener to entity listener using set listener (abstract) (p. 934). Only enable the listener for the statuses specified by
the enabled status list.
try {
entity.set_listener(entity_listener, enabled_status_list);
} catch (RETCODE_ERROR err) {
// respond to failure
}

6.112.5

Enabling/Disabling statuses associated with a status condition

Upon entity creation, by default, all the statuses are enabled for the DDS StatusCondition associated with the entity.
Once an entity has been created, the list of statuses for which the DDS StatusCondition is triggered can be manipulated as follows.
Given an entity, a status kind, and the associated status condition:
statuscondition = entity.get_statuscondition();

Get the list of statuses enabled for the status condition


enabled_status_list = statuscondition.get_enabled_statuses();

Check if the given status kind is enabled for the status condition
if ((enabled_status_list & status_kind) > 0) {
/*... YES, status_kind is enabled ... */
} else {
/* ... NO, status_kind is NOT enabled ... */
}

Enable status kind for the status condition


try {
statuscondition.set_enabled_statuses(enabled_status_list | status_kind);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

260

Module Documentation
Disable status kind for the status condition
try {
statuscondition.set_enabled_statuses(enabled_status_list & ~status_kind);
} catch (RETCODE_ERROR err) {
// ... check for cause of failure
}

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.113 Waitset Use Cases

6.113

261

Waitset Use Cases

Using wait-sets and conditions.

6.113.1

Setting up a wait-set

Create a wait-set
WaitSet waitset = new WaitSet();

Attach conditions
Condition cond1 = ...;
Condition cond2 = entity.get_statuscondition();
Condition cond3 = reader.create_readcondition(
SampleStateKind.NOT_READ_SAMPLE_STATE,
ViewStateKind.ANY_VIEW_STATE,
InstanceStateKind.ANY_INSTANCE_STATE);
Condition cond4 = new GuardCondition();
Condition cond5 = ...;
waitset.attach_condition(cond1);
waitset.attach_condition(cond2);
waitset.attach_condition(cond3);
waitset.attach_condition(cond4);
waitset.attach_condition(cond5);

6.113.2

Waiting for condition(s) to trigger

Set up a wait-set (p. 261)


Wait for a condition to trigger or timeout, whichever occurs first
Duration_t timeout = new Duration_t(0, 1000000); // 1ms
ConditionSeq active_conditions = new ConditionSeq(); // list of active conditions
boolean is_cond1_triggered = false;
boolean is_cond2_triggered = false;
try {
waitset.wait(active_conditions, timeout);
// check if "cond1" or "cond2" are triggered:
for (int i = 0; i < active_conditions.size(); ++i) {
if (active_conditions.get(i) == cond1) {
System.out.println("Cond1 was triggered!");
is_cond1_triggered = true;
}
if (active_conditions.get(i) == cond2) {
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

262

Module Documentation
System.out.println("Cond2 was triggered!");
is_cond2_triggered = true;
}
}
if (is_cond1_triggered) {
// ... do something because "cond1" was triggered ...
}
if (is_cond2_triggered) {
// ... do something because "cond2" was triggered ...
}
} catch (RETCODE_TIMEOUT timed_out) {
// timeout!
System.out.println(
"Wait timed out!! None of the conditions was triggered.");
} catch (RETCODE_ERROR ex) {
// ... check for cause of failure
throw ex;
}

6.113.3

Tearing down a wait-set

Delete the wait-set


waitset.delete();
waitset = null;
// let the wait set be garbage collected

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.114 Transport Use Cases

6.114

263

Transport Use Cases

Working with pluggable transports.

6.114.1

Changing the automatically registered built-in


transports

The com.rti.dds.infrastructure.TransportBuiltinKind.MASK DEFAULT


(p. 121)
specifies
the
transport
plugins
that
will
be
automatically
registered
with
a
newly
created
com.rti.dds.domain.DomainParticipant (p. 654) by default.
This default can be changed by changing the value of the
value of TRANSPORT BUILTIN (p. 119) Qos Policy on the
com.rti.dds.domain.DomainParticipant (p. 654)
To change the com.rti.dds.domain.DomainParticipantQos.transport builtin (p. 775) Qos Policy:
DomainParticipantQos participant_qos = new DomainParticipantQos();
factory.get_default_participant_qos(participant_qos);
participant_qos.transport_builtin.mask = TransportBuiltinKind.SHMEM |
TransportBuiltinKind.UDPv4;

6.114.2

Changing the properties of the automatically registered builtin transports

The behavior of the automatically registered builtin transports can be altered


by changing their properties.
Tell the com.rti.dds.domain.DomainParticipantFactory (p. 742) to
create the participants disabled, as described in Turning off autoenable of newly created participant(s) (p. 239)
Get the property of the desired builtin transport plugin,
com.rti.ndds.transport.UDPv4Transport (p. 1668)

say

UDPv4Transport.Property_t property = new UDPv4Transport.Property_t();


TransportSupport.get_builtin_transport_property(participant, property);

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

264

Module Documentation
Change the property fields as desired. Note that the properties should be
changed carefully, as inappropriate values may prevent communications.
For example, the com.rti.ndds.transport.UDPv4Transport (p. 1668)
properties can be changed to support large messages (assuming the underlying operating systems UDPv4 stack supports the large message size).
Note: if message size max is increased from the default for any of the
built-in transports, then the DDS ReceiverPoolQosPolicy.buffer size on
the DomainParticipant should also be changed.
/* Increase the UDPv4 maximum message size to 64K (large messages). */
property.message_size_max
= 65535;
property.recv_socket_buffer_size = 65535;
property.send_socket_buffer_size = 65535;

Set the property of the desired builtin transport plugin,


com.rti.ndds.transport.UDPv4Transport (p. 1668)

say

TransportSupport.set_builtin_transport_property(participant, property);

Enable the participant (p. 257) to turn on communications with other


participants in the domain using the new properties for the automatically
registered builtin transport plugins.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.115 Filter Use Cases

6.115

265

Filter Use Cases

Working with data filters.

6.115.1

Introduction

RTI Connext supports filtering data either during the exchange


from
com.rti.dds.publication.DataWriter
(p. 557)
to
com.rti.dds.subscription.DataReader (p. 487), or after the data has
been stored at the com.rti.dds.subscription.DataReader (p. 487).
Filtering
during
the
exchange
process
is
performed
by
a
com.rti.dds.topic.ContentFilteredTopic (p. 471), which is created by
the com.rti.dds.subscription.DataReader (p. 487) as a way of specifying a
subset of the data samples that it wishes to receive.
Filtering
samples
that
have
already
been
received
by
the
com.rti.dds.subscription.DataReader (p. 487) is performed by creating a com.rti.dds.subscription.QueryCondition (p. 1311), which
can then used to check for matching samples, be alerted when
matching samples arrive, or retrieve matching samples through use
of
the
com.rti.ndds.example.FooDataReader.read w condition
(p. 990) or com.rti.ndds.example.FooDataReader.take w condition
(p. 991) functions.
(Conditions may also be used with the APIs
com.rti.ndds.example.FooDataReader.read next instance w condition (p. 1004) and com.rti.ndds.example.FooDataReader.take next instance w condition (p. 1006).)
Filtering may be performed on any topic, either keyed or un-keyed, except the
Built-in Topics (p. 157). Filtering may be perfomed on any field, subset of
fields, or combination of fields, subject only to the limitations of the filter syntax,
and some restrictions against filtering some sparse value types of the Dynamic
Data (p. 175) API.
RTI Connext contains built in support for filtering using SQL syntax, described
in the Queries and Filters Syntax (p. 286) module.
6.115.1.1

Overview of ContentFilteredTopic

Each
com.rti.dds.topic.ContentFilteredTopic
(p. 471)
is
created
based
on
an
existing
com.rti.dds.topic.Topic
(p. 1545).
The com.rti.dds.topic.Topic (p. 1545) specifies the field names
and field types of the data contained within the topic.
The
com.rti.dds.topic.ContentFilteredTopic (p. 471), by means of its filter expression and expression parameters, futher specifies the values of the
data which the com.rti.dds.subscription.DataReader (p. 487) wishes to
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

266

Module Documentation

receive.
Custom filters may also be constructed and utilized as described in the Creating Custom Content Filters (p. 271) module.
Once the com.rti.dds.topic.ContentFilteredTopic (p. 471) has been created, a com.rti.dds.subscription.DataReader (p. 487) can be created
using the filtered topic.
The filters characteristics are exchanged between the com.rti.dds.subscription.DataReader (p. 487) and any matching
com.rti.dds.publication.DataWriter (p. 557) during the discovery processs.
If the com.rti.dds.publication.DataWriter (p. 557) allows (by
com.rti.dds.infrastructure.DataWriterResourceLimitsQosPolicy.max (p. 623))
and
the
number
of
filtered
remote reader filters
com.rti.dds.subscription.DataReader (p. 487) is less than or equal
to 32, and the com.rti.dds.subscription.DataReader (p. 487) s
com.rti.dds.infrastructure.TransportMulticastQosPolicy
(p. 1590)
is empty, then the com.rti.dds.publication.DataWriter (p. 557) will performing filtering and send to the com.rti.dds.subscription.DataReader
(p. 487) only those samples that meet the filtering criteria.
If disallowed by the com.rti.dds.publication.DataWriter (p. 557), or
if more than 32 com.rti.dds.subscription.DataReader (p. 487) require
filtering, or the com.rti.dds.subscription.DataReader (p. 487) has set
the com.rti.dds.infrastructure.TransportMulticastQosPolicy (p. 1590),
then the com.rti.dds.publication.DataWriter (p. 557) sends all samples to the com.rti.dds.subscription.DataReader (p. 487), and the
com.rti.dds.subscription.DataReader (p. 487) discards any samples that
do not meet the filtering criteria.
Although the filter expression cannot be changed once the
com.rti.dds.topic.ContentFilteredTopic
(p. 471)
has
been
created,
the
expression parameters
can
be
modified
using
com.rti.dds.topic.ContentFilteredTopic.set expression parameters (p. 473).
Any changes made to the filtering criteria
by
means
of
com.rti.dds.topic.ContentFilteredTopic.set expression parameters (p. 473), will be conveyed to any conNew samples
nected com.rti.dds.publication.DataWriter (p. 557).
will be subject to the modified filtering criteria, but samples that
have already been accepted or rejected are unaffected.
However, if
the com.rti.dds.subscription.DataReader (p. 487) connects to a
com.rti.dds.publication.DataWriter (p. 557) that re-sends its data,
the re-sent samples will be subjected to the new filtering criteria.
6.115.1.2

Overview of QueryCondition

com.rti.dds.subscription.QueryCondition
(p. 1311)
combine
aspects
of
the
content
filtering
capabilities
of
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.115 Filter Use Cases

267

com.rti.dds.topic.ContentFilteredTopic (p. 471) with state filtering capabilities of com.rti.dds.subscription.ReadCondition (p. 1313)
to create a reconfigurable means of filtering or searching data in the
com.rti.dds.subscription.DataReader (p. 487) queue.
com.rti.dds.subscription.QueryCondition (p. 1311) may be created on
a disabled com.rti.dds.subscription.DataReader (p. 487), or after the
com.rti.dds.subscription.DataReader (p. 487) has been enabled. If the
com.rti.dds.subscription.DataReader (p. 487) is enabled, and has already
recevied and stored samples in its queue, then all data samples in the are filtered against the com.rti.dds.subscription.QueryCondition (p. 1311) filter criteria at the time that the com.rti.dds.subscription.QueryCondition
(Note that an exclusive lock is held on the
(p. 1311) is created.
com.rti.dds.subscription.DataReader (p. 487) sample queue for the duration of the com.rti.dds.subscription.QueryCondition (p. 1311) creation).
Once
created,
incoming
samples
are
filtered
against
com.rti.dds.subscription.QueryCondition
(p. 1311)
filter
teria at the time of their arrival and storage into
com.rti.dds.subscription.DataReader (p. 487) queue.

all
crithe

The number of com.rti.dds.subscription.QueryCondition (p. 1311) filters


that an individual com.rti.dds.subscription.DataReader (p. 487) may create is set by com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy.max query condition filters (p. 554), to an upper maximum of 32.

6.115.2

Filtering with ContentFilteredTopic

Set up subscriber (p. 250)


Set up a topic (p. 241)
Create a ContentFilteredTopic, of user data type Foo:
String cft_param_list[] = {"1", "100"};
StringSeq cft_parameters = new StringSeq(java.util.Arrays.asList(cft_param_list));
ContentFilteredTopic cft = participant.create_contentfilteredtopic(
"ContentFilteredTopic",
topic,
"value > %0 AND value < %1",
cft_parameters);
if (cft == null) {
System.err.println("create_contentfilteredtopic error\n");
return;
}

Create a FooReader using the ContentFilteredTopic:


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

268

Module Documentation
FooDataReader reader = (FooDataReader)
subscriber.create_datareader(
cft,
datareader_qos, // or Subscriber.DATAREADER_QOS_DEFAULT //
listener, // or null //
StatusKind.STATUS_MASK_ALL);
if (reader == null) {
System.err.println("create_datareader error\n");
return;
}

Once
setup,
reading
samples
with
a
com.rti.dds.topic.ContentFilteredTopic (p. 471) is exactly the
same as normal reads or takes, as decribed in DataReader Use Cases
(p. 253).
Changing filter crieria using set expression parameters:
cft_parameters.set(0, "5");
cft_parameters.set(1, "9");
cft.set_expression_parameters(cft_parameters);

6.115.3

Filtering with Query Conditions

Given a data reader of type Foo


FooDataReader reader = ...;

Creating a QueryCondition
QueryCondition queryCondition = null;
String qc_param_list[] = {"1", "100"};
StringSeq qc_parameters = new StringSeq(java.util.Arrays.asList(cft_param_list));
queryCondition = reader.create_querycondition(SampleStateKind.NOT_READ_SAMPLE_STATE,
ViewStateKind.ANY_VIEW_STATE,
InstanceStateKind.ANY_INSTANCE_STATE,
"value > %0 AND value < %1",
qc_parameters);
if (queryCondition == null) {
System.err.println("create_querycondition error\n");
return;
}

Reading matching samples with a com.rti.dds.subscription.QueryCondition


(p. 1311)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.115 Filter Use Cases

269

FooSeq _dataSeq = new FooSeq();


SampleInfoSeq _infoSeq = new SampleInfoSeq();
try {
reader.read_w_condition(_dataSeq, _infoSeq,
ResourceLimitsQosPolicy.LENGTH_UNLIMITED,
queryCondition);
for(int i = 0; i < _dataSeq.size(); ++i) {
SampleInfo info = (SampleInfo)_infoSeq.get(i);
if (info.valid_data) {
// --- Process data here --- //
}
}
} catch (RETCODE_NO_DATA noData) {
// No data to process
} finally {
reader.return_loan(_dataSeq, _infoSeq);
}

com.rti.dds.subscription.QueryCondition.set query parameters


(p. 1312)
is
used
similarly
com.rti.dds.topic.ContentFilteredTopic.set expression parameters (p. 473), and the same coding techniques can be used.

to

Any
com.rti.dds.subscription.QueryCondition
(p. 1311)
that
have
been
created
must
be
deleted
before
the
com.rti.dds.subscription.DataReader (p. 487) can be deleted. This
can be done using com.rti.dds.subscription.DataReader.delete contained entities (p. 504) or manually as in:
retcode = reader.delete_readcondition(queryCondition);

6.115.4

Filtering Performance

Although RTI Connext supports filtering on any field or combination of


fields using the SQL syntax of the built-in filter, filters for keyed topics that filter solely on the contents of key fields have the potential for
much higher performance. This is because for key field only filters, the
com.rti.dds.subscription.DataReader (p. 487) caches the results of the filter (pass or not pass) for each instance. When another sample of the same
instance is seen at the com.rti.dds.subscription.DataReader (p. 487), the
filter results are retrieved from cache, dispensing with the need to call the filter
function.
This optimization applies to all filtering using the built-in SQL filter,
performed by the com.rti.dds.subscription.DataReader (p. 487),
for
either
com.rti.dds.topic.ContentFilteredTopic
(p. 471)
or
com.rti.dds.subscription.QueryCondition (p. 1311).
This does not
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

270

Module Documentation

apply to filtering perfomed for com.rti.dds.topic.ContentFilteredTopic


(p. 471) by the com.rti.dds.publication.DataWriter (p. 557).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.116 Creating Custom Content Filters

6.116

271

Creating Custom Content Filters

Working with custom content filters.

6.116.1

Introduction

By default, RTI Connext creates content filters with the DDS SQL FILTER,
which implements a superset of the DDS-specified SQL WHERE clause. However, in many cases this filter may not be what you want. Some examples are:
The default filter can only filter based on the content of a sample, not on a
computation on the content of a sample. You can use a custom filter that
is customized for a specific type and can filter based on a computation of
the type members.
You want to use a different filter language then SQL
This HOWTO explains how to write your own custom filter and is divided into
the following sections:
The Custom Content Filter API (p. 271)
Example Using C format strings (p. 272)

6.116.2

The Custom Content Filter API

A
custom
content
filter
is
created
by
calling
the
com.rti.dds.domain.DomainParticipant.register contentfilter
(p. 728) function with a com.rti.dds.topic.ContentFilter (p. 467) that
contains a compile, an evaluate function and a finalize function.
com.rti.dds.topic.ContentFilteredTopic (p. 471) can be created with
com.rti.dds.domain.DomainParticipant.create contentfilteredtopic with filter (p. 702) to use this filter.
A custom content filter is used by RTI Connext at the following times during the
life-time of a com.rti.dds.topic.ContentFilteredTopic (p. 471) (the function
called is shown in parenthesis).
When a com.rti.dds.topic.ContentFilteredTopic (p. 471) is created
(compile (p. 272))
When
the
filter
parameters
are
changed
on
the
com.rti.dds.topic.ContentFilteredTopic (p. 471) (compile (p. 272))
with
com.rti.dds.topic.ContentFilteredTopic.set expression parameters (p. 473)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

272

Module Documentation
When a sample is filtered (evaluate (p. 272)). This function is called by
the RTI Connext core with a de-serialized sample
When a com.rti.dds.topic.ContentFilteredTopic (p. 471) is deleted
(finalize (p. 272))

6.116.2.1

The compile function

The compile (p. 272) function is used to compile a filter expression and expression parameters. Please note that the term compile is intentionally loosely
defined. It is up to the user to decide what this function should do and return.
See com.rti.dds.topic.ContentFilter.compile (p. 468) for details.
6.116.2.2

The evaluate function

The evaluate (p. 273) function is called each time a sample is received to determine if a sample should be filtered out and discarded.
See com.rti.dds.topic.ContentFilter.evaluate (p. 469) for details.
6.116.2.3

The finalize function

The finalize (p. 273) function is called when an instance of the custom content
filter is no longer needed. When this function is called, it is safe to free all
resources used by this particular instance of the custom content filter.
See com.rti.dds.topic.ContentFilter.finalize (p. 470) for details.

6.116.3

Example Using C format strings

Assume that you have a type Foo.


You want to write a custom filter function that will drop all samples where the
value of Foo.x > x and x is a value determined by an expression parameter. The
filter will only be used to filter samples of type Foo.
6.116.3.1

Writing the Compile Function

The first thing to note is that we can ignore the filter expression, since we
already know what the expression is. The second is that x is a parameter that
can be changed. By using this information, the compile function is very easy to
implement. Simply return the parameter string. This string will then be passed
to the evaluate function every time a sample of this type is filtered.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.116 Creating Custom Content Filters

273

Below is the entire compile (p. 272) function.


public void compile(
ObjectHolder new_compile_data, String expression,
StringSeq parameters, TypeCode type_code, String type_class_name,
Object old_compile_data) {
new_compile_data.value = parameters.get(0);
}

6.116.3.2

Writing the Evaluate Function

The next step is to implement the evaluate function. The evaluate function
receives the parameter string with the actual value to test against. Thus the
evaluate function must read the actual value from the parameter string before
evaluating the expression. Below is the entire evaluate (p. 272) function.
public boolean evaluate(
Object compile_data, Object sample, FilterSampleInfo meta_data) {
String parameter = (String)compile_data;
int x;
Foo foo_sample = (Foo)sample;
x = Integer.parseInt(parameter);
return (foo_sample.x > x ? false : true);
}

6.116.3.3

Writing the Finalize Function

The last function to write is the finalize function. It is safe to free all resources
used by this particular instance of the custom content filter that is allocated in
compile. Below is the entire finalize (p. 272) function.
public void finalize(
Object compile_data) {
/* nothing to do since no resource are allocated */
}

6.116.3.4

Registering the Filter

Before the custom filter can be used, it must be registered with RTI Connext:
ContentFilter myCustomFilter = new MyContentFilter();
participant.register_contentfilter("MyCustomFilter", myCustomFilter);

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

274

Module Documentation

6.116.3.5

Unregistering the Filter

When the filter is no longer needed, it can be unregistered from RTI Connext:
participant.unregister_contentfilter("MyCustomFilter");

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.117 Large Data Use Cases

6.117

275

Large Data Use Cases

Working with large data types.

6.117.1

Introduction

RTI Connext supports data types whose size exceeds the maximum message
size of the underlying transports. A com.rti.dds.publication.DataWriter
(p. 557) will fragment data samples when required. Fragments are automatically
reassembled at the receiving end.
Once all fragments of a sample have been received, the new sample is passed
to the com.rti.dds.subscription.DataReader (p. 487) which can then make
it available to the user. Note that the new sample is treated as a regular
sample at that point and its availability depends on standard QoS settings such
as com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max samples
(p. 1351) and com.rti.dds.infrastructure.HistoryQosPolicyKind.HistoryQosPolicyKind.KEEP LAST HISTORY QOS.
The large data feature is fully supported by all DDS APIs, so its use is mostly
transparent. Some additional considerations apply as explained below.

6.117.2

Writing Large Data

In
order
to
use
the
large
data
feature
with
the
com.rti.dds.infrastructure.ReliabilityQosPolicyKind.ReliabilityQosPolicyKind.RELIABLE RELIABILITY QOS setting, the com.rti.dds.publication.DataWriter
(p. 557)
must
be
configured
as
an
asynchronous
writer
(com.rti.dds.infrastructure.PublishModeQosPolicyKind.PublishModeQosPolicyKind.ASYNCHRONOUS PUBLISH MODE QOS) with associated com.rti.dds.publication.FlowController
(p. 964).
While
the
use
of
an
asynchronous
writer
and
flow
controller
is
optional
when
using
the
com.rti.dds.infrastructure.ReliabilityQosPolicyKind.ReliabilityQosPolicyKind.BEST EFFORT RELIABILITY QOS setting, most large data use cases will benefit
from the use of a flow controller to prevent flooding the network when fragments
are being sent.
Set up writer (p. 248)
Add flow control (p. 243)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

276

Module Documentation

6.117.3

Receiving Large Data

Large data is supported by default and in most cases, no further changes are
required.
The com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy
allows
tuning
the
resources
available
to
the
(p. 542)
com.rti.dds.subscription.DataReader (p. 487) for reassembling fragmented large data.
Set up reader (p. 253)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.118 Documentation Roadmap

6.118

277

Documentation Roadmap

This section contains a roadmap for the new user with pointers on what to read
first.
If you are new to RTI Connext, we recommend starting in the following order:
See the Getting Started Guide. This document provides download and
installation instructions. It also lays out the core value and concepts
behind the product and takes you step-by-step through the creation of a
simple example application.
The Users Manual describes the features of the product and how to use
them. It is organized around the structure of the DDS APIs and certain
common high-level tasks.
The documentation in the DDS API Reference (p. 280) provides an
overview of API classes and modules for the DDS data-centric publishsubscribe (DCPS) package from a programmers perspective. Start by
reading the documentation on the main page.
After reading the high level module documentation, look at the Publication Example (p. 237) and Subscription Example (p. 238) for stepby-step examples of creating a publication and subscription. These are
hyperlinked code snippets to the full API documentation, and provide a
good place to begin learning the APIs.
Next, work through your own application using the example code files
generated by rtiddsgen (p. 298).
To integrate similar code into your own application and build system, you
will likely need to refer to the Platform Notes.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

278

Module Documentation

6.119

Conventions

This section describes the conventions used in the API documentation.

6.119.1

Unsupported Features

[Not supported (optional)] This note means that the optional feature from
the DDS specification is not supported in the current release.

6.119.2

API Documentation Terms

In the API documentation, the term module refers to a logical grouping of


documentation and elements in the API.

6.119.3

Stereotypes

Commonly used stereotypes in the API documentation include the following.


6.119.3.1

Extensions

<<eXtension>> ( p. 278)
An RTI Connext product extension to the DDS standard specification.
The extension APIs complement the standard APIs specified by the
OMG DDS specification. They are provided to improve product
usability and enable access to product-specific features such as pluggable transports.
6.119.3.2

Experimental

<<experimental>> ( p. 278)
RTI Connext experimental features are used to evaluate new features
and get user feedback.
These features are not guaranteed to be fully supported and might be
implemented only of some of the programming languages supported
bt RTI Connext
The functional APIs corresponding to experimental features can be
distinguished from other APIs by the suffix exp.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.119 Conventions

279

Experimental features may or may not appear in future product releases.


The name of the experimental features APIs will change if they become officially supported. At the very least the suffix exp will be
removed.
Experimental features should not be used in production.
6.119.3.3

Types

<<interface>> ( p. 279)
Pure interface type with no state.
Languages such as Java natively support the concept of an interface type, which is a collection of method signatures devoid of any
dynamic state.
In C++, this is achieved via a class with all pure virtual methods
and devoid of any instance variables (ie no dynamic state).
Interfaces are generally organized into a type hierarchy. Static typecasting along the interface type hierarchy is safe for valid objects.
<<generic>> ( p. 279)
A generic type is a skeleton class written in terms of generic parameters. Type-specific instantiations of such types are conventionally referred to in this documentation in terms of the hypothetical
type Foo; for example: FooSeq, FooDataType, FooDataWriter,
and FooDataReader.
<<singleton>> ( p. 279)
Singleton class. There is a single instance of the class.
Generally acccessed via a get instance() static method.
6.119.3.4

Method Parameters

<<in>> ( p. 279)
An input parameter.
<<out>> ( p. 279)
An output parameter.
<<inout>> ( p. 279)
An input and output parameter.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

280

Module Documentation

6.120

DDS API Reference

RTI Connext modules following the DDS module definitions.

Modules
Domain Module
Contains the com.rti.dds.domain.DomainParticipant ( p. 654) class that
acts as an entrypoint of RTI Connext and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant ( p. 654) also acts
as a container for the other objects that make up RTI Connext.

Topic Module
Contains
the
com.rti.dds.topic.Topic
( p. 1545),
com.rti.dds.topic.ContentFilteredTopic
( p. 471),
and
com.rti.dds.topic.MultiTopic
( p. 1190)
classes,
the
com.rti.dds.topic.TopicListener ( p. 1564) interface, and more generally,
all that is needed by an application to define com.rti.dds.topic.Topic
( p. 1545) objects and attach QoS policies to them.

Publication Module
Contains
the
com.rti.dds.publication.FlowController
( p. 964),
com.rti.dds.publication.Publisher
( p. 1262),
and
com.rti.dds.publication.DataWriter ( p. 557) classes as well as
the
com.rti.dds.publication.PublisherListener
( p. 1289)
and
com.rti.dds.publication.DataWriterListener
( p. 586)
interfaces,
and more generally, all that is needed on the publication side.

Subscription Module
Contains
the
com.rti.dds.subscription.Subscriber
( p. 1476),
com.rti.dds.subscription.DataReader
( p. 487),
and
com.rti.dds.subscription.ReadCondition
( p. 1313),
com.rti.dds.subscription.QueryCondition ( p. 1311) classes, as well
as the com.rti.dds.subscription.SubscriberListener ( p. 1503) and
com.rti.dds.subscription.DataReaderListener ( p. 518) interfaces, and
more generally, all that is needed on the subscription side.

Infrastructure Module
Defines the abstract classes and the interfaces that are refined by the other
modules. Contains common definitions such as return codes, status values,
and QoS policies.

Queries and Filters Syntax


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.120 DDS API Reference

6.120.1

281

Detailed Description

RTI Connext modules following the DDS module definitions.

6.120.2

Overview

Information
flows
with
the
aid
of
the
following
constructs:
com.rti.dds.publication.Publisher
(p. 1262)
and
on
the
sendcom.rti.dds.publication.DataWriter
(p. 557)
ing
side,
com.rti.dds.subscription.Subscriber
(p. 1476)
and
com.rti.dds.subscription.DataReader (p. 487) on the receiving side.
A com.rti.dds.publication.Publisher (p. 1262) is an object responsible for data distribution.
It may publish data of different data types.
A TDataWriter acts as a typed (i.e.
each
com.rti.dds.publication.DataWriter (p. 557) object is dedicated
to one application data type) accessor to a publisher.
A
com.rti.dds.publication.DataWriter (p. 557) is the object the application must use to communicate to a publisher the existence and value of
data objects of a given type. When data object values have been communicated to the publisher through the appropriate data-writer, it is the
publishers responsibility to perform the distribution (the publisher will do
this according to its own QoS, or the QoS attached to the corresponding
data-writer). A publication is defined by the association of a data-writer
to a publisher. This association expresses the intent of the application to
publish the data described by the data-writer in the context provided by
the publisher.
A com.rti.dds.subscription.Subscriber (p. 1476) is an object responsible for receiving published data and making it available (according to
the Subscribers QoS) to the receiving application. It may receive and
dispatch data of different specified types. To access the received data, the
application must use a typed TDataReader attached to the subscriber.
Thus, a subscription is defined by the association of a data-reader with
a subscriber. This association expresses the intent of the application to
subscribe to the data described by the data-reader in the context provided
by the subscriber.
com.rti.dds.topic.Topic (p. 1545) objects conceptually fit between publications and subscriptions. Publications must be known in such a way that
subscriptions can refer to them unambiguously. A com.rti.dds.topic.Topic
(p. 1545) is meant to fulfill that purpose: it associates a name (unique in the
domain i.e. the set of applications that are communicating with each other),
a data type, and QoS related to the data itself. In addition to the topic
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

282

Module Documentation

QoS, the QoS of the com.rti.dds.publication.DataWriter (p. 557) associated with that Topic and the QoS of the com.rti.dds.publication.Publisher
(p. 1262) associated to the com.rti.dds.publication.DataWriter (p. 557)
control the behavior on the publishers side, while the corresponding
com.rti.dds.topic.Topic (p. 1545), com.rti.dds.subscription.DataReader
(p. 487) and com.rti.dds.subscription.Subscriber (p. 1476) QoS control the
behavior on the subscribers side.
When an application wishes to publish data of a given type, it
must create a com.rti.dds.publication.Publisher (p. 1262) (or reuse
an already created one) and a com.rti.dds.publication.DataWriter
Sim(p. 557) with all the characteristics of the desired publication.
ilarly, when an application wishes to receive data, it must create a
com.rti.dds.subscription.Subscriber (p. 1476) (or reuse an already created
one) and a com.rti.dds.subscription.DataReader (p. 487) to define the subscription.

6.120.3

Conceptual Model

The overall conceptual model is shown below.


Notice that all the main communication objects (the specializations of Entity)
follow unified patterns of:
Supporting QoS (made up of several QosPolicy); QoS provides a generic
mechanism for the application to control the behavior of the Service and
tailor it to its needs. Each com.rti.dds.infrastructure.Entity (p. 931)
supports its own specialized kind of QoS policies (see QoS Policies
(p. 94)).
Accepting a com.rti.dds.infrastructure.Listener (p. 1130); listeners
provide a generic mechanism for the middleware to notify the application of relevant asynchronous events, such as arrival of data corresponding to a subscription, violation of a QoS setting, etc. Each
com.rti.dds.infrastructure.Entity (p. 931) supports its own specialized kind of listener. Listeners are related to changes in status conditions
(see Status Kinds (p. 110)).
Note that only one Listener per entity is allowed (instead of a list of
them). The reason for that choice is that this allows a much simpler (and,
thus, more efficient) implementation as far as the middleware is concerned.
Moreover, if it were required, the application could easily implement a
listener that, when triggered, triggers in return attached sub-listeners.
Accepting a com.rti.dds.infrastructure.StatusCondition (p. 1448)
(and a set of com.rti.dds.subscription.ReadCondition (p. 1313) obGenerated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.120 DDS API Reference

283

jects for the com.rti.dds.subscription.DataReader (p. 487)); conditions (in conjunction with com.rti.dds.infrastructure.WaitSet
(p. 1709) objects) provide support for an alternate communication style
between the middleware and the application (i.e., wait-based rather than
notification-based).
All DCPS entities are attached to a com.rti.dds.domain.DomainParticipant
(p. 654). A domain participant represents the local membership of the application in a domain. A domain is a distributed concept that links all the
applications able to communicate with each other. It represents a communication plane: only the publishers and the subscribers attached to the same
domain may interact.
com.rti.dds.infrastructure.DomainEntity (p. 653) is an intermediate object whose only purpose is to state that a DomainParticipant cannot contain
other domain participants.
At the DCPS level, data types represent information that is sent atomically.
For performance reasons, only plain data structures are handled by this level.
By default, each data modification is propagated individually, independently, and uncorrelated with other modifications. However, an application may request that several modifications be sent as a whole and interpreted as such at the recipient side. This functionality is offered on a Publisher/Subscriber basis. That is, these relationships can only be specified
among com.rti.dds.publication.DataWriter (p. 557) objects attached to
the same com.rti.dds.publication.Publisher (p. 1262) and retrieved among
com.rti.dds.subscription.DataReader (p. 487) objects attached to the same
com.rti.dds.subscription.Subscriber (p. 1476).
By definition, a com.rti.dds.topic.Topic (p. 1545) corresponds to a single data
type. However, several topics may refer to the same data type. Therefore, a
com.rti.dds.topic.Topic (p. 1545) identifies data of a single type, ranging from
one single instance to a whole collection of instances of that given type. This is
shown below for the hypothetical data type Foo.
In case a set of instances is gathered under the same topic, different instances
must be distinguishable. This is achieved by means of the values of some data
fields that form the key to that data set. The key description (i.e., the list of
data fields whose value forms the key) has to be indicated to the middleware.
The rule is simple: different data samples with the same key value represent
successive values for the same instance, while different data samples with different key values represent different instances. If no key is provided, the data set
associated with the com.rti.dds.topic.Topic (p. 1545) is restricted to a single
instance.
Topics need to be known by the middleware and potentially propagated. Topic objects are created using the create operations provided by
com.rti.dds.domain.DomainParticipant (p. 654).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

284

Module Documentation

The interaction style is straightforward on the publishers side: when the application decides that it wants to make data available for publication, it calls the
appropriate operation on the related com.rti.dds.publication.DataWriter
(p. 557) (this, in turn, will trigger its com.rti.dds.publication.Publisher
(p. 1262)).
On the subscribers side however, there are more choices: relevant information may arrive when the application is busy doing something else or when
the application is just waiting for that information. Therefore, depending
on the way the application is designed, asynchronous notifications or synchronous access may be more appropriate. Both interaction modes are allowed,
a com.rti.dds.infrastructure.Listener (p. 1130) is used to provide a callback
for synchronous access and a com.rti.dds.infrastructure.WaitSet (p. 1709)
associated with one or several com.rti.dds.infrastructure.Condition
(p. 464) objects provides asynchronous data access.
The same synchronous and asynchronous interaction modes can also be used
to access changes that affect the middleware communication status (see Status Kinds (p. 110)). For instance, this may occur when the middleware asynchronously detects an inconsistency. In addition, other middleware information
that may be relevant to the application (such as the list of the existing topics)
is made available by means of built-in topics (p. 157) that the application can
access as plain application data, using built-in data-readers.

6.120.4

Modules

DCPS consists of five modules:


Infrastructure module (p. 206) defines the abstract classes and the
interfaces that are refined by the other modules. It also provides support
for the two interaction styles (notification-based and wait-based) with the
middleware.
Domain
module
(p. 147)
contains
the
com.rti.dds.domain.DomainParticipant (p. 654) class that acts
as an entrypoint of the Service and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant (p. 654) also
acts as a container for the other objects that make up the Service.
Topic module (p. 161) contains the com.rti.dds.topic.Topic (p. 1545)
class, the com.rti.dds.topic.TopicListener (p. 1564) interface, and
more generally, all that is needed by the application to define
com.rti.dds.topic.Topic (p. 1545) objects and attach QoS policies to
them.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.120 DDS API Reference

285

Publication
module
(p. 180)
contains
the
and
com.rti.dds.publication.Publisher
(p. 1262)
com.rti.dds.publication.DataWriter (p. 557) classes as well as
the com.rti.dds.publication.PublisherListener (p. 1289) and
com.rti.dds.publication.DataWriterListener (p. 586) interfaces, and
more generally, all that is needed on the publication side.
Subscription
module
(p. 192)
contains
the
com.rti.dds.subscription.Subscriber
(p. 1476),
com.rti.dds.subscription.DataReader
(p. 487),
com.rti.dds.subscription.ReadCondition
(p. 1313),
and
com.rti.dds.subscription.QueryCondition (p. 1311) classes, as
well as the com.rti.dds.subscription.SubscriberListener (p. 1503)
and com.rti.dds.subscription.DataReaderListener (p. 518) interfaces, and more generally, all that is needed on the subscription
side.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

286

Module Documentation

6.121

Queries and Filters Syntax

6.121.1

Syntax for DDS Queries and Filters

A subset of SQL syntax is used in several parts of the specification:


The filter expression in the com.rti.dds.topic.ContentFilteredTopic
(p. 471)
The query expression in the com.rti.dds.subscription.QueryCondition
(p. 1311)
The topic expression in the com.rti.dds.topic.MultiTopic (p. 1190)
Those expressions may use a subset of SQL, extended with the possibility to
use program variables in the SQL expression. The allowed SQL expressions are
defined with the BNF-grammar below.
The following notational conventions are made:
NonTerminals are typeset in italics.
Terminals are quoted and typeset in a fixed width font. They are
written in upper case in most cases in the BNF-grammar below, but should
be case insensitive.
TOKENS are typeset in bold.
The notation (element // ,) represents a non-empty comma-separated
list of elements.

6.121.2

SQL grammar in BNF

Expression ::= FilterExpression


|
TopicExpression
|
QueryExpression
.
FilterExpression ::= Condition
TopicExpression ::= SelectFrom { Where } ;
QueryExpression ::= { Condition }{ ORDER BY (
NAME // ,) }
.
SelectFrom
Aggregation

::= SELECT Aggregation FROM


.
::= *
|
( SubjectFieldSpec // ,)

FIELD-

Selection

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.121 Queries and Filters Syntax


.
SubjectFieldSpec ::= FIELDNAME
|
FIELDNAME AS IDENTIFIER
|
FIELDNAME IDENTIFIER
.
Selection
::= TOPICNAME
|
TOPICNAME NaturalJoin JoinItem
.
JoinItem
::= TOPICNAME
|
TOPICNAME NaturalJoin JoinItem
|
( TOPICNAME NaturalJoin JoinItem )
.
NaturalJoin ::= INNER JOIN
|
INNER NATURAL JOIN
|
NATURAL JOIN
|
NATURAL INNER JOIN
.
Where
::= WHERE Condition
.
Condition
::= Predicate
|
Condition AND Condition
|
Condition OR Condition
|
NOT Condition
|
( Condition )
.
Predicate
::= ComparisonPredicate
|
BetweenPredicate
.
ComparisonPredicate ::= ComparisonTerm RelOp ComparisonTerm
.
ComparisonTerm
::= FieldIdentifier
| Parameter
.
BetweenPredicate
::= FieldIdentifier BETWEEN Range
|
FieldIdentifier NOT BETWEEN Range
.
FieldIdentifier
::= FIELDNAME
| IDENTIFIER
.
RelOp
::= = | > | >= | < | <= | <> | LIKE |
.
Range
::= Parameter AND Parameter
.
Parameter ::= INTEGERVALUE
|
CHARVALUE
|
FLOATVALUE
|
STRING
|
ENUMERATEDVALUE
|
BOOLEANVALUE
|
PARAMETER
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

287

MATCH

288

Module Documentation
.

Note INNER JOIN, INNER NATURAL JOIN, NATURAL JOIN, and NATURAL INNER JOIN are all aliases, in the sense that they have the same semantics. They are all supported because they all are part of the SQL standard.

6.121.3

Token expression

The syntax and meaning of the tokens used in the SQL grammar is described
as follows:
IDENTIFIER - An identifier for a FIELDNAME, and is defined as any
series of characters a, ..., z, A, ..., Z, 0, ..., 9, but may not start
with a digit.
Formal notation:
IDENTIFIER: LETTER ( PART LETTER )*
where LETTER : [ "A"-"Z"," ","a"-"z" ]
PART LETTER : [ "A"-"Z"," ","a"-"z","0"-"9" ]

FIELDNAME - A fieldname is a reference to a field in the data structure.


The dot . is used to navigate through nested structures. The number of
dots that may be used in a FIELDNAME is unlimited. The FIELDNAME
can refer to fields at any depth in the data structure. The names of the field
are those specified in the IDL definition of the corresponding structure,
which may or may not match the fieldnames that appear on the languagespecific (e.g., C/C++, Java) mapping of the structure. To reference to the
n+1 element in an array or sequence, use the notation [n], where n is a
natural number (zero included). FIELDNAME must resolve to a primitive
IDL type; that is either boolean, octet, (unsigned) short, (unsigned) long,
(unsigned) long long, float double, char, wchar, string, wstring, or enum.
Formal notation:
FIELDNAME: FieldNamePart ( "." FieldNamePart )*
where FieldNamePart : IDENTIFIER ( "[" Index "]" )*
Index> : (["0"-"9"])+
| ["0x","0X"](["0"-"9", "A"-"F", "a"-"f"])+

Primitive IDL types referenced by FIELDNAME are treated as different types


in Predicate according to the following table:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.121 Queries and Filters Syntax


Predicate Data Type
BOOLEANVALUE
INTEGERVALUE
FLOATVALUE
CHARVALUE
STRING
ENUMERATEDVALUE

289
IDL Type
boolean
octet, (unsigned) short, (unsigned)
long, (unsigned) long long
float, double
char, wchar
string, wstring
enum

TOPICNAME - A topic name is an identifier for a topic, and is defined


as any series of characters a, ..., z, A, ..., Z, 0, ..., 9, but may
not start with a digit.
Formal notation:
TOPICNAME : IDENTIFIER

INTEGERVALUE - Any series of digits, optionally preceded by a plus


or minus sign, representing a decimal integer value within the range of the
system. A hexadecimal number is preceded by 0x and must be a valid
hexadecimal expression.
Formal notation:
INTEGERVALUE : (["+","-"])? (["0"-"9"])+ [("L","l")]?
| (["+","-"])? ["0x","0X"](["0"-"9", "A"-"F", "a"-"f"])+ [("L","l")]?

CHARVALUE - A single character enclosed between single quotes.


Formal notation:
CHARVALUE : "" (~[""])? ""

FLOATVALUE - Any series of digits, optionally preceded by a plus or


minus sign and optionally including a floating point (.). A power-of-ten
expression may be postfixed, which has the syntax en or En, where n is
a number, optionally preceded by a plus or minus sign.
Formal notation:
FLOATVALUE : (["+","-"])? (["0"-"9"])* (".")? (["0"-"9"])+ ( EXPONENT )?
where EXPONENT : ["e","E"] (["+","-"])? (["0"-"9"])+

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

290

Module Documentation
STRING - Any series of characters encapsulated in single quotes, except
the single quote itself.

Formal notation:
STRING : "" (~[""])* ""

ENUMERATEDVALUE - An enumerated value is a reference to a


value declared within an enumeration. Enumerated values consist of the
name of the enumeration label enclosed in single quotes. The name used
for the enumeration label must correspond to the label names specified in
the IDL definition of the enumeration.
Formal notation:
ENUMERATEDVALUE : "" ["A" - "Z", "a" - "z"] ["A" - "Z", "a" - "z", " ", "0" - "9"]* ""

BOOLEANVALUE - Can either be TRUE or FALSE, case insensitive.


Formal notation (case insensitive):
BOOLEANVALUE : ["TRUE","FALSE"]

PARAMETER - A parameter is of the form %n, where n represents a


natural number (zero included) smaller than 100. It refers to the n + 1
th argument in the given context. Argument can only in primitive type
value format. It cannot be a FIELDNAME.
Formal notation:
PARAMETER : "%" (["0"-"9"])+

6.121.4

String Parameters

Strings used as parameter values must contain the enclosing quotation marks
() within the parameter value, and not place the quotation marks within the
expression statement. For example, the following expression is legal:
" symbol MATCH %0 " with parameter 0 = " IBM "

whereas the following expression will not compile:


" symbol MATCH %0 " with parameter 0 = " IBM "
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.121 Queries and Filters Syntax

6.121.5

291

Type compatability in Predicate

Only certain combination of type comparisons are valid in Predicate. The following table marked all the compatible pairs with YES:
INTEENUBOOLEANFLOAT- CHAR- STRING MERGERVALUE
VALUE
VALUE VALUE
ATEDVALUE
YES
BOOLEAN
INTEYES
YES
GERVALUE
YES
YES
FLOATVALUE
YES
YES
YES
CHARVALUE
YES
YES
STRING
YES(1)
ENUYES
MERYES(2) YES(2) YES(3)
ATEDVALUE
(1) See SQL Extension: Regular Expression Matching (p. 291)
(2) Because the formal notation of the Enumeration values, they are
compatible with string and char literals, but they are not compatible with
string or char variables, i.e., MyEnum=EnumValue would be correct,
but MyEnum=MyString is not allowed.
(3) Only for same type Enums.

6.121.6

SQL Extension: Regular Expression Matching

The relational operator MATCH may only be used with string fields. The righthand operator is a string pattern. A string pattern specifies a template that
the left-hand field value must match. The characters ,/?[]- !% have special
meanings.
MATCH is case-sensitive.
The pattern allows limited wild card matching under the following rules:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

292

Module Documentation

Character
,

[charlist]

[s-e]
%
[!charlist] or [ charlist]
[!s-e] or [ s-e]
\

Meaning
, separates a list of alternate
patterns. The field string is
matched if it matches one or more
of the patterns.
/ in the pattern string matches a
/ in the field string. This character
is used to separate a sequence of
mandatory substrings.
? in the pattern string matches
any single non-special characters in
the field string.
in the pattern string matches 0
or more non-special characters in
field string.
Matches any one of the characters
from the list of characters in
charlist.
Matches any character any
character from s to e, inclusive.
% is used to designate filter
expressions parameters.
Matches any characters not in
charlist (not supported).
Matches any characters not in the
interval [s-e] (not supported).
Escape character for special
characters (not supported)

The syntax is similar to the POSIX fnmatch syntax (1003.2-1992 section B.6).
The MATCH syntax is also similar to the subject strings of TIBCO Rendezvous.

6.121.7

Examples

Assuming Topic Location has as an associated type a structure with fields


flight id, x, y, z, and Topic FlightPlan has as fields flight id, source, destination. The following are examples of using these expressions.
Example of a filter expression (for com.rti.dds.topic.ContentFilteredTopic
(p. 471)) or a query expression (for com.rti.dds.subscription.QueryCondition
(p. 1311)):
"z < 1000 AND x < 23"

Examples

of

filter expression

using

MATCH

(for

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.121 Queries and Filters Syntax

293

com.rti.dds.topic.ContentFilteredTopic (p. 471)) operator:


"symbol MATCH NASDAQ/GOOG"
"symbol MATCH NASDAQ/[A-M]"
Example of a topic expression (for com.rti.dds.topic.MultiTopic (p. 1190)
[Not supported (optional)]):
"SELECT flight id, x, y, z AS height FROM Location NATURAL JOIN
FlightPlan WHERE height < 1000 AND x <23"

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

294

Module Documentation

6.122

RTI Connext API Reference

RTI Connext product specific APIs.

Modules
Clock Selection
APIs related to clock selection.

Multi-channel DataWriters
APIs related to Multi-channel DataWriters.

Pluggable Transports
APIs related to RTI Connext pluggable transports.

Configuration Utilities
Utility APIs independent of the DDS standard.

Durability and Persistence


APIs related to RTI Connext Durability and Persistence.

System Properties
System Properties.

Configuring QoS Profiles with XML


APIs related to XML QoS Profiles.

6.122.1

Detailed Description

RTI Connext product specific APIs.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.123 Programming How-Tos

6.123

295

Programming How-Tos

These How Tos illustrate how to apply RTI Connext APIs to common use
cases.

Modules
Publication Example
A data publication example.

Subscription Example
A data subscription example.

Participant Use Cases


Working with domain partcipants.

Topic Use Cases


Working with topics.

FlowController Use Cases


Working with flow controllers.

Publisher Use Cases


Working with publishers.

DataWriter Use Cases


Working with data writers.

Subscriber Use Cases


Working with subscribers.

DataReader Use Cases


Working with data readers.

Entity Use Cases


Working with entities.

Waitset Use Cases


Using wait-sets and conditions.

Transport Use Cases


Working with pluggable transports.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

296

Module Documentation

Filter Use Cases


Working with data filters.

Creating Custom Content Filters


Working with custom content filters.

Large Data Use Cases


Working with large data types.

6.123.1

Detailed Description

These How Tos illustrate how to apply RTI Connext APIs to common use
cases.
These are a good starting point to familiarize yourself with DDS. You can use
these code fragments as templates for writing your own code.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.124 Programming Tools

6.124

297

Programming Tools

Modules
rtiddsgen
Generates source code from data types declared in IDL, XML, XSD, or
WSDL files.

rtiddsping
Sends or receives simple messages using RTI Connext.

rtiddsspy
Debugging tool which receives all RTI Connext communication.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

298

Module Documentation

6.125

rtiddsgen

Generates source code from data types declared in IDL, XML, XSD, or WSDL
files. Generates code necessary to allocate, send, receive, and print user-defined
data types.

6.125.1

Usage

rtiddsgen [-d <outdir>]


[-language <C|C++|Java|C++/CLI|C#|Ada>]
[-namespace]
[-package <packagePrefix>]
[-example <arch>]
[-replace]
[-debug]
[-corba [client header file] [-orb <CORBA ORB>]]
[-optimization <level of optimization>]
[-stringSize <Unbounded strings size>]
[-sequenceSize <Unbounded sequences size>]
[-notypecode]
[-ppDisable]
[-ppPath <preprocessor executable>]
[-ppOption <option>]
[-D <name>[=<value>]]
[-U <name>]
[-I <directory>]
[-noCopyable]
[-use42eAlignment]
[-enableEscapeChar]
[-typeSequenceSuffix <Suffix>]
[-dataReaderSuffix <Suffix>]
[-dataWriterSuffix <Suffix>]
[-convertToXml |
-convertToXsd |
-convertToWsdl |
-convertToIdl]
[-convertToCcl]
[-convertToCcs]
[-expandOctetSeq]
[-expandCharSeq]
[-metp]
[-version]
[-help]
[-verbosity [1-3]]
[[-inputIdl] <IDLInputFile.idl> |
[-inputXml] <XMLInputFile.xml> |
[-inputXsd] <XSDInputFile.xsd> |
[-inputWsdl] <WSDLInputFile.wsdl>]
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.125 rtiddsgen

299

-d Specifies where to put the generated files. If omitted, the input files directory
is used.
-language Generates output for only the language specified. The default is
C++.
Use of generated Ada 2005 code requires installation of RTI Ada 2005 Language
Support. Please contact [email protected] for more information.
-namespace Specifies the use of C++ namespaces (for C++ only).
-package Specifies a packagePrefix to use as the root package (for Java only).
-example Generates example programs and makefiles (for UNIX-based systems) or workspace and project files (for Windows systems) based on the input
types description file.
The <arch> parameter specifies the architecture for the example makefiles.
For -language C/C++, valid options for <arch> are:
sparcSol2.9gcc3.2,
sparc64Sol2.10gcc3.4.2,
x64Sol2.10gcc3.4.3,

sparcSol2.9cc5.4,
i86Sol2.9gcc3.3.2,

sparcSol2.10gcc3.4.2,
i86Sol2.10gcc3.4.4,

i86Linux2.6gcc3.4.3,
x64Linux2.6gcc3.4.5,
x64Linux2.6gcc4.1.1,
i86Linux2.6gcc4.1.2,
i86Linux2.6gcc4.2.1,
i86Linux2.6gcc4.4.3,
x64Linux2.6gcc4.3.4,
i86Linux2.6gcc4.4.5,
i86Linux2.6gcc3.4.6,
i86RedHawk5.1gcc4.1.2,
x64Linux2.6gcc4.4.4,
x64Linux2.6gcc4.5.1,
x64Suse10.1gcc4.1.0,
cell64Linux2.6gcc4.5.1,
i86WRLinux2.6gcc4.3.2, x64WRLinux2.6gcc4.4.1,

i86Linux2.6gcc4.1.1,
x64Linux2.6gcc4.1.2,
x64Linux2.6gcc4.4.3,
x64Linux2.6gcc4.4.5,
i86RedHawk5.4gcc4.2.1,
i86Suse10.1gcc4.1.0,
armv7leLinux2.6gcc4.4.1,

x64Darwin10gcc4.2.1,

ppc4xxFPLinux2.6gcc4.3.3,
ppc7400Linux2.6gcc3.3.3,
ppc85xxLinux2.6gcc4.3.2, ppc85xxWRLinux2.6gcc4.3.2,
i86Win32VS2005, x64Win64VS2005,
i86Win32VS2010, x64Win64VS2010,
ppc85xxInty5.0.11.xes-p2020,
mInty10.0.0.pcx86,

i86Win32VS2008,

x64Win64VS2008,

mpc8349Inty5.0.11.mds8349,

pentiu-

ppc7400Lynx4.0.0gcc3.2.2,
ppc7400Lynx4.2.0gcc3.2.2,
ppc750Lynx4.0.0gcc3.2.2, ppc7400Lynx5.0.0gcc3.4.3, i86Lynx4.0.0gcc3.2.2,
ppc604Vx5.5gcc, ppc603Vx5.5gcc, ppc604Vx6.3gcc3.4.4, ppc604Vx6.3gcc3.4.4 rtp, ppc604Vx6.5gcc3.4.4, ppc604Vx6.5gcc3.4.4 rtp, pentiumVx6.6gcc4.1.2,
pentiumVx6.6gcc4.1.2 rtp,
ppc405Vx6.6gcc4.1.2,
ppc405Vx6.6gcc4.1.2 rtp,
ppc604Vx6.6gcc4.1.2,
ppc604Vx6.6gcc4.1.2 rtp,
pentiumVx6.7gcc4.1.2,
pentiumVx6.7gcc4.1.2 rtp,
ppc604Vx6.7gcc4.1.2,

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

300

Module Documentation

ppc604Vx6.7gcc4.1.2 smp, ppc604Vx6.7gcc4.1.2 rtp, ppc604Vx6.8gcc4.1.2,


pentiumVx6.8gcc4.1.2,
pentiumVx6.8gcc4.1.2 ppc604Vx6.8gcc4.1.2 rtp,
rtp,
ppc604Vx6.9gcc4.3.3,
ppc604Vx6.9gcc4.3.3 rtp,
pentiumVx6.9gcc4.3.3, pentiumVx6.9gcc4.3.3 rtp, pentium64Vx6.9gcc4.3.3, pentium64Vx6.9gcc4.3.3 rtp, ppc604VxT2.2.2gcc3.3.2, ppc604VxT2.2.2gcc3.3.2 v6,
ppc85xxVxT2.2.3gcc3.3.2,
sbc8641Vx653-2.3gcc3.3.2,
simpcVx6532.3gcc3.3.2,
p5AIX5.3xlc9.0, 64p5AIX5.3xlc9.0,
i86QNX6.4.1qcc gpp i86QNX6.5qcc gpp4.4.2 i86QNX6.4.0qcc acpp4.2.4 ppcbeQNX6.4.0qcc acpp4.2.4
For -language C++/CLI and C#, valid options for <arch> are:
i86Win32dotnet2.0,
x64Win64dotnet4.0

x64Win64dotnet2.0,

i86Win32dotnet4.0,

For -language java, valid options for <arch> are:


i86Sol2.9jdk,
i86Sol2.10jdk,
x64Sol2.10jdk,
sparcSol2.9jdk,
sparcSol2.10jdk,
sparc64Sol2.10jdk,
x64Darwin10gcc4.2.1jdk,
i86Linux2.6gcc3.4.3jdk,
x64Linux2.6gcc3.4.5jdk,
i86Linux2.6gcc4.1.1jdk,
x64Linux2.6gcc4.1.1jdk,
i86Linux2.6gcc4.4.3jdk,
x64Linux2.6gcc4.4.3jdk,
i86Linux2.6gcc4.4.5jdk,
x64Linux2.6gcc4.4.5jdk,
i86Linux2.6gcc4.2.1jdk,
x64Linux2.6gcc4.3.4jdk,
i86Linux2.6gcc4.1.2jdk,
x64Linux2.6gcc4.1.2jdk,
i86Linux2.6gcc3.4.6jdk, i86RedHawk5.1gcc4.1.2jdk, i86RedHawk5.4gcc4.2.1jdk,
i86Suse10.1gcc4.1.0jdk,
x64Suse10.1gcc4.1.0jdk,
i86Win32jdk,
x64Win64jdk, ppc7400Lynx4.0.0gcc3.2.2jdk, ppc750Lynx4.0.0gcc3.2.2jdk,
ppc7400Lynx5.0.0gcc3.4.3jdk, i86Lynx4.0.0gcc3.2.2jdk, p5AIX5.3xlc9.0jdk,
64p5AIX5.3xlc9.0jdk
For -language Ada, valid option for <arch> is i86Linux2.6gcc4.1.2
-replace Overwrites any existing output files. Warning: This removes any
changes you may have made to the original files.
-debug Generates intermediate files for debugging purposes.
-corba [client header file] [-orb <CORBA ORB>] Specifies that you want to
produce CORBA-compliant code.
Use [client header file] and [-orb <CORBA ORB>] for C++ only. The majority
of code generated is independent of the ORB. However, for some IDL features,
the code generated depends on the ORB. This version of rtiddsgen generates
code compatible with ACE-TAO or JacORB. To pick the ACE TAO version,
use the -orb parameter; the default is ACE TAO1.6.
client header file: the name of the header file for the IDL types generated by the
CORBA IDL compiler. This file will be included in the rtiddsgen type header
file instead of generating type definitions.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.125 rtiddsgen

301

CORBA support requires the RTI CORBA Compatibility Kit, an addon product that provides a different version of rtiddsgen. Please contact
[email protected] for more information.
-optimization Sets the optimization level. (Only applies to C/C++)
0 (default): No optimization.
1: Compiler generates extra code for typedefs but optimizes its use. If the
type that is used is a typedef that can be resolved either to a primitive type
or to another type defined in the same file, the generated code will invoke
the code of the most basic type to which the typedef can be resolved,
unless the most basic type is an array or a sequence. This level can be
used if the generated code is not expected to be modified.
2: Maximum optimization. Functionally the same as level 1, but extra
code for typedef is not generated. This level can be used if the typedefs
are only referred by types within the same file.
-typeSequenceSuffix Assigns a suffix to the name of the implicit sequence
defined for IDL types. (Only applies to CORBA)
By default, the suffix is Seq. For example, given the type Foo the name of
the implicit sequence will be FooSeq.
-dataReaderSuffix Assigns a suffix to the name of the DataReader interface.
(Only applies to CORBA)
By default, the suffix is DataReader. For example, given the type Foo the
name of the DataReader interface will be FooDataReader.
-dataWriterSuffix Assigns a suffix to the name of the DataWriter interface.
(Only applies to CORBA)
By default, the suffix is DataWriter. For example, given the type Foo the
name of the DataWriter interface will be FooDataWriter.
-stringSize Sets the size for unbounded strings. Default: 255 bytes.
-sequenceSize Sets the size for unbounded sequences. Default: 100 elements.
-notypecode: Disables the generation of type code information.
-ppDisable: Disables the preprocessor.
-ppPath <preprocessor executable>: Specifies the preprocessor path. If you
only specify the name of an executable (not a complete path to that executable),
the executable must be found in your Path.
The default value is cpp for non-Windows architectures, cl.exe for Windows
architectures.
If the default preprocessor is not found in your Path and you use -ppPath
to provide its full path and filename, you must also use -ppOption (described
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

302

Module Documentation

below) to set the following preprocessor options:


If you use a non-default path for cl.exe, you also need to set:
-ppOption /nologo -ppOption /C -ppOption /E -ppOption /X
If you use a non-default path for cpp, you also need to set:
-ppOption -C
-ppOption <option>: Specifies a preprocessor option. This parameter can
be used multiple times to provide the command-line options for the specified
preprocessor. See -ppPath (above).
-D <name>[=<value>]: Defines preprocessor macros.
-U <name>: Cancels any previous definition of name.
-I <directory>: Adds to the list of directories to be searched for type-definition
files (IDL, XML, XSD or WSDL files). Note: A type-definition file in one format
cannot include a file in another format.
-noCopyable: Forces rtiddsgen to put copy logic into the corresponding TypeSupport class rather than the type itself (for Java code generation only).
This option is not compatible with the use of ndds standalone type.jar.
-use42eAlignment: Generates code compliant with RTI Data Distribution
Service 4.2e.
If your RTI Connext applications data type uses a double,long long,unsigned
long long, or long double it will not be backwards compatible with RTI Data
Distribution Service 4.2e applications unless you use the -use42eAlignment flag
when generating code with rtiddsgen.
-enableEscapeChar: Enables use of the escape character in IDL identifiers.
With CORBA this option is always enabled.
-convertToXml: Converts the input type-description file to XML format.
-convertToIdl: Converts the input type-description file to IDL format.
-convertToXsd: Converts the input type-description file to XSD format.
-convertToWsdl: Converts the input type-description file to WSDL format.
-convertToCcl: Converts the input type-description file to CCL format.
-convertToCcs: Converts the input type-description file to CCS format.
-expandOctetSeq: When converting to CCS or CCL files, expand octet sequences. The default is to use a blob type.
-expandCharSeq: When converting to CCS or CCL files, expand char sequences. The default is to use a string type.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.125 rtiddsgen

303

-metp: Generates code for the Multi-Encapsulation Type Support (METP)


library.
-version: Prints the version, such as 4.5x. (Does not show patch revision
number.)
-help: Prints this rtiddsgen usage help.
-verbosity: rtiddsgen verbosity.
1: exceptions
2: exceptions and warnings
3 (default): exceptions, warnings and information
-inputIdl: Indicates that the input file is an IDL file, regardless of the file
extension.
-inputXml: Indicates that the input file is a XML file, regardless of the file
extension.
-inputXsd: Indicates that the input file is a XSD file, regardless of the file
extension.
-inputWsdl: Indicates that the input file is a WSDL file, regardless of the file
extension.
IDLInputFile.idl: File containing IDL descriptions of your data types. If
-inputIdl is not used, the file must have an .idl extension.
XMLInputFile.xml: File containing XML descriptions of your data types. If
-inputXml is not used, the file must have an .xml extension.
XSDInputFile.xsd: File containing XSD descriptions of your data types. If
-inputXsd is not used, the file must have an .xsd extension.
XSDInputFile.wsdl: WSDL file containing XSD descriptions of your data
types. If -inputWsdl is not used, the file must have an .wsdl extension.

6.125.2

Description

rtiddsgen takes a language-independent specification of the data (in IDL, XML,


XSD or WSDL notation) and generates supporting classes and code to distribute
instances of the data over RTI Connext.
To use rtiddsgen, you must first write a description of your data types in IDL,
XML, XSD or WSDL format.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

304

Module Documentation

6.125.3

C++ Example

The following is an example generating the RTI Connext type myDataType:


IDL notation
struct myDataType {
long value;
};

XML notation
<?xml version="1.0" encoding="UTF-8"?>
<types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="rti dds topic types.xsd">
<struct name="myDataType">
<member name="value" type="long"/>
</struct>
</types>

XSD notation

<?xml version="1.0" encoding="UTF-8"?>


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dds="http://www.omg.org/dds"
xmlns:tns="http://www.omg.org/IDL-Mapped/"
targetNamespace="http://www.omg.org/IDL-Mapped/">
<xsd:import namespace="http://www.omg.org/dds" schemaLocation="rti dds topic types common.xsd"/
<xsd:complexType name="myDataType">
<xsd:sequence>
<xsd:element name="value" minOccurs="1" maxOccurs="1" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

WSDL notation

<?xml version="1.0" encoding="UTF-8"?>


<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:dds="http://www.omg.org/dds" xmlns:x
<types>
<xsd:schema targetNamespace="http://www.omg.org/IDL-Mapped/">
<xsd:import namespace="http://www.omg.org/dds" schemaLocation="rti dds topic types common.x
<xsd:complexType name="myDataType">
<xsd:sequence>
<xsd:element name="value" minOccurs="1" maxOccurs="1" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.125 rtiddsgen

305

</xsd:schema>
</types>
</definitions>

Assuming the name of the idl file is myFileName.(idl|xml|xsd|wsdl) then all you
need to do is type:
rtiddsgen myFileName.(idl|xml|xsd|wsdl)
This generates myFileName.cxx, myFileName.h, myFileNamePlugin.cxx, myFileNamePlugin.h, myFileNameSupport.cxx and myFileNameSupport.h. By
default, rtiddsgen will not overwrite these files. You must use the -replace
argument to do that.

6.125.4

IDL Language

In the IDL language, data types are described in a fashion almost identical to
structures in C. The complete description of the language can be found at the
OMG website.
rtiddsgen does not support the full IDL language.
For detailed information about the IDL support in RTI Connext see Chapter 3
in the Users Manual.
The supported IDL types are:
char
wchar
octet
short
unsigned short
long
unsigned long
long long
unsigned long long
float
double
long double
boolean
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

306

Module Documentation
bounded string
unbounded string
bounded wstring
unbounded wstring
enum
typedef
struct
valuetypes (limited support)
union
sequences
unbounded sequences
arrays
array of sequences
constant

The following non-IDL types are also supported:


bitfield
valued enum
Use of Unsupported Types in an IDL File
You may include unsupported data types in the IDL file. rtiddsgen does not
consider this an error. This allows you to use types that are defined in nonIDL languages with either hand-written or non-rtiddsgen written plug-ins. For
example, the following is allowable:
//@copy #include "Bar.h"
//@copy #include "BarHandGeneratedPlugin.h"
struct Foo {
short height;
Bar barMember;
};

In the above case, Bar is defined externally by the user.


Multiple Types in a Single File
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.125 rtiddsgen

307

You can specify multiple types in a single IDL file. This can simplify management of files in your distributed program.
Use of Directives in an IDL File
The following directives can be used in your IDL file: Note: Do not put a space
between the slashes and the @ sign. Note: Directives are case-sensitive (for
example: use key, not Key).
//@key Specifies that the field declared just before this directive in the
enclosing structure is part of the key. Any number of a structures fields
may be declared part of the key.
//@copy Copies a line of text (verbatim) into the generated code (for all
languages). The text is copied into all the type-specific files generated by
rtiddsgen except the examples.
//@copy-declaration Like //@copy, but only copies the text into the file
where the type is declared (<type>.h for C++/C, or <type>.java for
Java).
//@copy-c Like //@copy, but for C++/C-only code.
//@copy-c-declaration Like //@copy-declaration, but for C++/C-only
code.
//@copy-java Like //@copy, but for Java-only code.
//@copy-java-begin Copies a line of text at the beginning of all the Java
files generated for a type. The directive only applies to the first type that
is immediately below in the IDL file.
//@copy-java-declaration Like //@copy-declaration, but for Java-only
code.
//@copy-java-declaration-begin Like //@copy-java-begin but only copies
the text into the file where the type is declared.
//@copy-ada Like //@copy, but for Ada-only code.
//@copy-ada-begin Like //@copy-java-begin, but for Ada-only code.
//@copy-ada-declaration Like //@copy-declaration, but for Ada-only
code.
//@copy-ada-declaration-begin Like //@copy-java-declaration, but for
Ada-only code.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

308

Module Documentation
//@resolve-name [true|false] Specifies whether or not rtiddsgen should resolve the scope of a type. If this directive is not present or is set to true,
rtiddsgen resolves the scope. Otherwise rtiddsgen delegates the resolution
of a type to the user.
//@top-level [true|false] Specifies whether or not rtiddsgen should generate
type-support code for a particular struct or union. The default is true.

6.125.5

XML Language

The data types can be described using XML.


RTI Connext provides DTD and XSD files that describe the XML format.
The
DTD
definition
of
the
XML
elements
found
in
../../../resource/dtd/rti dds topic types.dtd
<NDDSHOME>/resource/rtiddsgen/schema.

can

be
under

The
XSD
definition
of
the
XML
elements
found
in
../../../resource/xsd/rti dds topic types.xsd
<NDDSHOME>/resource/rtiddsgen/schema.

can

be
under

The XML validation performed by rtiddsgen always uses the DTD definition.
If the <!DOCTYPE> tag is not present in the XML file, rtiddsgen will look for
the DTD document under <NDDSHOME>/resource/rtiddsgen/schema. Otherwise, it will use the location specified in <!DOCTYPE>.
For detailed information about the mapping between IDL and XML, see Chapter
3 in the Users Manual.

6.125.6

XSD Language

The data types can be described using XML schemas (XSD files). The XSD
specification is based on the standard IDL to WSDL mapping described in the
OMG document CORBA to WSDL/SOAP Interworking Specification
For detailed information about the mapping between IDL and XML see Chapter
3 in the Users Manual.

6.125.7

WSDL Language

The data types can be described using XML schemas contained in WSDL
files. The XSD specification is based on the standard IDL to WSDL mapping described in the OMG document CORBA to WSDL/SOAP Interworking
Specification
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.125 rtiddsgen

309

For detailed information about the mapping between IDL and XML see Chapter
3 in the Users Manual.

6.125.8

Using Generated Types Without RTI Connext


(Standalone)

You can use the generated type-specific source and header files without linking
the RTI Connext libraries or even including the RTI Connext header files. That
is, the generated files for your data types can be used standalone.
The directory <NDDSHOME>/resource/rtiddsgen/standalone contains the
helper files required to work in standalone mode:
include: header and templates files for C/C++.
src: source files for C/C++.
class: Java jar file.
Using Standalone Types in C
The generated files that can be used standalone are:
<idl file name>.c : Types source file
<idl file name>.h : Types header file
You cannot use the type plug-in (<idl file>Plugin.c <idl file>Plugin.h) or the
type support (<idl file>Support.c <idl file>Support.h) code standalone.
To use the rtiddsgen-generated types in a standalone manner:
Include the directory <NDDSHOME>/resource/rtiddsgen/standalone/include
in the list of directories to be searched for header files.
Add the source files ndds standalone type.c and <idl file name>.c to your
project.
Include the file <idl file name>.h in the source files that will use the
generated types in a standalone way.
Compile the project using the two following preprocessor definitions:
NDDS STANDALONE TYPE
The definition for your platform: RTI VXWORKS, RTI QNX, RTI WIN32, RTI INTY, RTI LYNX or RTI UNIX
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

310

Module Documentation

Using Standalone Types in C++


The generated files that can be used standalone are:
<idl file name>.cxx : Types source file
<idl file name>.h : Types header file
You cannot use the type plugin (<idl file>Plugin.cxx <idl file>Plugin.h) or the
type support (<idl file>Support.cxx <idl file>Support.h) code standalone.
To use the generated types in a standalone manner:
Include the directory <NDDSHOME>/resource/rtiddsgen/standalone/include
in the list of directories to be searched for header files.
Add the source files ndds standalone type.cxx and <idl file name>.cxx to
your project.
Include the file <idl file name>.h in the source files that will use the
generated types in a standalone way.
Compile the project using the two following preprocessor definitions:
NDDS STANDALONE TYPE
The definition for your platform: RTI VXWORKS, RTI QNX, RTI WIN32, RTI INTY, RTI LYNX or RTI UNIX
Standalone Types in Java
The generated files that can be used standalone are:
<idl type>.java
<idl type>Seq.java
You cannot use the type code (<idl file>TypeCode.java), the type support
(<idl type>TypeSupport.java), the data reader (<idl file>DataReader.java) or
the data writer code (<idl file>DataWriter.java) standalone.
To use the generated types in a standalone manner:
Include the file ndds standalone type.jar in the classpath of your project.
Compile the project using the standalone types files (<idl type>.java <idl
type>Seq.java).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.126 rtiddsping

6.126

311

rtiddsping

Sends or receives simple messages using RTI Connext. The rtiddsping utility
uses RTI Connext to send and receive preconfigured Ping messages to other
rtiddsping applications which can be running in the same or different computers.
The rtiddsping utility can used to test the network and/or computer configuration and the environment settings that affect the operation of RTI Connext.
Usage
rtiddsping [-help] [-version]
[-domainId <domainId>]
... defaults to 0
[-index <NN>]
... defaults to -1 (auto)
[-appId <ID>]
... defaults to a middleware-selected value
[-Verbosity <NN>]
... can be 0..5
[-peer <PEER>]
... PEER format is NN@TRANSPORT://ADDRESS
[-discoveryTTL <NN>]
... can be 0..255
[-transport <MASK>]
... defaults to DDS TRANSPORTBUILTIN MASK DEFAULT
[-msgMaxSize <SIZE>]
... defaults to -1 (transport default)
[-shmRcvSize <SIZE>]
... defaults to -1 (transport default)
[-deadline
<SS>]
... defaults to -1 (no deadline)
[-durability <TYPE>]
... TYPE can be VOLATILE or TRANSIENT LOCAL
[-multicast <ADDRESS>]
... defaults to no multicast
[-numSamples <NN>]
... defaults to infinite
[-publisher]
... this is the default
[-queueSize <NN>]
... defaults to 1
[-reliable]
... defaults to best-efforts
[-sendPeriod <SS>]
... SS is in seconds, defaults to 1
[-subscriber]
[-timeFilter <SS>]
... defaults to 0 (no filter)
[-timeout
<SS>]
... SS is in seconds, defaults to infinite
[-topicName <NAME>]
... defaults to PingTopic
[-typeName
<NAME>]
... defaults to PingType
[-useKeys
<NN>]
... defaults to PingType
[-qosFile <file>]
[-qosProfile <lib.prof>]
Example: rtiddsping -domainId 3 -publisher -numSamples 100

VxWorks Usage
rtiddsping "[<options>]"
The options use the same syntax as above.
Example rtiddsping "-domainId 3 -publisher -numSamples 100"
If the stack of the shell is not large enough to run rtiddsping, use "taskSpawn":
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

312

Module Documentation

taskSpawn <name>,<priority>,<taskspawn options>,<stack size in bytes>,rtiddsping,"[\<options


The options use the same syntax as above.
Example taskSpawn "rtiddsping",100,0x8,50000,rtiddsping,"-domainId 3 -publisher -numSamples

Options:
-help Prints a help message and exits.
-version Prints the version and exits.
-Verbosity <NN> Sets the verbosity level. The range is 0 to 5.
0 has minimal output and does not echo the fact that data is being sent or
received.
1 prints the most relevant statuses, including the sending and receiving of data.
This is the default.
2 prints a summary of the parameters that are in use and echoes more detailed
status messages.
3-5 Mostly affects the verbosity used by the internal RTI Connext modules that
implement rtiddsping. The output is not always readable; its main purpose is
to provide information that may be useful to RTIs support team.
Example: rtiddsping -Verbosity 2
-domainId <NN>
Sets the domain ID. The valid range is 0 to 100.
Example: rtiddsping -domainId 31
-appId <ID>
Sets the application ID. If unspecified, the system will pick one automatically.
This option is rarely used.
Example: rtiddsping -appId 34556
-index <NN>
Sets the participantIndex. If participantIndex is not -1 (auto), it must be different than the one used by all other applications in the same computer and
domainId. If this is not respected, rtiddsping (or the application that starts
last) will get an initialization error.
Example: rtiddsping -index 2
-peer <PEER>
Specifies a PEER to be used for discovery. Like any RTI Connext application, it
defaults to the setting of the environment variable NDDS DISCOVERY PEERS
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.126 rtiddsping

313

or a preconfigured multicast address if the environment is not set.


The format used for PEER is the same one used for NDDS DISCOVERY PEERS and is described in detail in NDDS DISCOVERY PEERS (p. 57).
A brief summary follows:
The general format is: NN@TRANSPORT://ADDRESS where:
ADDRESS is an address (in name form or using the IP notation
xxx.xxx.xxx.xxx). ADDRESS may be a multicast address.
TRANSPORT represents the kind of transport to use and NN is the maximum participantIndex expected at that location. NN can be omitted and
it is defaulted to 4
Valid settings for TRANSPORT are udpv4 and shmem. The default
setting if the transport is omitted is udpv4.
ADDRESS cannot be omitted if the -peer option is specified.
The -peer option may be repeated to specify multiple peers.
Example: rtiddsping -peer 10.10.1.192 -peer mars -peer 4@pluto
-discoveryTTL <TTL>
Sets the TTL (time-to-live) used for multicast discovery. If not specified, it
defaults to the built-in RTI Connext default.
The valid range is 0 to 255. The value 0 limits multicast to the node itself
(i.e., can only discover applications running on the same computer). The value
1 limits multicast discovery to computers on the same subnet. Values higher
than 1 generally indicate the maximum number of routers that may be traversed
(although some routers may be configured differently).
Example: rtiddsping -discoveryTTL 16
-transport <MASK>
A bit-mask that sets the enabled builtin transports. If not specified, the default
set of transports is used (UDPv4 + shmem). The bit values are: 1=UDPv4,
2=shmem, 8=UDPv6.
-msgMaxSize <SIZE>
Configure the maximum message size allowed by the installed transports. This
is needed if you are using rtiddsping to communicate with an application that
has set these transport parameters to larger than default values.
-shmRcvSize <SIZE>
Increase the shared memory receive-buffer size. This is needed if you are using
rtiddsping to communicate with an application that has set these transport
parameters to larger than default values.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

314

Module Documentation

-deadline <SS>
This option only applies if the -subscriber option is also specified.
Sets the DEADLINE QoS for the subscriptions made by rtiddsping.
Note that this may cause the subscription QoS to be incompatible with the
publisher if the publisher did not specify a sendPeriod greater than the deadline.
If the QoS is incompatible, rtiddsping will not receive updates.
Each time a deadline is detected, rtiddsping will print a message indicating the
number of deadlines received so far.
Example: rtiddsping -deadline 3.5
-durability <TYPE>
Sets the DURABILITY QoS used for publishing or subscribing. Valid settings
are: VOLATILE and TRANSIENT LOCAL (default). The effect of this setting
can only be observed when it is used in in conjunction with reliability and a
queueSize larger than 1. If all these conditions are met, a late-joining subscriber
will be able to see up to queueSize samples that were previously written by the
publisher.
Example: rtiddsping -durability VOLATILE
-multicast <ADDRESS>
This option only applies if the -subscriber option is also specified.
Configures ping to receive messages over multicast. The <ADDRESS> parameter indicates the address to use. ADDRESS must be in the valid range for multicast addresses. For IP version 4 the valid range is 224.0.0.1 to 239.255.255.255
Example: rtiddsping -multicast 225.1.1.1
-numSamples <NN>
Sets the number of samples that will be sent by rtiddsping. After those samples
are sent, rtiddsping will exit. messages.
Example: rtiddsping -numSamples 10
-publisher
Causes rtiddsping to send ping messages. This is the default.
Example: rtiddsping -publisher
-queueSize <NN>
Specifies the maximal number of samples to hold in the queue. In the case of the
publisher, it affects the samples that are available for a late-joining subscriber.
Example: rtiddsping -queueSize 100
-reliable

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.126 rtiddsping

315

Configures the RELIABILITY QoS for publishing or subscribing. The default


setting (if -reliable is not used) is BEST EFFORT
Example: rtiddsping -reliable
-sendPeriod <SS>
Sets the period (in seconds) at which rtiddsping sends the messages.
Example: rtiddsping -sendPeriod 0.5
-subscriber
Causes rtiddsping to listen for ping messages. This option cannot be specified
if -publisher is also specified.
Example: rtiddsping -subscriber
-timeFilter <SS>
This option only applies if the -subscriber option is also specified.
Sets the TIME BASED FILTER QoS for the subscriptions made by rtiddsping.
This QoS causes RTI Connext to filter out messages that are published at a rate
faster than what the filter duration permits. For example, if the filter duration
is 10 seconds, messages will be printed no faster than once every 10 seconds.
Example: rtiddsping -timeFilter 5.5
-timeout <SS>
This option only applies if the -subscriber option is also specified.
Sets a timeout (in seconds) that will cause rtiddsping to exit if no samples are
received for a duration that exceeds the timeout.
Example: rtiddsping -timeout 30
-topicName <NAME>
Sets the topic name used by rtiddsping. The default is RTIddsPingTopic. To
communicate, both the publisher and subscriber must specify the same topic
name.
Example: rtiddsping -topicName Alarm
-typeName <NAME>
Sets the type name used by rtiddsping. The default is RTIddsPingType. To
communicate, both publisher and subscriber must specify the same type name.
Example: rtiddsping -typeName AlarmDescription
-useKeys <NN>
This option causes rtiddsping to use a topic whose data contains a key. The
value of the NN parameter indicates the number of different data objects (each
identified by a different value of the key) that will be published by rtiddsping.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

316

Module Documentation

The value of NN only affects the publishing behavior. However NN still needs
to be specified when the -useKeys option is used with the -subscriber option.
For communication to occur, both the publisher and subscriber must agree on
whether the topic that they publish/subscribe contains a key. Consequently, if
you specify the -useKeys parameter for the publisher, you must do the same
with the subscriber. Otherwise communication will not be stablished.
Example: rtiddsping -useKeys 20
-qosFile <file>
Allow you to specify additional QoS XML settings using url profile. For more
information on the syntax, see Chapter 15 in the RTI Connext Users Manual.
Example: rtiddsping -qosFile /home/user/QoSProfileFile.xml
-qosProfile <lib.prof>
This option specifies the library name and profile name that the tool should use.
QoS settings
rtiddsping is configured internally using a special set of QoS settings in a profile called InternalPingLibrary.InternalPingProfile. This is the default profile
unless a profile called DefaultPingLibrary.DefaultPingProfile is found. You can
use the command-line option -qosProfile to tell rtiddsping to use a different
lib.profile instead of DefaultPingLibrary.DefaultPingProfile. Like all the other
RTI Connext applications, rtiddsping loads all the profiles specified using the
environment variable NDDS QOS PROFILES or the file named USER QOS PROFILES found in the current working directory.
The QoS settings used internally are available in the file RTIDDSSPING QOS PROFILES.example.xml.
Description
The usage depends on the operating system from which rtiddsping is executed.
Examples for UNIX, Linux, and Windows Systems
On UNIX, Linux, Windows and other operating systems that have a shell, the
syntax matches the one of the regular commands available in the shell. In the
examples below, the string shell prompt> represents the prompt that the shell
prints and are not part of the command that must be typed.
shell prompt>
shell prompt>
shell prompt>

rtiddsping -domainId 3 -publisher -numSamples 100


rtiddsping -domainId 5 -subscriber -timeout 20
rtiddsping -help

VxWorks examples:
On VxWorks systems, the libraries libnddscore.so, libnddsc.so and libnddscpp.so
must first be loaded. The rtiddsping command must be typed to the VxWorks
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.126 rtiddsping

317

shell (either an rlogin shell, a target-server shell, or the serial line prompt). The
arguments are passed embedded into a single string, but otherwise have the
same syntax as for Unix/Windows. In the Unix, Linux, Windows and other
operating systems that have a shell, the syntax matches the one of the regular
commands available in the shell. In the examples below, the string vxworks
prompt> represents the prompt that the shell prints and are not part of the
command that must be typed.
vxworks prompt>
vxworks prompt>
vxworks prompt>

rtiddsping "-domainId 3 -publisher -numSamples 100"


rtiddsping "-domainId 5 -subscriber -timeout 20"
rtiddsping "-help"

or, alternatively (to avoid overflowing the stack):

vxworks prompt> taskSpawn "rtiddsping", 100, 0x8, 50000, rtiddsping, "-domainId 3 -publisher -numSamples 100
vxworks prompt> taskSpawn "rtiddsping", 100, 0x8, 50000, rtiddsping, "-domainId 5 -subscriber -timeout 20"
vxworks prompt> taskSpawn "rtiddsping", 100, 0x8, 50000, rtiddsping, "-help"

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

318

Module Documentation

6.127

rtiddsspy

Debugging tool which receives all RTI Connext communication. The rtiddsspy
utility allows the user to monitor groups of publications available on any RTI
Connext domain.
Note: If you have more than one DataWriter for the same Topic, and these
DataWriters have different settings for the Ownership QoS, then rtiddsspy will
only receive (and thus report on) the samples from the first DataWriter.
To run rtiddsspy, like any RTI Connext application, you must have the NDDS DISCOVERY PEERS environment variable that defines your RTI Connext domain; otherwise you must specify the peers as command line parameters.
Usage
rtiddsspy [-help] [-version]
[-domainId <domainId>]
[-index <NN>]
[-appId <ID>]
[-Verbosity <NN>]
[-peer <PEER>]
[-discoveryTTL <NN>]
[-transport <MASK>]
[-msgMaxSize <SIZE>]
[-shmRcvSize <SIZE>]
[-tcMaxSize <SIZE>]
[-hOutput]
[-deadline
<SS>]
[-history
<DEPTH>]
[-timeFilter <SS>]
[-useFirstPublicationQos]
[-showHandle]
[-typeRegex <REGEX>]
[-topicRegex <REGEX>]
[-typeWidth <WIDTH>]
[-topicWidth <WIDTH>]
[-truncate]
[-printSample]
[-qosFile <file>]
[-qosProfile <lib.prof>]

...
...
...
...
...
...
...
...
...
...

defaults to 0
defaults to -1 (auto)
defaults to a middleware-selected value
can be 0..5
PEER format is NN@TRANSPORT://ADDRESS
can be 0..255
defaults to DDS TRANSPORTBUILTIN MASK DEFAULT
defaults to -1 (transport default)
defaults to -1 (transport default)
defaults to 4096

... defaults to -1 (no deadline)


... defaults to 8192
... defaults to 0 (no filter)

...
...
...
...

defaults to "*"
defaults to "*"
can be 1..255
can be 1..255

Example: rtiddsspy -domainId 3 -topicRegex "Alarm*"

VxWorks Usage
rtiddsspy "[<options>]"
The options use the same syntax as above.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.127 rtiddsspy

319

Example rtiddsspy "-domainId 3 -topicRegex Alarm*"

rtiddsspy requires about 25 kB of stack. If the stack size of the shell from which it is invoked is not la
taskSpawn <name>, <priority>, <taskspawn options>, <stack size in bytes>, rtiddsspy, "[\<options\>]"
The options use the same syntax as above.
Example taskSpawn "rtiddsspy", 100, 0x8, 50000, rtiddsspy, "-domainId 3 -topicRegex Alarm*"

Options:
-help Prints a help message and exits.
-version Prints the version and exits.
-Verbosity <NN> Sets the verbosity level. The range is 0 to 5.
0 has minimal output and does not echo the fact that data is being sent or
received.
1 prints the most relevant statuses, including the sending and receiving of data.
This is the default.
2 prints a summary of the parameters being used and echoes more detailed
status messages.
3-5 Mostly affect the verbosity used by the internal RTI Connext modules that
implement rtiddsspy. The output is not always readable; its main purpose is to
provide information that may be useful to RTIs support team.
Example: rtiddsspy -Verbosity 2
-domainId <NN>
Sets the domain ID. The valid range is 0 to 100.
Example: rtiddsspy -domainId 31
-appId <ID>
Sets the application ID. If unspecified, the system will pick one automatically.
This option is rarely used.
Example: rtiddsspy -appId 34556
-index <NN>
Sets the participantIndex. If participantIndex is not -1 (auto), it must be different than the one used by all other applications in the same computer and
domainId. If this is not respected, rtiddsspy (or the application that starts last)
will get an initialization error.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

320

Module Documentation

Example: rtiddsspy -index 2


-peer <PEER>
Specifies a PEER to be used for discovery. Like any RTI Connext application, it
defaults to the setting of the environment variable NDDS DISCOVERY PEERS
or a preconfigured multicast address if the environment is not set.
The format used for PEER is the same used for the NDDS DISCOVERY PEERS and is described in detail in NDDS DISCOVERY PEERS (p. 57).
A brief summary follows:
The general format is: NN@TRANSPORT://ADDRESS where:
ADDRESS is an address (in name form or using the IP notation
xxx.xxx.xxx.xxx). ADDRESS may be a multicast address.
TRANSPORT represents the kind of transport to use and NN is the maximum participantIndex expected at that location. NN can be omitted and
it is defaulted to 4
Valid settings for TRANSPORT are udpv4 and shmem. The default
setting if the transport is omitted is udpv4
ADDRESS cannot be omitted if the -peer option is specified.
The -peer option may be repeated to specify multiple peers.
Example: rtiddsspy -peer 10.10.1.192 -peer mars -peer 4@pluto
-discoveryTTL <TTL>
Sets the TTL (time-to-live) used for multicast discovery. If not specified, it
defaults to the built-in RTI Connext default.
The valid range is 0 to 255. The value 0 limits multicast to the node itself (i.e.
can only discover applications running on the same computer). The value 1
limits multicast discovery to computers on the same subnet. Settings greater
than 1 generally indicate the maximum number of routers that may be traversed
(although some routers may be configured differently).
Example: rtiddsspy -discoveryTTL 16
-transport <MASK>
SPecifies a bit-mask that sets the enabled builtin transports. If not specified,
the default set of transports is used (UDPv4 + shmem). The bit values are:
1=UDPv4, 2=shmem, 8=UDPv6.
-msgMaxSize <SIZE>
Configures the maximum message size allowed by the installed transports. This
is needed if you are using rtiddsspy to communicate with an application that
has set these transport parameters to larger than default values.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.127 rtiddsspy

321

-shmRcvSize <SIZE>
Increases the shared memory receive-buffer size. This is needed if you are using rtiddsspy to communicate with an application that has set these transport
parameters to larger than default values.
-tcMaxSize <SIZE>
Configures the maximum size, in bytes, of a received type code.
-hOutput
Prints information on the output format used by rtiddsspy.
This option prints an explanation of the output and then exits.
Example: rtiddsspy -hOutput
-deadline <SS>
Sets the requested DEADLINE QoS for the subscriptions made by rtiddsspy.
Note that this may cause the subscription QoS to be incompatible with the
publisher if the publisher did not specify an offered deadline that is greater or
equal to the one requested by rtiddsspy. If the QoS is incompatible rtiddsspy
will not receive updates from that writer.
Each time a deadline is detected rtiddsspy will print a message that indicates
the number of deadlines received so far.
Example: rtiddsspy -deadline 3.5
-timeFilter <SS>
Sets the TIME BASED FILTER QoS for the subscriptions made by rtiddsspy.
This QoS causes RTI Connext to filter-out messages that are published at a rate
faster than what the filter duration permits. For example if the filter duration
is 10 seconds, messages will be printed no faster than once each 10 seconds.
Example: rtiddsspy -timeFilter 10.0
-history <DEPTH>
Sets the HISTORY depth QoS for the subscriptions made by rtiddsspy.
This may be relevant if the publisher has batching turned on, or if the useFirstPublicationQos option is used that is causing a reliable or durable subscription to be created.
Example: rtiddsspy -history 1
-useFirstPublicationQos
Sets the RELIABILITY and DURABILITY QoS of the subscription based on
the first discovered publication of that topic.
See also -history option.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

322

Module Documentation

Example: rtiddsspy -useFirstPublicationQos


-showHandle
Prints additional information about each sample received. The additional information is the instance handle field in the SampleHeader, which can be used to
distinguish among multiple instances of data objects published under the same
topic and type names.
Samples displayed that share the topic and type names and also have the same
value for the instance handle represent value updates to the same data object.
On the other hand, samples that share the topic and type names but display
different values for the instance handle.
This option causes rtiddsspy to print an explanation of updates to the values of
different data objects.
Example: rtiddsspy -showHandle
-typeRegex <REGEX>
Subscribe only to types that match the REGEX regular expression. The syntax
of the regular expression is defined by the POSIX regex function.
When typing a regular expression to a command-line shell, some symbols may
need to be escaped to avoid interpretation by the shell. In general, it is safest
to include the expression in double quotes.
This option may be repeated to specify multiple topic expressions.
Example: rtiddsspy -typeRegex SensorArray
-topicRegex <REGEX>
Subscribe only to topics that match the REGEX regular expression. The syntax
of the regular expression is defined by the POSIX regex function.
When typing a regular expression to a command-line shell, some symbols may
need to be escaped to avoid interpretation by the shell. In general, it is safest
to include the expression in double quotes.
This option may be repeated to specify topic multiple expressions.
Example: rtiddsspy -topicRegex Alarm
-typeWidth <WIDTH>
Sets the maximum width of the Type name column. Names wider than this will
wrap around, unless -truncate is specified. Can be 1..255.
-topicWidth <WIDTH>
Sets the maximum width of the Topic name column. Names wider than this
will wrap around, unless -truncate is specified. Can be 1..255.
-truncate
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

6.127 rtiddsspy

323

Specifies that names exceeding the maximum number of characters should be


truncated.
-printSample
Prints the value of the received samples.
-qosFile <file>
Allows you to specify additional QoS XML settings using url profile. For more
information on the syntax, see Chapter 15 in the RTI Connext Users Manual.
Example: rtiddsspy -qosFile /home/user/QoSProfileFile.xml
-qosProfile <lib.prof>
Specifies the library name and profile name to be used.
QoS settings
rtiddsspy is configured to discover as many entities as possible. To do so, an
internal profile is defined, called InternalSpyLibrary.InternalSpyProfile. This is
the default profile, unless a profile called DefaultSpyLibrary.DefaultSpyProfile is
found. You can use the command-line option -qosProfile to tell rtiddsspy to use a
speficied lib.profile instead of DefaultSpyLibrary.DefaultSpyProfile. Like all the
other RTI Connext applications, rtiddsspy loads all the profiles specified using
the environment variable NDDS QOS PROFILES or the file named USER QOS PROFILES found in the current working directory.
The QoS settings used internally are available in the file RTIDDSSPY QOS PROFILES.example.xml.
Usage Examples
The usage depends on the operating system from which rtiddsspy is executed.
Examples for UNIX, Linux, Windows systems
On UNIX, Linux, Windows and other operating systems that have a shell, the
syntax matches the one of the regular commands available in the shell. In the
examples below, the string shell prompt> represents the prompt that the shell
prints and are not part of the command that must be typed.
shell prompt>
shell prompt>
shell prompt>

rtiddsspy -domainId 3
rtiddsspy -domainId 5 -topicRegex "Alarm*"
rtiddsspy -help

Examples for VxWorks Systems


On VxWorks systems, the libraries libnddscore.so, libnddsc.so and libnddscpp.so
must first be loaded. The rtiddsspy command must be typed to the VxWorks
shell (either an rlogin shell, a target-server shell, or the serial line prompt).
The arguments are passed embedded into a single string, but otherwise have
the same syntax as for Unix/Windows. In UNIX, Linux, Windows and other
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

324

Module Documentation

operating systems that have a shell, the syntax matches the one of the regular
comamnds available in the shell. In the examples below, the string vxworks
prompt> represents the prompt that the shell prints and are not part of the
command that must be typed.
vxworks prompt>
vxworks prompt>
vxworks prompt>

rtiddsspy "-domainId 3"


rtiddsspy "-domainId 5 5 -topicRegex "Alarm*"
rtiddsspy "-help"

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 7

Namespace Documentation
7.1

Package com.rti

RTI.

Packages
package dds
DDS.

package ndds
DDS extensions.

7.1.1
RTI.

Detailed Description

326

Namespace Documentation

7.2

Package com.rti.dds

DDS.

Packages
package domain
Contains the com.rti.dds.domain.DomainParticipant ( p. 654) class that
acts as an entrypoint of RTI Connext and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant ( p. 654) also acts
as a container for the other objects that make up RTI Connext.

package dynamicdata
<<eXtension>> (p. 278) The Dynamic Data API provides a way to interact with arbitrarily complex data types at runtime without the need for code
generation.

package infrastructure
Defines the abstract classes and the interfaces that are refined by the other
modules. Contains common definitions such as return codes, status values,
and QoS policies.

package publication
Contains
the
com.rti.dds.publication.FlowController
( p. 964),
com.rti.dds.publication.Publisher
( p. 1262),
and
com.rti.dds.publication.DataWriter ( p. 557) classes as well as
and
the
com.rti.dds.publication.PublisherListener
( p. 1289)
com.rti.dds.publication.DataWriterListener
( p. 586)
interfaces,
and more generally, all that is needed on the publication ( p. 349) side.

package subscription
Contains
the
com.rti.dds.subscription.Subscriber
( p. 1476),
com.rti.dds.subscription.DataReader
( p. 487),
com.rti.dds.subscription.ReadCondition
( p. 1313),
and
com.rti.dds.subscription.QueryCondition ( p. 1311) classes, as well
as the com.rti.dds.subscription.SubscriberListener ( p. 1503) and
com.rti.dds.subscription.DataReaderListener ( p. 518) interfaces, and
more generally, all that is needed on the subscription ( p. 353) side.

package topic
Contains
the
com.rti.dds.topic.Topic
( p. 1545),
com.rti.dds.topic.ContentFilteredTopic
( p. 471),
and
com.rti.dds.topic.MultiTopic
( p. 1190)
classes,
the
com.rti.dds.topic.TopicListener ( p. 1564) interface, and more generally,
all that is needed by an application to define com.rti.dds.topic.Topic
( p. 1545) objects and attach QoS policies to them.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.2 Package com.rti.dds

327

package typecode
<<eXtension>> (p. 278) A com.rti.dds.typecode.TypeCode (p. 1611)
is a mechanism for representing a type at runtime. RTI Connext can use type
codes to send type definitions on the network. You will need to understand
this API in order to use the Dynamic Data ( p. 175) capability or to inspect
the type information you receive from remote readers and writers.

package util
Utility types that support the DDS API.

7.2.1

Detailed Description

DDS.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

328

Namespace Documentation

7.3

Package com.rti.dds.domain

Contains the com.rti.dds.domain.DomainParticipant (p. 654) class that


acts as an entrypoint of RTI Connext and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant (p. 654) also acts as
a container for the other objects that make up RTI Connext.

Classes
interface DomainParticipant
<<interface>>
(p. 279)
Container
for
com.rti.dds.infrastructure.DomainEntity ( p. 653) objects.

all

class DomainParticipantAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

class DomainParticipantFactory
<<singleton>> (p. 279) <<interface>> (p. 279) Allows creation and destruction of com.rti.dds.domain.DomainParticipant ( p. 654) objects.

class DomainParticipantFactoryQos
QoS policies supported by a com.rti.dds.domain.DomainParticipantFactory
( p. 742).

interface DomainParticipantListener
<<interface>> (p. 279) Listener for participant status.

class DomainParticipantQos
QoS policies supported by a com.rti.dds.domain.DomainParticipant
( p. 654) entity.

Packages
package builtin
Builtin topic ( p. 359) for accessing information about the DomainParticipants discovered by RTI Connext.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.3 Package com.rti.dds.domain

7.3.1

329

Detailed Description

Contains the com.rti.dds.domain.DomainParticipant (p. 654) class that


acts as an entrypoint of RTI Connext and acts as a factory for many of the
classes. The com.rti.dds.domain.DomainParticipant (p. 654) also acts as
a container for the other objects that make up RTI Connext.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

330

Namespace Documentation

7.4

Package com.rti.dds.domain.builtin

Builtin topic (p. 359) for accessing information about the DomainParticipants
discovered by RTI Connext.

Classes
class ParticipantBuiltinTopicData
Entry created when a DomainParticipant ( p. 654) object is discovered.

class ParticipantBuiltinTopicDataDataReader
Instantiates
DataReader
( p. 1211) > .

<

builtin.ParticipantBuiltinTopicData

class ParticipantBuiltinTopicDataSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
builtin.ParticipantBuiltinTopicData ( p. 1211) > .

class ParticipantBuiltinTopicDataTypeSupport
Instantiates TypeSupport
( p. 1211) > .

7.4.1

<

builtin.ParticipantBuiltinTopicData

Detailed Description

Builtin topic (p. 359) for accessing information about the DomainParticipants
discovered by RTI Connext.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.5 Package com.rti.dds.dynamicdata

7.5

331

Package com.rti.dds.dynamicdata

<<eXtension>> ( p. 278) The Dynamic Data API provides a way to interact with arbitrarily complex data types at runtime without the need for code
generation.

Classes
class DynamicData
A sample of any complex data type, which can be inspected and manipulated
reflectively.

class DynamicDataInfo
A descriptor for a com.rti.dds.dynamicdata.DynamicData ( p. 817) object.

class DynamicDataMemberInfo
A descriptor for a single member (i.e. field) of dynamically defined data type.

class DynamicDataProperty t
A
collection
of
attributes
used
to
com.rti.dds.dynamicdata.DynamicData ( p. 817) objects.

configure

class DynamicDataReader
Reads
(subscribes
to)
objects
com.rti.dds.dynamicdata.DynamicData ( p. 817).

of

type

class DynamicDataSeq
An ordered collection
( p. 817) elements.

of

com.rti.dds.dynamicdata.DynamicData

class DynamicDataTypeProperty t
A
collection
of
attributes
used
to
com.rti.dds.dynamicdata.DynamicData ( p. 817) objects.

configure

class DynamicDataTypeSerializationProperty t
Properties that govern how data of a certain type will be serialized on the
network.

class DynamicDataTypeSupport
A factory for registering a dynamically defined type and creating
com.rti.dds.dynamicdata.DynamicData ( p. 817) objects.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

332

Namespace Documentation
class DynamicDataWriter
Writes (publishes) objects of type com.rti.dds.dynamicdata.DynamicData
( p. 817).

7.5.1

Detailed Description

<<eXtension>> ( p. 278) The Dynamic Data API provides a way to interact with arbitrarily complex data types at runtime without the need for code
generation.
This API allows you to define new data types, modify existing data types, and
interact reflectively with samples. To use it, you will take the following steps:
1. Obtain a com.rti.dds.typecode.TypeCode (p. 1611) (see Type Code
Support (p. 165)) that defines the type definition you want to use.
A com.rti.dds.typecode.TypeCode (p. 1611) includes a types kind
(com.rti.dds.typecode.TCKind (p. 1525)), name, and members (that
is, fields). You can create your own com.rti.dds.typecode.TypeCode
(p. 1611) using the com.rti.dds.typecode.TypeCodeFactory (p. 1647) class
see, for example, the com.rti.dds.typecode.TypeCodeFactory.create Alternatively, you can use a remote
struct tc (p. 1651) method.
com.rti.dds.typecode.TypeCode (p. 1611) that you discovered on the network (see Built-in Topics (p. 157)) or one generated by rtiddsgen (p. 298).
2.
Wrap the com.rti.dds.typecode.TypeCode (p. 1611) in a
com.rti.dds.dynamicdata.DynamicDataTypeSupport (p. 901) object.

See the constructor com.rti.dds.dynamicdata.DynamicDataTypeSupport.DynamicDataTypeSupport.Dyn


This
object
lets
you
connect
the
type
definition
to
a
com.rti.dds.domain.DomainParticipant (p. 654) and manage data
samples (of type com.rti.dds.dynamicdata.DynamicData (p. 817)).
3. Register the com.rti.dds.dynamicdata.DynamicDataTypeSupport
(p. 901) with one or more domain (p. 328) participants.
See
com.rti.dds.dynamicdata.DynamicDataTypeSupport.register type (p. 904). This action associates the data type with a logical name that you
can use to create topics. (Starting with this step, working with a dynamically
defined data type is almost exactly the same as working with a generated one.)
4.
Create a com.rti.dds.topic.Topic (p. 1545)
com.rti.dds.domain.DomainParticipant (p. 654).

from

the

Use the name under which you registered your data type see
com.rti.dds.domain.DomainParticipant.create topic (p. 697).
This
com.rti.dds.topic.Topic (p. 1545) is what you will use to produce and consume data.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.5 Package com.rti.dds.dynamicdata

333

5. Create a com.rti.dds.dynamicdata.DynamicDataWriter (p. 907)


and/or com.rti.dds.dynamicdata.DynamicDataReader (p. 892).
These
objects
will
produce
and/or
consume
data
(of
type
com.rti.dds.dynamicdata.DynamicData
(p. 817))
on
the
You can create these objects dicom.rti.dds.topic.Topic (p. 1545).
rectly from the com.rti.dds.domain.DomainParticipant (p. 654) see
com.rti.dds.domain.DomainParticipant.create datawriter (p. 688) and
com.rti.dds.domain.DomainParticipant.create datareader
(p. 693)
or by first creating intermediate com.rti.dds.publication.Publisher
(p. 1262) and com.rti.dds.subscription.Subscriber (p. 1476) objects see
com.rti.dds.domain.DomainParticipant.create publisher (p. 683) and
com.rti.dds.domain.DomainParticipant.create subscriber (p. 686).
6. Write and/or read the data of interest.
7. Tear down the objects described above.
You should delete them in the reverse order in which you
created them.
Note that unregistering your data type with
the
com.rti.dds.domain.DomainParticipant
(p. 654)
is
optional;
all
types
are
automatically
unregistered
when
the
com.rti.dds.domain.DomainParticipant (p. 654) itself is deleted.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

334

Namespace Documentation

7.6

Package com.rti.dds.infrastructure

Defines the abstract classes and the interfaces that are refined by the other
modules. Contains common definitions such as return codes, status values, and
QoS policies.

Classes
class AckResponseData t
Data payload of an application-level acknowledgment.

class AllocationSettings t
Resource allocation settings.

class AsynchronousPublisherQosPolicy
Configures the mechanism that sends user data in an external middleware
thread.

class AvailabilityQosPolicy
Configures the availability of data.

class BAD PARAM


The exception BadKind ( p. 409) is thrown when an inappropriate operation
is invoked on a TypeCode object.

class BAD TYPECODE


The exception BadKind ( p. 409) is thrown when an inappropriate operation
is invoked on a TypeCode object.

class BadKind
The exception BadKind ( p. 409) is thrown when an inappropriate operation
is invoked on a TypeCode object.

class BadMemberId
The specified com.rti.dds.typecode.TypeCode ( p. 1611) member ID is invalid.

class BadMemberName
The specified com.rti.dds.typecode.TypeCode ( p. 1611) member name is
invalid.

class BatchQosPolicy
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

335

Used to configure batching of multiple samples into a single network packet


in order to increase throughput for small samples.

class BooleanSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
boolean >.

class Bounds
A user exception thrown when a parameter is not within the legal bounds.

class BuiltinTopicReaderResourceLimits t
Built-in topic ( p. 359) readers resource limits.

class ByteSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
byte >.

class ChannelSettings t
Type used to configure the properties of a channel.

class ChannelSettingsSeq
Declares IDL sequence< com.rti.dds.infrastructure.ChannelSettings t
( p. 454) >.

class CharSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
char >.

interface Condition
<<interface>> (p. 279) Root class for all the conditions that may be attached to a com.rti.dds.infrastructure.WaitSet ( p. 1709).

class ConditionSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.Condition ( p. 464) >.

class ContentFilterProperty t
<<eXtension>> (p. 278) Type used to provide all the required information
to enable content filtering.

class Cookie t
<<eXtension>> (p. 278) Sequence of bytes identifying a written data sample, used when writing with parameters.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

336

Namespace Documentation
class CookieSeq
interface Copyable
<<eXtension>> (p. 278) <<interface>> (p. 279) Interface for all the
user-defined data type classes that support copy.

class DatabaseQosPolicy
Various threads and resource limits settings used by RTI Connext to control
its internal database.

class DataReaderProtocolQosPolicy
Along
with
com.rti.dds.infrastructure.WireProtocolQosPolicy
( p. 1723) and com.rti.dds.infrastructure.DataWriterProtocolQosPolicy
( p. 592), this QoS policy configures the DDS on-the-network protocol
(RTPS).

class DataReaderResourceLimitsQosPolicy
Various
settings
that
com.rti.dds.subscription.DataReader
physical memory for internal resources.

configure
how
( p. 487) allocates and

a
uses

class DataWriterProtocolQosPolicy
Protocol that applies only to com.rti.dds.publication.DataWriter ( p. 557)
instances.

class DataWriterResourceLimitsInstanceReplacementKind
Sets the kinds of instances that can be replaced when instance resource limits
are reached.

class DataWriterResourceLimitsQosPolicy
Various
settings
that
configure
how
a
com.rti.dds.publication.DataWriter ( p. 557) allocates and uses physical
memory for internal resources.

class DeadlineQosPolicy
Expresses the maximum duration (deadline) within which an instance is expected to be updated.

class DestinationOrderQosPolicy
Controls how the middleware will deal with data sent by multiple
com.rti.dds.publication.DataWriter ( p. 557) entities for the same instance of data (i.e., same com.rti.dds.topic.Topic ( p. 1545) and key).

class DestinationOrderQosPolicyKind
Kinds of destination order.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

337

class DiscoveryBuiltinReaderFragmentationResourceLimits t
class DiscoveryConfigBuiltinPluginKind
Built-in discovery plugins that can be used.

class DiscoveryConfigQosPolicy
Settings for discovery configuration.

class DiscoveryPluginPromiscuityKind
<<eXtension>> (p. 278) Type used to indicate promiscuity mode of the
discovery plugin.

class DiscoveryQosPolicy
Configures the mechanism used by the middleware to automatically discover
and connect with new remote applications.

interface DomainEntity
<<interface>> (p. 279) Abstract base class for all DDS entities except for
the com.rti.dds.domain.DomainParticipant ( p. 654).

class DomainParticipantResourceLimitsQosPolicy
Various
settings
that
configure
how
a
com.rti.dds.domain.DomainParticipant ( p. 654) allocates and uses
physical memory for internal resources, including the maximum sizes of
various properties.

class DoubleSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
double >.

class DurabilityQosPolicy
This QoS policy specifies whether or not RTI Connext will
store and deliver previously published data samples to new
com.rti.dds.subscription.DataReader ( p. 487) entities that join the
network later.

class DurabilityQosPolicyKind
Kinds of durability.

class DurabilityServiceQosPolicy

Various
settings
to
configure
the
external
RTI
Persistence Service used by RTI Connext for DataWriters with a
com.rti.dds.infrastructure.DurabilityQosPolicy ( p. 802) setting of
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSISTENT DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TRANSIENT DURABILITY QOS.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

338

Namespace Documentation

class Duration t
Type for duration representation.

class EndpointGroup t
Specifies a group of endpoints that can be collectively identified by a name
and satisfied by a quorum.

class EndpointGroupSeq
A sequence of com.rti.dds.infrastructure.EndpointGroup t ( p. 928).

interface Entity
<<interface>> (p. 279) Abstract base class for all the DDS objects that
support QoS policies, a listener, and a status condition.

class EntityFactoryQosPolicy
A
QoS
policy
for
all
com.rti.dds.infrastructure.Entity
( p. 931) types that can act as factories for one or more other
com.rti.dds.infrastructure.Entity ( p. 931) types.

class EntityNameQosPolicy
Assigns
a
name
and
a
role
name
to
a
com.rti.dds.domain.DomainParticipant
( p. 654),
com.rti.dds.publication.DataWriter
( p. 557)
or
These names will
com.rti.dds.subscription.DataReader ( p. 487).
be visible during the discovery process and in RTI tools to help you visualize
and debug your system.

class EventQosPolicy
Settings for event.

class ExclusiveAreaQosPolicy
Configures multi-thread concurrency and deadlock prevention capabilities.

class FloatSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
float >.

class GroupDataQosPolicy
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

class GuardCondition
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

339

<<interface>> (p. 279) A specific com.rti.dds.infrastructure.Condition


( p. 464) whose trigger value is completely under the control of the application.

class GUID t
Type for GUID (Global Unique Identifier) representation.

class HistoryQosPolicy
Specifies the behavior of RTI Connext in the case where the value of a sample
changes (one or more times) before it can be successfully communicated to
one or more existing subscribers.

class HistoryQosPolicyKind
Kinds of history.

class InetAddressSeq
Declares IDL sequence< com.rti.dds.infrastructure.java.net.InetAddress >.

class InstanceHandle t
Type definition for an instance handle.

class InstanceHandleSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.InstanceHandle t ( p. 1055) > .

class IntSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.int >.

class LatencyBudgetQosPolicy
Provides a hint as to the maximum acceptable delay from the time the data
is written to the time it is received by the subscribing applications.

class LifespanQosPolicy
Specifies
how
long
the
data
written
by
com.rti.dds.publication.DataWriter ( p. 557) is considered valid.

the

interface Listener
<<interface>> (p. 279) Abstract base class for all Listener ( p. 1130) interfaces.

class LivelinessQosPolicy
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

340

Namespace Documentation
Specifies
and
configures
the
mechanism
that
allows
com.rti.dds.subscription.DataReader ( p. 487) entities to detect
when com.rti.dds.publication.DataWriter ( p. 557) entities become
disconnected or dead..

class LivelinessQosPolicyKind
Kinds of liveliness.

class Locator t
<<eXtension>> (p. 278) Type used to represent the addressing information
needed to send a message to an RTPS Endpoint using one of the supported
transports.

class LocatorFilter t
Specifies the configuration of an individual channel within a MultiChannel
DataWriter.

class LocatorFilterQosPolicy
The QoS policy used to report the configuration of a MultiChannel
DataWriter as part of builtin.PublicationBuiltinTopicData.

class LocatorFilterSeq
Declares IDL sequence< com.rti.dds.infrastructure.LocatorFilter t ( p. 1154) >.

class LocatorSeq
Declares IDL sequence < com.rti.dds.infrastructure.Locator t ( p. 1150)
>.

class LoggingQosPolicy
Configures the RTI Connext logging facility.

class LongDoubleSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.LongDouble >.

class LongSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
long >.

class MultiChannelQosPolicy
Configures the ability of a DataWriter to send data on different multicast
groups (addresses) based on the value of the data.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

341

class ObjectHolder
<<eXtension>> (p. 278) Holder of object instance

class OwnershipQosPolicy
Specifies
whether
it
is
allowed
for
multiple
com.rti.dds.publication.DataWriter ( p. 557) (s) to write the same
instance of the data and if so, how these modifications should be arbitrated.

class OwnershipQosPolicyKind
Kinds of ownership.

class OwnershipStrengthQosPolicy
Specifies the value of the strength used to arbitrate among multiple com.rti.dds.publication.DataWriter ( p. 557) objects that attempt to modify the same instance of a data type (identified by
com.rti.dds.topic.Topic ( p. 1545) + key).

class PartitionQosPolicy
Set of strings that introduces a logical partition among the topics visible by a com.rti.dds.publication.Publisher ( p. 1262) and a
com.rti.dds.subscription.Subscriber ( p. 1476).

class PresentationQosPolicy
Specifies how the samples representing changes to data instances are presented to a subscribing application.

class PresentationQosPolicyAccessScopeKind
Kinds of presentation access scope.

class ProductVersion t
<<eXtension>> (p. 278) Type used to represent the current version of RTI
Connext.

class ProfileQosPolicy
Configures the way that XML documents containing QoS profiles are loaded
by RTI Connext.

class Property t
Properties are name/value pairs objects.

class PropertyQosPolicy
Stores name/value(string) pairs that can be used to configure certain parameters of RTI Connext that are not exposed through formal QoS policies. Can
also be used to store and propagate application-specific name/value pairs that
can be retrieved by user code during discovery.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

342

Namespace Documentation

class PropertyQosPolicyHelper
Policy Helpers which facilitate management of the properties in the input
policy.

class PropertySeq
Declares IDL
( p. 1234) >.

sequence

<

com.rti.dds.infrastructure.Property t

class ProtocolVersion t
<<eXtension>> (p. 278) Type used to represent the version of the RTPS
protocol.

class PublishModeQosPolicy
Specifies how RTI Connext sends application data on the network. This QoS
policy can be used to tell RTI Connext to use its own thread to send data,
instead of the user thread.

class PublishModeQosPolicyKind
Kinds of publishing mode.

class Qos
An abstract base class for all QoS types.

class QosPolicy
The base class for all QoS policies.

class QosPolicyCount
Type to hold a counter for a com.rti.dds.infrastructure.QosPolicyId t
( p. 1305).

class QosPolicyCountSeq
Declares IDL sequence < com.rti.dds.infrastructure.QosPolicyCount
( p. 1302) >.

class QosPolicyId t
Type to identify QosPolicies.

class ReaderDataLifecycleQosPolicy
Controls how a DataReader manages the lifecycle of the data that it has
received.

class ReceiverPoolQosPolicy
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

343

Configures threads used by RTI Connext to receive and process data from
transports (for example, UDP sockets).

class RefilterQosPolicyKind
<<eXtension>> (p. 278) Kinds of Refiltering

class ReliabilityQosPolicy
Indicates the level of reliability offered/requested by RTI Connext.

class ReliabilityQosPolicyAcknowledgmentModeKind
Kinds of acknowledgment.

class ReliabilityQosPolicyKind
Kinds of reliability.

class RemoteParticipantPurgeKind
Available behaviors for halting communication with remote participants (and
their contained entities) with which discovery communication has been lost.

class ResourceLimitsQosPolicy
Controls the amount of physical memory allocated for DDS entities, if dynamic allocations are allowed, and how they occur. Also controls memory
usage among different instance values for keyed topics.

class RETCODE ALREADY DELETED


The object target of this operation has already been deleted.

class RETCODE BAD PARAMETER


Illegal parameter value.

class RETCODE ERROR


Generic, unspecified error.

class RETCODE ILLEGAL OPERATION


The operation was called under improper circumstances.

class RETCODE IMMUTABLE POLICY


Application attempted to modify an immutable QoS policy.

class RETCODE INCONSISTENT POLICY


Application specified a set of QoS policies that are not consistent with each
other.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

344

Namespace Documentation
class RETCODE NO DATA
Indicates a transient situation where the operation did not return any data
but there is no inherent error.

class RETCODE NOT ENABLED


Operation invoked on a com.rti.dds.infrastructure.Entity ( p. 931) that is
not yet enabled.

class RETCODE OUT OF RESOURCES


RTI Connext ran out of the resources needed to complete the operation.

class RETCODE PRECONDITION NOT MET


A pre-condition for the operation was not met.

class RETCODE TIMEOUT


The operation timed out.

class RETCODE UNSUPPORTED


Unsupported operation. Can only returned by operations that are unsupported.

class RtpsReliableReaderProtocol t
Qos ( p. 1300) related to reliable reader protocol defined in RTPS.

class RtpsReliableWriterProtocol t
QoS related to the reliable writer protocol defined in RTPS.

class RtpsReservedPortKind
RTPS reserved port kind, used to identify the types of ports that can be reserved on domain ( p. 328) participant enable.

class RtpsWellKnownPorts t
RTPS well-known port mapping configuration.

class SampleIdentity t
Type definition for an Sample Identity.

class SequenceNumber t
Type for sequence number representation.

class ShortSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
short >.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

345

interface StatusCondition
<<interface>> (p. 279) A specific com.rti.dds.infrastructure.Condition
( p. 464) that is associated with each com.rti.dds.infrastructure.Entity
( p. 931).

class StatusKind
Type for status kinds.

class StringSeq
Declares IDL sequence < com.rti.dds.infrastructure.String > .

class SystemException
System exception.

class SystemResourceLimitsQosPolicy
Configures
com.rti.dds.domain.DomainParticipant
( p. 654)independent resources used by RTI Connext. Mainly used to change
the maximum number of com.rti.dds.domain.DomainParticipant
( p. 654) entities that can be created within a single process (address space).

class ThreadSettings t
The properties of a thread of execution.

class ThreadSettingsCpuRotationKind
Determines how com.rti.dds.infrastructure.ThreadSettings t.cpu list
( p. 1531) affects processor affinity for thread-related QoS policies that apply to multiple threads.

class ThreadSettingsKind
A collection of flags used to configure threads of execution.

class Time t
Type for time representation.

class TimeBasedFilterQosPolicy
Filter that allows a com.rti.dds.subscription.DataReader ( p. 487) to
specify that it is interested only in (potentially) a subset of the values of
the data.

class TopicDataQosPolicy
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

346

Namespace Documentation
class TransportBuiltinKind
Built-in transport kind.

class TransportBuiltinQosPolicy
Specifies which built-in transports are used.

class TransportMulticastMapping t
Type representing a list of multicast mapping elements.

class TransportMulticastMappingFunction t
Type representing an external mapping function.

class TransportMulticastMappingQosPolicy
Specifies
the
multicast
address
on
which
a
com.rti.dds.subscription.DataReader ( p. 487) wants to receive its
data. It can also specify a port number as well as a subset of the available (at the com.rti.dds.domain.DomainParticipant ( p. 654) level)
transports with which to receive the multicast data.

class TransportMulticastMappingSeq
Declares IDL sequence< com.rti.dds.infrastructure.TransportMulticastSettings t ( p. 1594) >.

class TransportMulticastQosPolicy
Specifies
the
multicast
address
on
which
a
com.rti.dds.subscription.DataReader ( p. 487) wants to receive its
data. It can also specify a port number as well as a subset of the available (at the com.rti.dds.domain.DomainParticipant ( p. 654) level)
transports with which to receive the multicast data.

class TransportMulticastQosPolicyKind
Transport Multicast Policy Kind.

class TransportMulticastSettings t
Type representing a list of multicast locators.

class TransportMulticastSettingsSeq
Declares IDL sequence< com.rti.dds.infrastructure.TransportMulticastSettings t ( p. 1594) >.

class TransportPriorityQosPolicy
This QoS policy allows the application to take advantage of transports that
are capable of sending messages with different priorities.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.6 Package com.rti.dds.infrastructure

347

class TransportSelectionQosPolicy
Specifies the physical transports a com.rti.dds.publication.DataWriter
( p. 557) or com.rti.dds.subscription.DataReader ( p. 487) may use to
send or receive data.

class TransportUnicastQosPolicy
Specifies a subset of transports and a port number that can be used by an
Entity ( p. 931) to receive data.

class TransportUnicastSettings t
Type representing a list of unicast locators.

class TransportUnicastSettingsSeq
Declares IDL sequence< com.rti.dds.infrastructure.TransportUnicastSettings t ( p. 1608) >.

class TypeConsistencyEnforcementQosPolicy
Defines the rules for determining whether the type used to publish a given
topic ( p. 359) is consistent with that used to subscribe to it.

class TypeConsistencyKind
Kinds of type consistency.

class TypeSupportQosPolicy
Allows you to attach application-specific values to a DataWriter or
DataReader that are passed to the serialization or deserialization routine
of the associated data type.

class UserDataQosPolicy
Attaches a buffer of opaque data that is distributed by means of Built-in
Topics ( p. 157) during discovery.

class UserException
User exception.

class VendorId t
<<eXtension>> (p. 278) Type used to represent the vendor of the service
implementing the RTPS protocol.

class WaitSet
<<interface>> (p. 279) Allows an application to wait until one or more
of the attached com.rti.dds.infrastructure.Condition ( p. 464) objects has
a trigger value of com.rti.dds.infrastructure.true or else until the timeout
expires.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

348

Namespace Documentation

class WaitSetProperty t
<<eXtension>>
(p. 278)
Specifies
the
com.rti.dds.infrastructure.WaitSet ( p. 1709) behavior for multiple
trigger events.

class WcharSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.char >.

class WireProtocolQosPolicy
Specifies
the
wire-protocol-related
attributes
com.rti.dds.domain.DomainParticipant ( p. 654).

for

the

class WireProtocolQosPolicyAutoKind
Kind of auto mechanism used to calculate the GUID prefix.

class WriteParams t
<<eXtension>>
(p. 278) Input parameters for writing with
( p. 1026),
com.rti.ndds.example.FooDataWriter.write w params
com.rti.ndds.example.FooDataWriter.dispose w params
( p. 1031),
com.rti.ndds.example.FooDataWriter.register instance w params
( p. 1016),
com.rti.ndds.example.FooDataWriter.unregister instance w params ( p. 1021)

class WriterDataLifecycleQosPolicy
Controls how a com.rti.dds.publication.DataWriter ( p. 557) handles the
lifecycle of the instances (keys) that it is registered to manage.

class WstringSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.infrastructure.char >.

7.6.1

Detailed Description

Defines the abstract classes and the interfaces that are refined by the other
modules. Contains common definitions such as return codes, status values, and
QoS policies.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.7 Package com.rti.dds.publication

7.7

349

Package com.rti.dds.publication

Contains
the
com.rti.dds.publication.FlowController
com.rti.dds.publication.Publisher
(p. 1262),
and
(p. 964),
com.rti.dds.publication.DataWriter (p. 557) classes as well as
the
com.rti.dds.publication.PublisherListener
(p. 1289)
and
com.rti.dds.publication.DataWriterListener (p. 586) interfaces, and
more generally, all that is needed on the publication (p. 349) side.

Classes
class AcknowledgmentInfo
Information about an application-level acknowledged sample.

interface DataWriter
<<interface>> (p. 279) Allows an application to set the value of the data
to be published under a given com.rti.dds.topic.Topic ( p. 1545).

class DataWriterAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods or functions.)

class DataWriterCacheStatus
<<eXtension>> (p. 278) The status of the writers cache.

interface DataWriterListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for writer status.

class DataWriterProtocolStatus
<<eXtension>> (p. 278) The status of a writers internal protocol related
metrics, like the number of samples pushed, pulled, filtered; and status of
wire protocol traffic.

class DataWriterQos
QoS policies supported by a com.rti.dds.publication.DataWriter ( p. 557)
entity.

interface FlowController
<<interface>> (p. 279) A flow controller is the object responsible for
shaping the network traffic by determining when attached asynchronous
com.rti.dds.publication.DataWriter ( p. 557) instances are allowed to
write data.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

350

Namespace Documentation

class FlowControllerProperty t
Determines
the
flow
control
characteristics
com.rti.dds.publication.FlowController ( p. 964).

of

the

class FlowControllerSchedulingPolicy
Kinds of flow controller scheduling policy.

class FlowControllerTokenBucketProperty t
com.rti.dds.publication.FlowController ( p. 964) uses the popular token
bucket approach for open loop network flow control. The flow control characteristics are determined by the token bucket properties.

class LivelinessLostStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.LIVELINESS LOST STATUS

class OfferedDeadlineMissedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED DEADLINE MISSED STATUS

class OfferedIncompatibleQosStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.OFFERED INCOMPATIBLE QOS STATUS

class PublicationMatchedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.PUBLICATION MATCHED STATUS

interface Publisher
<<interface>> (p. 279) A publisher is the object responsible for the actual
dissemination of publications.

class PublisherAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

interface PublisherListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for com.rti.dds.publication.Publisher ( p. 1262) status.

class PublisherQos
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.7 Package com.rti.dds.publication

351

QoS policies supported by a com.rti.dds.publication.Publisher ( p. 1262)


entity.

class PublisherSeq
Declares IDL sequence < com.rti.dds.publication.Publisher ( p. 1262) >
.

class ReliableReaderActivityChangedStatus
<<eXtension>> (p. 278) Describes the activity (i.e. are acknowledgements
forthcoming) of reliable readers matched to a reliable writer.

class ReliableWriterCacheChangedStatus
<<eXtension>> (p. 278) A summary of the state of a data writers cache
of unacknowledged samples written.

class ReliableWriterCacheEventCount
<<eXtension>> (p. 278) The number of times the number of unacknowledged samples in the cache of a reliable writer hit a certain well-defined
threshold.

Packages
package builtin
Builtin topic ( p. 359) for accessing information about the Publications discovered by RTI Connext.

7.7.1

Detailed Description

Contains
the
com.rti.dds.publication.FlowController
(p. 964),
com.rti.dds.publication.Publisher
(p. 1262),
and
com.rti.dds.publication.DataWriter (p. 557) classes as well as
the
com.rti.dds.publication.PublisherListener
(p. 1289)
and
com.rti.dds.publication.DataWriterListener (p. 586) interfaces, and
more generally, all that is needed on the publication (p. 349) side.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

352

Namespace Documentation

7.8

Package com.rti.dds.publication.builtin

Builtin topic (p. 359) for accessing information about the Publications discovered by RTI Connext.

Classes
class PublicationBuiltinTopicData
Entry created when a com.rti.dds.publication.DataWriter ( p. 557) is discovered in association with its Publisher ( p. 1262).

class PublicationBuiltinTopicDataDataReader
Instantiates
DataReader
( p. 1249) > .

<

builtin.PublicationBuiltinTopicData

class PublicationBuiltinTopicDataSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
builtin.PublicationBuiltinTopicData ( p. 1249) > .

class PublicationBuiltinTopicDataTypeSupport
Instantiates TypeSupport
( p. 1249) > .

7.8.1

<

builtin.PublicationBuiltinTopicData

Detailed Description

Builtin topic (p. 359) for accessing information about the Publications discovered by RTI Connext.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.9 Package com.rti.dds.subscription

7.9

353

Package com.rti.dds.subscription

Contains
the
com.rti.dds.subscription.Subscriber
(p. 1476),
com.rti.dds.subscription.DataReader
(p. 487),
and
com.rti.dds.subscription.ReadCondition
(p. 1313),
com.rti.dds.subscription.QueryCondition (p. 1311) classes, as well
as the com.rti.dds.subscription.SubscriberListener (p. 1503) and
com.rti.dds.subscription.DataReaderListener (p. 518) interfaces, and
more generally, all that is needed on the subscription (p. 353) side.

Classes
interface DataReader
<<interface>> (p. 279) Allows the application to: (1) declare the data it
wishes to receive (i.e. make a subscription ( p. 353)) and (2) access the data
received by the attached com.rti.dds.subscription.Subscriber ( p. 1476).

class DataReaderAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

class DataReaderCacheStatus
<<eXtension>> (p. 278) The status of the readers cache.

interface DataReaderListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for reader status.

class DataReaderProtocolStatus
<<eXtension>> (p. 278) The status of a readers internal protocol related
metrics, like the number of samples received, filtered, rejected; and status of
wire protocol traffic.

class DataReaderQos
QoS policies supported by a com.rti.dds.subscription.DataReader
( p. 487) entity.

class DataReaderSeq
Declares IDL sequence < com.rti.dds.subscription.DataReader ( p. 487)
>.

class InstanceStateKind
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

354

Namespace Documentation
Indicates
is
the
samples
are
from
com.rti.dds.publication.DataWriter ( p. 557) or not.

live

class LivelinessChangedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.LIVELINESS CHANGED STATUS

interface QueryCondition
<<interface>>
(p. 279)
These
are
specialised
com.rti.dds.subscription.ReadCondition ( p. 1313) objects that allow the application to also specify a filter on the locally available data.

interface ReadCondition
<<interface>> (p. 279) Conditions specifically dedicated to read operations
and attached to one com.rti.dds.subscription.DataReader ( p. 487).

class RequestedDeadlineMissedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED DEADLINE MISSED STATUS

class RequestedIncompatibleQosStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.REQUESTED INCOMPATIBLE QOS STATUS

class SampleInfo
Information that accompanies each sample that is read or taken.

class SampleInfoSeq
Declares IDL
( p. 1398) > .

sequence

<

com.rti.dds.subscription.SampleInfo

class SampleLostStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.SAMPLE LOST STATUS STATUS

class SampleLostStatusKind
Kinds of reasons why a sample was lost.

class SampleRejectedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.SAMPLE REJECTED STATUS

class SampleRejectedStatusKind
Kinds of reasons for rejecting a sample.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.9 Package com.rti.dds.subscription

355

class SampleStateKind
Indicates whether or not a sample has ever been read.

interface Subscriber
<<interface>> (p. 279) A subscriber is the object responsible for actually
receiving data from a subscription ( p. 353).

class SubscriberAdapter
A listener adapter in the spirit of the Java AWT listener adapters. (The
Adapter provides empty implementations for the listener methods).

interface SubscriberListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for status about a subscriber.

class SubscriberQos
QoS policies supported
( p. 1476) entity.

by

com.rti.dds.subscription.Subscriber

class SubscriberSeq
Declares IDL sequence < com.rti.dds.subscription.Subscriber ( p. 1476)
>.

class SubscriptionMatchedStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.SUBSCRIPTION MATCHED STATUS

class ViewStateKind
Indicates whether or not an instance is new.

Packages
package builtin
Builtin topic ( p. 359) for accessing information about the Subscriptions discovered by RTI Connext.

7.9.1
Contains
(p. 1476),

Detailed Description
the
com.rti.dds.subscription.Subscriber
com.rti.dds.subscription.DataReader
(p. 487),

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

356

Namespace Documentation

com.rti.dds.subscription.ReadCondition
(p. 1313),
com.rti.dds.subscription.QueryCondition (p. 1311) classes, as
as the com.rti.dds.subscription.SubscriberListener (p. 1503)
com.rti.dds.subscription.DataReaderListener (p. 518) interfaces,
more generally, all that is needed on the subscription (p. 353) side.

7.9.2

and
well
and
and

Access to data samples

Data is made available to the application by the following operations


on
com.rti.dds.subscription.DataReader
(p. 487)
objects:
com.rti.ndds.example.FooDataReader.read
(p. 981),
com.rti.ndds.example.FooDataReader.read w condition
(p. 990),
com.rti.ndds.example.FooDataReader.take
(p. 983),
com.rti.ndds.example.FooDataReader.take w condition
(p. 991),
and the other variants of read() and take().
The general semantics of the read() operation is that the application only gets
access to the corresponding data (i.e. a precise instance value); the data remains
the responsibility of RTI Connext and can be read again.
The semantics of the take() operations is that the application takes full responsibility for the data; that data will no longer be available locally to RTI
Connext. Consequently, it is possible to access the same information multiple
times only if all previous accesses were read() operations, not take().
Each of these operations returns a collection of Data values and associated
com.rti.dds.subscription.SampleInfo (p. 1398) objects. Each data value
represents an atom of data information (i.e., a value for one instance). This
collection may contain samples related to the same or different instances (identified by the key). Multiple samples can refer to the same instance if the settings
of the HISTORY (p. 79) QoS allow for it.
To return the memory back to the middleware, every read() or take()
that retrieves a sequence of samples must be followed with a call to
com.rti.ndds.example.FooDataReader.return loan (p. 1008).
See also:
Interpretation of the SampleInfo (p. 1400)

7.9.2.1

Data access patterns

The application accesses data by means of the operations read or


take on the com.rti.dds.subscription.DataReader (p. 487). These operations return an ordered collection of DataSamples consisting of a
com.rti.dds.subscription.SampleInfo (p. 1398) part and a Data part.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.9 Package com.rti.dds.subscription

357

The way RTI Connext builds the collection depends on QoS policies set on the com.rti.dds.subscription.DataReader (p. 487) and
com.rti.dds.subscription.Subscriber (p. 1476), as well as the source timestamp of the samples, and the parameters passed to the read() / take()
operations, namely:
the
desired
sample
states
(any
combination
com.rti.dds.subscription.SampleStateKind (p. 1426))

of

the
desired
view
states
(any
combination
com.rti.dds.subscription.ViewStateKind (p. 1703))

of

the
desired
instance
states
(any
combination
com.rti.dds.subscription.InstanceStateKind (p. 1061))

of

The read() and take() operations are non-blocking and just deliver what is
currently available that matches the specified states.
The read w condition() and take w condition() operations take a
com.rti.dds.subscription.ReadCondition (p. 1313) object as a parameter instead of sample, view or instance states.
The behaviour is
that the samples returned will only be those for which the condition is com.rti.dds.infrastructure.true.
These operations, in conjunction
with com.rti.dds.subscription.ReadCondition (p. 1313) objects and a
com.rti.dds.infrastructure.WaitSet (p. 1709), allow performing waiting
reads.
Once the data samples are available to the data readers, they can be read or
taken by the application. The basic rule is that the application may do this in
any order it wishes. This approach is very flexible and allows the application
ultimate control.
To access data coherently, or in order, the PRESENTATION (p. 90) QoS
must be set properly.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

358

Namespace Documentation

7.10

Package com.rti.dds.subscription.builtin

Builtin topic (p. 359) for accessing information about the Subscriptions discovered by RTI Connext.

Classes
class SubscriptionBuiltinTopicData
Entry created when a com.rti.dds.subscription.DataReader ( p. 487) is
discovered in association with its Subscriber ( p. 1476).

class SubscriptionBuiltinTopicDataDataReader
Instantiates DataReader (p. 487) < builtin.SubscriptionBuiltinTopicData
( p. 1509) > .

class SubscriptionBuiltinTopicDataSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
builtin.SubscriptionBuiltinTopicData ( p. 1509) > .

class SubscriptionBuiltinTopicDataTypeSupport
Instantiates TypeSupport
( p. 1509) > .

7.10.1

<

builtin.SubscriptionBuiltinTopicData

Detailed Description

Builtin topic (p. 359) for accessing information about the Subscriptions discovered by RTI Connext.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.11 Package com.rti.dds.topic

7.11

359

Package com.rti.dds.topic

Contains
the
com.rti.dds.topic.Topic
(p. 1545),
com.rti.dds.topic.ContentFilteredTopic
(p. 471),
and
com.rti.dds.topic.MultiTopic
(p. 1190)
classes,
the
com.rti.dds.topic.TopicListener (p. 1564) interface, and more generally, all that is needed by an application to define com.rti.dds.topic.Topic
(p. 1545) objects and attach QoS policies to them.

Classes
class BuiltinTopicKey t
The key type of the built-in topic ( p. 359) types.

interface ContentFilter
<<interface>> (p. 279) Interface to be used by a custom filter of a
com.rti.dds.topic.ContentFilteredTopic ( p. 471)

interface ContentFilteredTopic
<<interface>>
(p. 279)
Specialization
of
com.rti.dds.topic.TopicDescription ( p. 1561) that allows for contentbased subscriptions.

class ExpressionProperty
class FilterSampleInfo
class InconsistentTopicStatus
com.rti.dds.infrastructure.StatusKind.StatusKind.INCONSISTENT TOPIC STATUS

interface MultiTopic
[Not supported (optional)] <<interface>> (p. 279) A specialization
of com.rti.dds.topic.TopicDescription ( p. 1561) that allows subscriptions
that combine/filter/rearrange data coming from several topics.

interface Topic
<<interface>> (p. 279) The most basic description of the data to be published and subscribed.

class TopicAdapter
<<eXtension>> (p. 278) A listener adapter in the spirit of the Java AWT
listener adapters. (The Adapter provides empty implementations for the listener methods)

interface TopicDescription
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

360

Namespace Documentation
com.rti.dds.topic.Topic ( p. 1545) entity and associated elements

interface TopicListener
<<interface>> (p. 279) com.rti.dds.infrastructure.Listener ( p. 1130)
for com.rti.dds.topic.Topic ( p. 1545) entities.

class TopicQos
QoS policies supported by a com.rti.dds.topic.Topic ( p. 1545) entity.

interface TypeSupport
<<interface>> (p. 279) An abstract marker interface that has to be specialized for each concrete user data type that will be used by the application.

interface WriterContentFilter

Packages
package builtin
Builtin topic ( p. 359) for accessing information about the Topics discovered
by RTI Connext.

7.11.1

Detailed Description

Contains
the
com.rti.dds.topic.Topic
(p. 1545),
com.rti.dds.topic.ContentFilteredTopic
(p. 471),
and
com.rti.dds.topic.MultiTopic
(p. 1190)
classes,
the
com.rti.dds.topic.TopicListener (p. 1564) interface, and more generally, all that is needed by an application to define com.rti.dds.topic.Topic
(p. 1545) objects and attach QoS policies to them.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.12 Package com.rti.dds.topic.builtin

7.12

361

Package com.rti.dds.topic.builtin

Builtin topic (p. 359) for accessing information about the Topics discovered by
RTI Connext.

Classes
class AbstractBuiltinTopicDataTypeSupport
class TopicBuiltinTopicData
Entry created when a Topic ( p. 1545) object discovered.

class TopicBuiltinTopicDataDataReader
Instantiates DataReader < builtin.TopicBuiltinTopicData ( p. 1552) > .

class TopicBuiltinTopicDataSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
builtin.TopicBuiltinTopicData ( p. 1552) > .

class TopicBuiltinTopicDataTypeSupport
Instantiates TypeSupport (p. 1665) < builtin.TopicBuiltinTopicData
( p. 1552) > .

7.12.1

Detailed Description

Builtin topic (p. 359) for accessing information about the Topics discovered by
RTI Connext.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

362

Namespace Documentation

7.13

Package com.rti.dds.type.builtin

<<eXtension>> ( p. 278) RTI Connext provides a set of very simple data


types for you to use with the topics in your application.

Classes
class Bytes
Built-in type consisting of a variable-length array of opaque bytes.

class BytesDataReader
<<interface>>
(p. 279)
Instantiates
DataReader
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes >.

<

class BytesDataWriter
<<interface>>
(p. 279)
Instantiates
DataWriter
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes >.

<

class BytesSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes > .

class BytesTypeSupport
<<interface>> (p. 279) com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes
type support.

class KeyedBytes
Built-in type consisting of a variable-length array of opaque bytes and a string
that is the key.

class KeyedBytesDataReader
<<interface>>
(p. 279)
Instantiates
DataReader
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes >.

<

class KeyedBytesDataWriter
<<interface>>
(p. 279)
Instantiates
DataWriter
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes >.

<

class KeyedBytesSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes >.

class KeyedBytesTypeSupport
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.13 Package com.rti.dds.type.builtin

363

<<interface>> (p. 279) com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes


type support.

class KeyedString
Keyed string built-in type.

class KeyedStringDataReader
<<interface>>
(p. 279)
Instantiates
DataReader
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString >.

<

class KeyedStringDataWriter
<<interface>>
(p. 279)
Instantiates
DataWriter
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString >.

<

class KeyedStringSeq
Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString > .

class KeyedStringTypeSupport
<<interface>> (p. 279) Keyed string type support.

class StringDataReader
<<interface>>
(p. 279)
com.rti.dds.infrastructure.String >.

Instantiates

DataReader

<

Instantiates

DataWriter

<

class StringDataWriter
<<interface>>
(p. 279)
com.rti.dds.infrastructure.String >.

class StringTypeSupport
<<interface>> (p. 279) String type support.

7.13.1

Detailed Description

<<eXtension>> ( p. 278) RTI Connext provides a set of very simple data


types for you to use with the topics in your application.
The middleware provides four built-in types:
String: A payload consisting of a single string of characters. This type
has no key.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

364

Namespace Documentation
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString: A payload
consisting of a single string of characters and a second string, the key,
that identifies the instance to which the sample belongs.
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes: A payload consisting of an opaque variable-length array of bytes. This type has no
key.
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes: A payload
consisting of an opaque variable-length array of bytes and a string, the
key, that identifies the instance to which the sample belongs.

The String and com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedString


types
are
appropriate
for
simple
text-based
applications.
The
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes
and
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytes types are appropriate for applications that perform their own custom data serialization,
such as legacy applications still in the process of migrating to RTI Connext. In
most cases, string-based or structured data is preferable to opaque data, because the latter cannot be easily visualized in tools or used with content-based
filters (see com.rti.dds.topic.ContentFilteredTopic (p. 471)).
The built-in types are very simple in order to get you up and running as quickly
as possible. If you need a structured data type you can define your own type
with exactly the fields you need in one of two ways:
At compile time, by generating code from an IDL or XML file using the
rtiddsgen (p. 298) utility
At runtime, by using the Dynamic Data (p. 175) API

7.13.2

Managing Memory for Builtin Types

When a sample is written, the DataWriter serializes it and stores the result in
a buffer obtained from a pool of preallocated buffers. In the same way, when
a sample is received, the DataReader deserializes it and stores the result in a
sample coming from a pool of preallocated samples.
For builtin (p. 362) types, the maximum size of the buffers/samples and depends on the nature of the application using the builtin (p. 362) type.
You can configure the maximum size of the builtin (p. 362)
types on a per-DataWriter and per-DataReader basis using the
com.rti.dds.infrastructure.PropertyQosPolicy (p. 1236) in DataWriters,
DataReaders or Participants.
The following table lists the supported builtin (p. 362) type properties to configure memory allocation. When the properties are defined in the DomainParticipant, they are applicable to all DataWriters and DataReaders belonging
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.13 Package com.rti.dds.type.builtin

365

to the DomainParticipant unless they are overwrittem in the DataWriters and


DataReaders.

The previous properties must be set consistently with respect to the corresponding .max size properties that set the maximum size of the builtin (p. 362) types
in the typecode (p. 368).

7.13.3

Typecodes for Builtin Types

The typecodes associated with the builtin (p. 362) types are generated from
the following IDL type definitions:
module DDS {
struct String {
string value;
};
struct KeyedString {
string key;
string value;
};
struct Octets {
sequence<octet> value;
};
struct KeyedOctets {
string key;
sequence<octet> value;
};
};

The maximum size of the strings and sequences that will be included in the type
code definitions can be configured on a per-DomainParticipant-basis by using
the properties in following table.

For more information about the built-in types, including how to control memory usage and maximum lengths, please see chapter 3, Data Types and Data
Samples, in the Users Manual.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

366
Property
dds.builtin type.string.alloc size

Namespace Documentation

Description
Maximum size of the strings
published by the
com.rti.dds.type.builtin.StringDataWriter
(p. 1465) or received the
com.rti.dds.type.builtin.StringDataReader
(p. 1462) (includes the
NULL-terminated character).
Default:
dds.builtin type.string.max size if
defined. Otherwise, 1024.
dds.builtin type.keyed string.alloc Maximum size of the keys used by
key size
the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDa
or
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDa
(includes the NULL-terminated
character).
Default: dds.builtin type.keyed string.max key size if defined.
Otherwise, 1024.
dds.builtin type.keyed string.alloc Maximum size of the strings
size
published by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDa
or received by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedStringDa
(includes the NULL-terminated
character).
Default: dds.builtin type.keyed string.max size if defined.
Otherwise, 1024.
dds.builtin type.octets.alloc size
Maximum size of the octet
sequences published the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.BytesDataWrit
or received by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.BytesDataRead
Default:
dds.builtin type.octets.max size if
defined. Otherwise, 2048.
dds.builtin type.keyed octets.alloc Maxkey size
imum size of the key published by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDa
or received by the
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDa
(includes the NULL-terminated
character).
Default: dds.builtin type.keyed octets.max
key size
if API
defined.
Generated on Mon Aug 13 09:02:20 2012
for RTI Connext
Java
by Doxygen
Otherwise, 1024.
dds.builtin type.keyed octets.alloc Maximum size of the octets
size
sequences published by a
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDa
or received by a
com.rti.dds.type.builtin.com.rti.dds.type.builtin.KeyedBytesDa
Default: dds.builtin type.keyed -

7.13 Package com.rti.dds.type.builtin


Property
dds.builtin type.string.max size

dds.builtin type.keyed string.max key size

dds.builtin type.keyed string.max size

dds.builtin type.octets.max size

dds.builtin type.keyed octets.max key size

dds.builtin type.keyed octets.max size

367

Description
Maximum size of the strings
published by the StringDataWriters
and received by the
StringDataReaders belonging to a
DomainParticipant (includes the
NULL-terminated character).
Default: 1024.
Maximum size of the keys used by
the KeyedStringDataWriters and
KeyedStringDataReaders belonging
to a DomainParticipant (includes
the NULL-terminated character).
Default: 1024.
Maximum size of the strings
published by the
KeyedStringDataWriters and
received by the
KeyedStringDataReaders belonging
to a DomainParticipant using the
builtin (p. 362) type (includes the
NULL-terminated character).
Default: 1024
Maximum size of the octet
sequences published by the
OctetsDataWriters and received by
the OctetsDataReader belonging to
a DomainParticipant.
Default: 2048
Maximum size of the keys used by
the KeyedOctetsStringDataWriters
and KeyedOctetsStringDataReaders
belonging to a DomainParticipant
(includes the NULL-terminated
character).
Default: 1024.
Maximum size of the octet
sequences published by the
KeyedOctetsDataWriters and
received by the
KeyedOctetsDataReaders belonging
to a DomainParticipant.
Default: 2048

Table 7.2: Properties for Allocating Size of Builtin Types, per DomainParticipant
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

368

Namespace Documentation

7.14

Package com.rti.dds.typecode

<<eXtension>> ( p. 278) A com.rti.dds.typecode.TypeCode ( p. 1611) is


a mechanism for representing a type at runtime. RTI Connext can use type
codes to send type definitions on the network. You will need to understand this
API in order to use the Dynamic Data (p. 175) capability or to inspect the
type information you receive from remote readers and writers.

Classes
class EnumMember
A description of a member of an enumeration.

class ExtensibilityKind
Type to indicate the extensibility of a type.

class PRIVATE MEMBER


Constant used to indicate that a value type member is private.

class PUBLIC MEMBER


Constant used to indicate that a value type member is public.

class StructMember
A description of a member of a struct.

class TCKind
Enumeration type for com.rti.dds.typecode.TypeCode ( p. 1611) kinds.

class TypeCode
The definition of a particular data type, which you can use to inspect the
name, members, and other properties of types generated with rtiddsgen
( p. 298) or to modify types you define yourself at runtime.

class TypeCodeFactory
A singleton factory for creating, copying, and deleting data type definitions
dynamically.

class UnionMember
A description of a member of a union.

class ValueMember
A description of a member of a value type.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.14 Package com.rti.dds.typecode

369

class VM ABSTRACT
Constant used to indicate that a value type has the abstract modifier.

class VM CUSTOM
Constant used to indicate that a value type has the custom modifier.

class VM NONE
Constant used to indicate that a value type has no modifiers.

class VM TRUNCATABLE
Constant used to indicate that a value type has the truncatable modifier.

7.14.1

Detailed Description

<<eXtension>> ( p. 278) A com.rti.dds.typecode.TypeCode ( p. 1611) is


a mechanism for representing a type at runtime. RTI Connext can use type
codes to send type definitions on the network. You will need to understand this
API in order to use the Dynamic Data (p. 175) capability or to inspect the
type information you receive from remote readers and writers.
Type codes are values that are used to describe arbitrarily complex types at runtime.
Type code values are manipulated via the
com.rti.dds.typecode.TypeCode (p. 1611) class, which has an analogue in
CORBA.
A com.rti.dds.typecode.TypeCode (p. 1611) value consists of a type code
kind (represented by the com.rti.dds.typecode.TCKind (p. 1525) enumeration) and a list of members (that is, fields). These members are recursive: each
one has its own com.rti.dds.typecode.TypeCode (p. 1611), and in the case
of complex types (structures, arrays, and so on), these contained type codes
contain their own members.
There are a number of uses for type codes.
The type code mechanism can be used to unambiguously match type representations.
The
com.rti.dds.typecode.TypeCode.TypeCode.equals method is a more reliable test
than comparing the string type names, requiring equivalent definitions of the
types.

7.14.2

Accessing a Local com.rti.dds.typecode.TypeCode

When generating types with rtiddsgen (p. 298), type codes are enabled
by default. (The -notypecode option can be used to disable generation of
com.rti.dds.typecode.TypeCode (p. 1611) information.) For these types,
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

370

Namespace Documentation

a com.rti.dds.typecode.TypeCode (p. 1611) may be accessed via the


FooTypeCode.VALUE member.
This
API
also
includes
support
for
dynamic
creation
of
values,
typically
com.rti.dds.typecode.TypeCode
(p. 1611)
for use with the Dynamic Data (p. 175) API. You can create
a
com.rti.dds.typecode.TypeCode
(p. 1611)
using
the
com.rti.dds.typecode.TypeCodeFactory (p. 1647) class.
You will
construct the com.rti.dds.typecode.TypeCode (p. 1611) recursively, from
the outside in: start with the type codes for primitive types, then compose
them into complex types like arrays, structures, and so on. You will find the
following methods helpful:
com.rti.dds.typecode.TypeCodeFactory.get primitive tc
(p. 1660), which provides the com.rti.dds.typecode.TypeCode
(p. 1611)
instances
corresponding
to
the
primitive
types
(e.g.
com.rti.dds.typecode.TCKind.TK LONG (p. 1527),
com.rti.dds.typecode.TCKind.TK SHORT (p. 1527),
and so
on).
com.rti.dds.typecode.TypeCodeFactory.create string tc (p. 1657)
and
com.rti.dds.typecode.TypeCodeFactory.create wstring tc (p. 1658) create a com.rti.dds.typecode.TypeCode (p. 1611)
representing a text string with a certain bound (i.e. maximum length).
com.rti.dds.typecode.TypeCodeFactory.create array tc (p. 1659)
and com.rti.dds.typecode.TypeCodeFactory.create sequence tc
(p. 1658) create a com.rti.dds.typecode.TypeCode (p. 1611) for a
collection based on the com.rti.dds.typecode.TypeCode (p. 1611) for
its elements.
com.rti.dds.typecode.TypeCodeFactory.create struct tc
(p. 1651), com.rti.dds.typecode.TypeCodeFactory.create value tc
(p. 1652), and com.rti.dds.typecode.TypeCodeFactory.create sparse tc (p. 1653) create a com.rti.dds.typecode.TypeCode
(p. 1611) for a structured type.

7.14.3

Accessing a Remote com.rti.dds.typecode.TypeCode

In addition to being used locally, RTI Connext can transmit


com.rti.dds.typecode.TypeCode (p. 1611) on the network between
participants. This information can be used to access information about types
used remotely at runtime, for example to be able to publish or subscribe to
topics of arbitrarily types (see Dynamic Data (p. 175)). This functionality is
useful for a generic system monitoring tool like rtiddsspy.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.14 Package com.rti.dds.typecode

371

Remote com.rti.dds.typecode.TypeCode (p. 1611) information is shared


during discovery over the publication (p. 349) and subscription (p. 353)
built-in topics and can be accessed using the built-in readers for these topics;
see Built-in Topics (p. 157). Discovered com.rti.dds.typecode.TypeCode
(p. 1611) values are not cached by RTI Connext upon receipt and are
therefore not available from the built-in topic (p. 359) data returned
by
com.rti.dds.publication.DataWriter.get matched subscription data (p. 571) or com.rti.dds.subscription.DataReader.get matched publication data (p. 502).
The
space
available
locally
to
deserialize
a
discovered
remote
com.rti.dds.typecode.TypeCode
(p. 1611)
is
specified
by
the
com.rti.dds.domain.DomainParticipant
(p. 654)s
com.rti.dds.infrastructure.DomainParticipantResourceLimitsQosPolicy.type code max serialized length (p. 792) QoS parameter. To support especially
complex type codes, it may be necessary for you to increase the value of this
parameter.
See also:
com.rti.dds.typecode.TypeCode (p. 1611)
Dynamic Data (p. 175)
rtiddsgen (p. 298)
builtin.SubscriptionBuiltinTopicData
builtin.PublicationBuiltinTopicData

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

372

Namespace Documentation

7.15

Package com.rti.dds.util

Utility types that support the DDS API.

Classes
class AbstractPrimitiveSequence
class AbstractSequence
Abstract sequence.

class Enum
A superclass for all type-safe enumerated types.

class LoanableSequence
A sequence capable of storing its elements directly or taking out a loan on
them from an internal middleware store.

interface Sequence
<<interface>> (p. 279) <<generic>> (p. 279) A type-safe, ordered collection of elements. The type of these elements is referred to in this documentation as com.rti.ndds.example.Foo (p. 977).

class Union

7.15.1

Detailed Description

Utility types that support the DDS API.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.16 Package com.rti.ndds

7.16

Package com.rti.ndds

DDS extensions.

Packages
package config
Utility APIs independent of the DDS standard.

package transport
APIs related to RTI Connext pluggable transports.

package example
Programming HowTos: Code templates for common use cases.

7.16.1

Detailed Description

DDS extensions.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

373

374

Namespace Documentation

7.17

Package com.rti.ndds.config

Utility APIs independent of the DDS standard.

Classes
class LibraryVersion t
The version of a single library shipped as part of an RTI Connext distribution.

class LogCategory
Categories of logged messages.

class Logger
<<interface>> (p. 279) The singleton type used to configure RTI Connext
logging.

interface LoggerDevice
<<interface>> (p. 279) Logging device interface. Use for user-defined logging devices.

class LogLevel
Level category assigned to RTI Connext log messages returned to an output
device.

class LogMessage
Log message.

class LogPrintFormat
The format used to output RTI Connext diagnostic information.

class LogVerbosity
The verbosities at which RTI Connext diagnostic information is logged.

class Version
<<interface>> (p. 279) The version of an RTI Connext distribution.

7.17.1

Detailed Description

Utility APIs independent of the DDS standard.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.18 Package com.rti.ndds.example

7.18

375

Package com.rti.ndds.example

Programming HowTos: Code templates for common use cases.

Classes
class Foo
A representative user-defined data type.

class FooDataReader
<<interface>> (p. 279) <<generic>> (p. 279) User data type-specific
data reader.

class FooDataWriter
<<interface>> (p. 279) <<generic>> (p. 279) User data type specific
data writer.

class FooSeq
<<interface>> (p. 279) <<generic>> (p. 279) A type-safe, ordered collection of elements. The type of these elements is referred to in this documentation as com.rti.ndds.example.Foo (p. 977).

class FooTypeSupport
<<interface>> (p. 279) <<generic>> (p. 279) User data type specific interface.

7.18.1

Detailed Description

Programming HowTos: Code templates for common use cases.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

376

Namespace Documentation

7.19

Package com.rti.ndds.transport

APIs related to RTI Connext pluggable transports.

Classes
interface ShmemTransport
Built-in transport ( p. 376) plug-in for inter-process communications using
shared memory.

interface Transport
RTI Connexts abstract pluggable transport ( p. 376) interface.

class TransportSupport
<<interface>> (p. 279) The utility class used to configure RTI Connext
pluggable transports.

interface UDPv4Transport
Built-in transport ( p. 376) plug-in using UDP/IPv4.

interface UDPv6Transport
Built-in transport ( p. 376) plug-in using UDP/IPv6.

7.19.1

Detailed Description

APIs related to RTI Connext pluggable transports.

7.19.2

Overview

RTI Connext has a pluggable transports architecture. The core of RTI Connext
is transport (p. 376) agnostic; it does not make any assumptions about the
actual transports used to send and receive messages. Instead, the RTI Connext
core uses an abstract transport API to interact with the transport (p. 376)
plugins which implement that API.
A transport (p. 376) plugin implements the abstract transport (p. 376) API
and performs the actual work of sending and receiving messages over a physical
transport (p. 376). A collection of builtin plugins (see Built-in Transport
Plugins (p. 222)) is delivered with RTI Connext for commonly used transports.
New transport (p. 376) plugins can easily be created, thus enabling RTI Connext applications to run over transports that may not even be conceived yet.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.19 Package com.rti.ndds.transport

377

This is a powerful capability and that distinguishes RTI Connext from competing middleware approaches.
RTI Connext also provides a set of APIs for installing and configSo
uring transport (p. 376) plugins to be used in an application.
that RTI Connext applications work out of the box, a subset of
the builtin transport (p. 376) plugins is preconfigured by default (see
com.rti.dds.infrastructure.TransportBuiltinQosPolicy (p. 1580)). You
can turn-off some or all of the builtin transport (p. 376) plugins. In addition,
you can configure other transport (p. 376) plugins for use by the application.

7.19.3

Transport Aliases

In order to use a transport (p. 376) plugin instance in an RTI Connext application, it must be registered with a com.rti.dds.domain.DomainParticipant
(p. 654). When you register a transport (p. 376), you specify a sequence of
alias strings to symbolically refer to the transport (p. 376) plugin. The same
alias strings can be used to register more than one transport (p. 376) plugin.
You can register multiple transport (p. 376) plugins with a
An alias symbolicom.rti.dds.domain.DomainParticipant (p. 654).
cally refers to one or more transport (p. 376) plugins registered with the
com.rti.dds.domain.DomainParticipant (p. 654).
Builtin transport
(p. 376) plugin instances can be referred to using preconfigured aliases (see
TRANSPORT BUILTIN (p. 119)).
A transport (p. 376) plugins class name is automatically used as an implicit
alias. It can be used to refer to all the transport (p. 376) plugin instances of
that class.
You can use aliases to refer to transport (p. 376) plugins, in order to specify:
- the transport (p. 376) plugins to use for discovery (see
com.rti.dds.infrastructure.DiscoveryQosPolicy.enabled transports
(p. 650)),
and
for
com.rti.dds.publication.DataWriter
(p. 557)
and
com.rti.dds.subscription.DataReader
(p. 487)
entities
(see
com.rti.dds.infrastructure.TransportSelectionQosPolicy (p. 1600)).
- the multicast addresses on which to receive discovery messages (see
com.rti.dds.infrastructure.DiscoveryQosPolicy.multicast receive addresses (p. 650)), and the multicast addresses and ports on which to receive
user data (see com.rti.dds.subscription.DataReaderQos.multicast
(p. 541)).
the
unicast
ports
used
for
user
data
(see
com.rti.dds.infrastructure.TransportUnicastQosPolicy
(p. 1605))
on
both
com.rti.dds.publication.DataWriter
(p. 557)
and
com.rti.dds.subscription.DataReader (p. 487) entities.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

378

Namespace Documentation

- the transport (p. 376) plugins used to parse an address string in a locator
(Locator Format (p. 58) and NDDS DISCOVERY PEERS (p. 57)).
A
com.rti.dds.domain.DomainParticipant
(p. 654)
(and
contained its entities) start using a transport (p. 376) plugin after the
com.rti.dds.domain.DomainParticipant (p. 654) is enabled (see
com.rti.dds.infrastructure.Entity.enable (p. 935)). An entity will use
all the transport (p. 376) plugins that match the specified transport (p. 376)
QoS policy. All transport (p. 376) plugins are treated uniformly, regardless
of how they were created or registered; there is no notion of some transports
being more special that others.

7.19.4

Transport Lifecycle

Thus,
A transport (p. 376) plugin is owned by whoever created it.
if you create and register a transport (p. 376) plugin with a
com.rti.dds.domain.DomainParticipant (p. 654), you are responsible
for deleting it by calling its destructor. Note that builtin transport (p. 376)
plugins (TRANSPORT BUILTIN (p. 119)) and transport (p. 376) plugins
that are loaded through the PROPERTY (p. 92) QoS policy (see Loading Transport Plugins through Property QoS Policy of Domain
Participant (p. 219)) are automatically managed by RTI Connext.
A user-created transport (p. 376) plugin must not be deleted while it is
still in use by a com.rti.dds.domain.DomainParticipant (p. 654). This
generally means that a user-created transport (p. 376) plugin instance
can only be deleted after the com.rti.dds.domain.DomainParticipant
(p. 654)
with
which
it
was
registered
is
deleted
(see
com.rti.dds.domain.DomainParticipantFactory.delete participant
(p. 749)). Note that a transport (p. 376) plugin cannot be unregistered
from a com.rti.dds.domain.DomainParticipant (p. 654).
A transport (p. 376) plugin instance cannot be registered with more than
one com.rti.dds.domain.DomainParticipant (p. 654) at a time. This requirement is necessary to guarantee the multi-threaded safety of the transport
(p. 376) API.
If the same physical transport (p. 376) resources are to be used with
more than one com.rti.dds.domain.DomainParticipant (p. 654) in the
same address space, the transport (p. 376) plugin should be written in
such a way so that it can be instantiated multiple timesonce for each
com.rti.dds.domain.DomainParticipant (p. 654) in the address space.
Note that it is always possible to write the transport (p. 376) plugin so that
multiple transport (p. 376) plugin instances share the same underlying resources; however the burden (if any) of guaranteeing multi-threaded safety to
access shared resource shifts to the transport (p. 376) plugin developer.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.19 Package com.rti.ndds.transport

7.19.5

379

Transport Class Attributes

A transport (p. 376) plugin instance is associated with two kinds of attributes:
- the class attributes that are decided by the plugin writer; these are invariant
across all instances of the transport (p. 376) plugin class, and
- the instance attributes that can be set on a per instance basis by the transport
(p. 376) plugin user.
Every transport (p. 376) plugin must specify the following class attributes.
transport (p. 376) class id (see com.rti.ndds.transport.Transport.Property t.classid (p. 1573))
Identifies a transport (p. 376) plugin implementation class. It denotes a
unique class to which the transport (p. 376) plugin instance belongs.
The class is used to distinguish between different transport (p. 376)
plugin implementations. Thus, a transport (p. 376) plugin vendor
should ensure that its transport (p. 376) plugin implementation has a
unique class.
Two transport (p. 376) plugin instances report the same class iff they
have compatible implementations. Transport (p. 1569) plugin instances
with mismatching classes are not allowed (by the RTI Connext Core) to
communicate with one another.
Multiple implementations (possibly from different vendors) for a physical
transport (p. 376) mechanism can co-exist in an RTI Connext application, provided they use different transport (p. 376) class IDs.
The class ID can also be used to distinguish between different transport
(p. 376) protocols over the same physical transport (p. 376) network (e.g.,
UDP vs. TCP over the IP routing infrastructure).

transport (p. 376) significant address bit count (see com.rti.ndds.transport.Transport.Property t.add
RTI Connexts addressing is modeled after the IPv6 and uses 128-bit
addresses ( java.net.InetAddress ) to route messages.
A transport (p. 376) plugin is expected to map the transports internal addressing scheme to 128-bit addresses. In general, this mapping is
likely to use only N least significant bits (LSB); these are specified by this
attribute.
>-------------- netmask ----------------<
+---------------------------------------+----------------------------+
|
Network Address
|
Transport Local Address |
+---------------------------------------+----------------------------+
>------------ N ------------<
address_bits_count
Only these bits are used
by the transport plugin.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

380

Namespace Documentation
The remaining bits of an address using the 128-bit address representation will be considered as part of the network address (see Transport
Network Address (p. 381)) and thus ignored by the transport (p. 376)
plugins internal addressing scheme.
For unicast addresses, the transport (p. 376) plugin is expected to ignore the higher (128 - com.rti.ndds.transport.Transport.Property t.address bit count (p. 1573)) bits. RTI Connext is free to manipulate
those bits freely in the addresses passed in/out to the transport (p. 376)
plugin APIs.
Theoretically, the significant address bits count, N is related to the size of
the underlying transport (p. 376) network as follows:
address bits count >= ceil(log2 (total addressable transport unicast interf aces))
The equality holds when the most compact (theoretical) internal address
mapping scheme is used. A practical address mapping scheme may waste
some bits.

7.19.6

Transport Instance Attributes

The per instance attributes to configure the plugin instance are generally passed
in to the plugin constructor. These are defined by the transport (p. 376) plugin
writer, and can be used to:
- customize the behavior of an instance of a transport (p. 376) plugin, including the send and the receiver buffer sizes, the maximum message size, various
transport (p. 376) level classes of service (CoS), and so on.
- specify the resource values, network interfaces to use, various transport
(p. 376) level policies, and so on.
RTI Connext requires that every transport (p. 376) plugin instance must
specify the com.rti.ndds.transport.Transport.Property t.message size max (p. 1574) and com.rti.ndds.transport.Transport.Property t.gather send buffer count max (p. 1574).
It is up to the transport (p. 376) plugin developer to make these available for
configuration to transport (p. 376) plugin user.
Note that it is important that the instance attributes are compatible between
the sending side and the receiving side of communicating applications using
different instances of a transport (p. 376) plugin class. For example (p. 375),
if one side is configured to send messages larger than can be received by the
other side, then communications via the plugin may fail.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

7.19 Package com.rti.ndds.transport

7.19.7

381

Transport Network Address

The address bits not used by the transport (p. 376) plugin for its internal
addressing constitute its network address bits.
In order for RTI Connext to properly route the messages, each unicast interface
in the RTI Connext domain must have a unique address. RTI Connext allows
the user to specify the value of the network address when installing a transport (p. 376) plugin via the com.rti.ndds.transport.TransportSupport.register transport() API.
The network address for a transport (p. 376) plugin should be chosen such that
the resulting fully qualified 128-bit address will be unique in the RTI Connext
domain. Thus, if two instances of a transport (p. 376) plugin are registered
with a com.rti.dds.domain.DomainParticipant (p. 654), they will be at different network addresses in order for their unicast interfaces to have unique fully
qualified 128-bit addresses. It is also possible to create multiple transports with
the same network address, as it can be useful for certain use cases; note that
this will require special entity configuration for most transports to avoid clashes
in resource use (e.g. sockets for UDPv4 transport (p. 376)).

7.19.8

Transport Send Route

By default, a transport (p. 376) plugin is configured to send outgoing messages


destined to addresses in the network address range at which the plugin was
registered.
RTI Connext allows the user to configure the routing of outgoing messages via
the com.rti.ndds.transport.TransportSupport.add send route() API, so that a
transport (p. 376) plugin will be used to send messages only to certain ranges of
destination addresses. The method can be called multiple times for a transport
(p. 376) plugin, with different address ranges.

+--------------------------------------------------------------------+
|
Outgoing Address Range 1
->
Transport Plugin
|
+--------------------------------------------------------------------+
|
:
->
:
|
+--------------------------------------------------------------------+
|
Outgoing Address Range K
->
Transport Plugin
|
+--------------------------------------------------------------------+

The user can set up a routing table to restrict the use of a transport (p. 376)
plugin to send messages to selected addresses ranges.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

382

Namespace Documentation

7.19.9

Transport Receive Route

By default, a transport (p. 376) plugin is configured to receive incoming messages destined to addresses in the network address range at which the plugin
was registered.
RTI Connext allows the user to configure the routing of incoming messages via
the com.rti.ndds.transport.TransportSupport.add receive route() API, so that
a transport (p. 376) plugin will be used to receive messages only on certain
ranges of addresses. The method can be called multiple times for a transport
(p. 376) plugin, with different address ranges.
+--------------------------------------------------------------------+
|
Transport Plugin
<- Incoming Address Range 1 |
+--------------------------------------------------------------------+
|
:
<:
|
+--------------------------------------------------------------------+
|
Transport Plugin
<- Incoming Address Range M |
+--------------------------------------------------------------------+

The user can set up a routing table to restrict the use of a transport (p. 376)
plugin to receive messages from selected ranges. For example (p. 375), the user
may restrict a transport (p. 376) plugin to
- receive messages from a certain multicast address range.
- receive messages only on certain unicast interfaces (when multiple unicast
interfaces are available on the transport (p. 376) plugin).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

Chapter 8

Class Documentation
8.1

AbstractBuiltinTopicDataTypeSupport
Class Reference

Inheritance diagram for AbstractBuiltinTopicDataTypeSupport::

Protected Member Functions


final void initialize delegateI (DataReaderDelegate delegate)

8.1.1

Detailed Description

Abstract superclass for all TypeSupport classes for built-in types.


Author:
rwarren
Version:

Revision
1.17
Date
2009/11/01 18:04:49

384

Class Documentation

8.1.2

Member Function Documentation

8.1.2.1

final void initialize delegateI (DataReaderDelegate


delegate) [protected]

Subclasses should call this method immediately after chaining to the super constructor.
Exceptions:
NullPointerException if the delegate is null

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.2 AbstractPrimitiveSequence Class Reference

8.2

385

AbstractPrimitiveSequence Class Reference

Inheritance diagram for AbstractPrimitiveSequence::

Public Member Functions


final Class getElementType ()
abstract void add (int index, Object element)
Inserts the specified element at the specified position in this sequence.

void loan (Object buffer, int new length)


Loan a contiguous buffer to this sequence.

void unloan ()
Return the loaned buffer in the sequence and set the maximum to 0.

final boolean hasOwnership ()


Return the value of the owned flag.

final
final
final
final

8.2.1

void clear ()
void setSize (int newSize)
int size ()
Object copy from (Object src)

Detailed Description

A base class for sequences whose elements are of primitive types. Such sequences
do not support null values.

8.2.2

Member Function Documentation

8.2.2.1

final Class getElementType ()

Returns:
the primitive type of this sequence, not the wrapper type.
See also:
com.rti.dds.util.Sequence.getElementType() (p. 1430)
Reimplemented from AbstractSequence (p. 391).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

386

Class Documentation

8.2.2.2

abstract void add (int index, Object element) [pure


virtual]

Inserts the specified element at the specified position in this sequence.


See also:
java.util.List.add(int, java.lang.Object)
Reimplemented from AbstractSequence (p. 391).
Implemented in BooleanSeq (p. 422), ByteSeq (p. 446), CharSeq (p. 463),
DoubleSeq (p. 801), FloatSeq (p. 963), IntSeq (p. 1069), LongSeq
(p. 1186), and ShortSeq (p. 1447).
8.2.2.3

void loan (Object buffer, int new length)

Loan a contiguous buffer to this sequence.


This operation changes the owned flag of the sequence to
com.rti.dds.infrastructure.false and also sets the underlying buffer used
by the sequence. See the Users Manual for more information about sequences
and memory ownership.
Use this method if you want to manage the memory used by the sequence
yourself. You must provide an array of elements and integers indicating how
many elements are allocated in that array (i.e. the maximum) and how
many elements are valid (i.e. the length). The sequence will subsequently
use the memory you provide and will not permit it to be freed by a call to
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.setMaximum.
By default, a sequence you create owns its memory unless you explicitly
loan memory of your own to it. In a very few cases, RTI Connext will
return a sequence to you that has a loan; those cases are documented as
such. For example, if you call com.rti.ndds.example.FooDataReader.read
(p. 981) or com.rti.ndds.example.FooDataReader.take (p. 983) and pass
in sequences with no loan and no memory allocated, RTI Connext
will loan memory to your sequences which must be unloaned with
com.rti.ndds.example.FooDataReader.return loan (p. 1008). See the
documentation of those methods for more information.
Precondition:
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.getMaximum
== 0; i.e. the sequence has no memory allocated to it.
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.AbstractPrimitiveSequence.hasOwnership
== com.rti.dds.infrastructure.true; i.e. the sequence does not already have
an outstanding loan
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.2 AbstractPrimitiveSequence Class Reference

387

Postcondition:
The sequence will store its elements in the buffer provided.
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.AbstractPrimitiveSequence.hasOwnership
== com.rti.dds.infrastructure.false
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.size()
==
new length
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.getMaximum
== new max
Parameters:
buffer The new buffer that the sequence will use. Must point to enough
memory to hold new max elements of type Foo. It may be NULL if
new max == 0.
new length The desired new length for the sequence.
Returns:
com.rti.dds.infrastructure.true if buffer is successfully loaned to this sequence or com.rti.dds.infrastructure.false otherwise. Failure only occurs
due to failing to meet the pre-conditions. Upon failure the sequence remains unmodified.
See also:
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.unloan,
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.loan discontiguous

8.2.2.4

void unloan ()

Return the loaned buffer in the sequence and set the maximum to 0.
This method affects only the state of this sequence; it does not change the
contents of the buffer in any way.
Only the user who originally loaned a buffer should return that loan, as the
user may have dependencies on that memory known only to them. Unloaning
someone elses buffer may cause unspecified problems. For example, suppose a
sequence is loaning memory from a custom memory pool. A user of the sequence
likely has no way to release the memory back into the pool, so unloaning the
sequence buffer would result in a resource leak. If the user were to then re-loan
a different buffer, the original creator of the sequence would have no way to
discover, when freeing the sequence, that the loan no longer referred to its own
memory and would thus not free the users memory properly, exacerbating the
situation and leading to undefined behavior.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

388

Class Documentation

Precondition:
owned == com.rti.dds.infrastructure.false
Postcondition:
owned == com.rti.dds.infrastructure.true
maximum == 0
Returns:
com.rti.dds.infrastructure.true if the preconditions were met. Otherwise
com.rti.dds.infrastructure.false. The function only fails if the pre-conditions
are not met, in which case it leaves the sequence unmodified.
See also:
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.AbstractPrimitiveSequence.loan(Object,
int),
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.loan discontiguous, com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.setMaximum

8.2.2.5

final boolean hasOwnership ()

Return the value of the owned flag.


Returns:
com.rti.dds.infrastructure.true if sequence owns the underlying buffer, or
com.rti.dds.infrastructure.false if it has an outstanding loan.

8.2.2.6

final void clear ()

Set the logical size of this sequence to zero. This method does not generate any
garbage for collection.
See also:
java.util.Collection.clear()

8.2.2.7

final void setSize (int newSize)

Set the logical size of this sequence to the given value.


Parameters:
newSize the new logical size of this sequence; it must be less than or equal
to the maximum allocated length of the underlying array.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.2 AbstractPrimitiveSequence Class Reference

389

Exceptions:
IndexOutOfBoundsException if the new size is less than zero or greater
than the allocated length of the array.
See also:
AbstractSequence.getMaximum() (p. 1429)

8.2.2.8

final int size ()

The logical size of this sequence.


8.2.2.9

final Object copy from (Object src)

Implementation of the Copyable interface.


Parameters:
src An AbstractPrimitiveSequence (p. 385) which contains the data to
be copied.
Returns:
this
Exceptions:
NullPointerException If src is null.
ClassCastException If src is not a Sequence (p. 1428) OR if one of the
objects contained in the Sequence (p. 1428) is not of the expected
type.
Implements Copyable (p. 480).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

390

Class Documentation

8.3

AbstractSequence Class Reference

Abstract sequence.
Inheritance diagram for AbstractSequence::

Public Member Functions


void setMaximum (int new max)
Resize this sequence to a new desired maximum.

Class getElementType ()
void add (int index, Object element)
Inserts the specified element at the specified position in this sequence.

boolean add (Object element)


Appends the specified element to the end of this sequence.

final Object remove (int index)


Remove the element at the given index by shifting all subsequent elements
left by one.

8.3.1

Detailed Description

Abstract sequence.

8.3.2

Member Function Documentation

8.3.2.1

void setMaximum (int new max)

Resize this sequence to a new desired maximum.


This operation does nothing if the new desired maximum matches the current
maximum.
Note: If you add an element with add() (p. 391), the sequences size is increased implicitly.
Postcondition:
length == MINIMUM(original length, new max)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.3 AbstractSequence Class Reference

391

Parameters:
new max Must be >= 0.
Returns:
com.rti.dds.infrastructure.true on success, com.rti.dds.infrastructure.false if
the preconditions are not met. In that case the sequence is not modified.
Implements Sequence (p. 1429).
Reimplemented in LoanableSequence (p. 1148).

8.3.2.2

Class getElementType ()

Returns:
a common supertype for all elements in this sequence.
Implements Sequence (p. 1430).
Reimplemented in AbstractPrimitiveSequence (p. 385).

8.3.2.3

void add (int index, Object element)

Inserts the specified element at the specified position in this sequence.


See also:
java.util.List.add(int, java.lang.Object)
Reimplemented in BooleanSeq (p. 422), ByteSeq (p. 446), CharSeq
(p. 463), DoubleSeq (p. 801), FloatSeq (p. 963), IntSeq (p. 1069), LongSeq
(p. 1186), ShortSeq (p. 1447), and AbstractPrimitiveSequence (p. 386).

8.3.2.4

boolean add (Object element)

Appends the specified element to the end of this sequence.


See also:
java.util.List.add(java.lang.Object)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

392

Class Documentation

8.3.2.5

final Object remove (int index)

Remove the element at the given index by shifting all subsequent elements left
by one.
See also:
java.util.List.remove(int)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.4 AcknowledgmentInfo Class Reference

8.4

393

AcknowledgmentInfo Class Reference

Information about an application-level acknowledged sample.


Inherits Status.

8.4.1

Detailed Description

Information about an application-level acknowledged sample.


When acknowledging a sample, the reader provides the writer with information
about the sample being acknowledged. The AcknowledgmentInfo (p. 393)
structure provides the identity and cookie of the sample being acknowledged,
as well as user data payload provided by the reader.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

394

Class Documentation

8.5

AckResponseData t Class Reference

Data payload of an application-level acknowledgment.


Inherits Struct.

Public Attributes
final ByteSeq value
a sequence of octets

8.5.1

Detailed Description

Data payload of an application-level acknowledgment.

8.5.2

Member Data Documentation

8.5.2.1

final ByteSeq value

a sequence of octets
[default] empty (zero-length)

[range] Octet sequence of length [0, com.rti.dds.infrastructure.DataReaderResourceLimitsQosPo


app ack response length (p. 554)],

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.6 AllocationSettings t Class Reference

8.6

395

AllocationSettings t Class Reference

Resource allocation settings.


Inherits Struct.

Public Member Functions


AllocationSettings t (int initial count, int max count, int incremental count)
Constructor with the given initial, maximum and incremental values.

Public Attributes
int initial count
The initial count of resources.

int max count


The maximum count of resources.

int incremental count


The incremental count of resources.

8.6.1

Detailed Description

Resource allocation settings.


QoS:
com.rti.dds.infrastructure.DomainParticipantResourceLimitsQosPolicy
(p. 778)

8.6.2

Constructor & Destructor Documentation

8.6.2.1

AllocationSettings t (int initial count, int max count, int


incremental count)

Constructor with the given initial, maximum and incremental values.


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

396

Class Documentation

8.6.3

Member Data Documentation

8.6.3.1

int initial count

The initial count of resources.


The initial resources to be allocated.
[default] It depends on the case.
[range] [0, 1 million], < max count, (or = max count only if increment count
== 0)
8.6.3.2

int max count

The maximum count of resources.


The maximum resources to be allocated.
[default] Depends on the case.
[range] [1, 1 million] or com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106), > initial count (or = initial count only if increment count == 0)
8.6.3.3

int incremental count

The incremental count of resources.


The resource to be allocated when more resources are needed.
[default] Depends on the case.
[range] -1 (Double the amount of extra memory allocated each time memory
is needed) or [1,1 million] (or = 0 only if initial count == max count)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.7 AsynchronousPublisherQosPolicy Class Reference

8.7

AsynchronousPublisherQosPolicy
Reference

397

Class

Configures the mechanism that sends user data in an external middleware


thread.
Inheritance diagram for AsynchronousPublisherQosPolicy::

Public Attributes
boolean disable asynchronous write
Disable asynchronous publishing.

final ThreadSettings t thread


Settings of the publishing thread.

boolean disable asynchronous batch


Disable asynchronous batch flushing.

final ThreadSettings t asynchronous batch thread


Settings of the batch flushing thread.

8.7.1

Detailed Description

Configures the mechanism that sends user data in an external middleware


thread.
Specifies the asynchronous publishing and asynchronous batch flushing settings
of the com.rti.dds.publication.Publisher (p. 1262) instances.
The QoS policy specifies whether asynchronous publishing and asynchronous
batch flushing are enabled for the com.rti.dds.publication.DataWriter
(p. 557) entities belonging to this com.rti.dds.publication.Publisher
(p. 1262). If so, the publisher will spawn up to two threads, one for asynchronous
publishing and one for asynchronous batch flushing.
See also:
com.rti.dds.infrastructure.BatchQosPolicy (p. 412).
com.rti.dds.infrastructure.PublishModeQosPolicy (p. 1295).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

398

Class Documentation

Entity:
com.rti.dds.publication.Publisher (p. 1262)
Properties:
RxO (p. 101) = N/A
Changeable (p. 102) = NO (p. 102)

8.7.2

Usage

You can use this QoS policy to reduce the amount of time your application
thread spends sending data.
You can also use it, along with com.rti.dds.infrastructure.PublishModeQosPolicy
(p. 1295) and a com.rti.dds.publication.FlowController (p. 964), to send
large data reliably. Large in this context means that the data that cannot
be sent as a single packet by a network transport. For example, to send data
larger than 63K reliably using UDP/IP, you must configure RTI Connext to
fragment the data and send it asynchronously.
The
asynchronous
publisher
thread
is
shared
by
all
com.rti.dds.infrastructure.PublishModeQosPolicyKind.PublishModeQosPolicyKind.ASYNCHRONOUS
PUBLISH MODE QOS
com.rti.dds.publication.DataWriter
(p. 557)
instances that belong to this publisher and handles their data transmission
chores.
The
asynchronous
batch
flushing
thread
is
shared
by
all
com.rti.dds.publication.DataWriter (p. 557) instances with batching
enabled that belong to this publisher.
This QoS policy also allows you to adjust the settings of the asynchronous publishing and the asynchronous batch flushing threads. To use different threads for
two different com.rti.dds.publication.DataWriter (p. 557) entities, the instances must belong to different com.rti.dds.publication.Publisher (p. 1262)
instances.
A com.rti.dds.publication.Publisher (p. 1262) must have asynchronous
publishing enabled for its com.rti.dds.publication.DataWriter (p. 557) instances to write asynchronously.
A com.rti.dds.publication.Publisher (p. 1262) must have asynchronous batch flushing enabled in order to flush the batches of its
com.rti.dds.publication.DataWriter (p. 557) instances asynchronously.
However, no asynchronous batch flushing thread will be started until the
first com.rti.dds.publication.DataWriter (p. 557) instance with batching
enabled is created from this com.rti.dds.publication.Publisher (p. 1262).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.7 AsynchronousPublisherQosPolicy Class Reference

8.7.3

Member Data Documentation

8.7.3.1

boolean disable asynchronous write

399

Disable asynchronous publishing.


If
set
to
com.rti.dds.infrastructure.true,
any
created
with
com.rti.dds.publication.DataWriter
(p. 557)
com.rti.dds.infrastructure.PublishModeQosPolicyKind.PublishModeQosPolicyKind.ASYNCHRONOUS PUBLISH MODE QOS will fail with com.rti.dds.infrastructure.RETCODE INCONSISTENT POLICY (p. 1359).
[default] com.rti.dds.infrastructure.false

8.7.3.2

final ThreadSettings t thread

Settings of the publishing thread.


There
is
only
one
asynchronous
publishing
com.rti.dds.publication.Publisher (p. 1262).

thread

per

[default] priority below normal.


The actual value depends on your architecture:
For Windows: -2
For Solaris: OS default priority
For Linux: OS default priority
For LynxOS: 13
For Integrity: 80
For VxWorks: 110
For all others: OS default priority.
[default] The actual value depends on your architecture:
For Windows: OS default stack size
For Solaris: OS default stack size
For Linux: OS default stack size
For LynxOS: 4161024
For Integrity: 4201024
For VxWorks: 4161024
For all others: OS default stack size.
[default] mask = com.rti.dds.infrastructure.ThreadSettingsKind.THREAD Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

400

Class Documentation

SETTINGS KIND MASK DEFAULT (p. 116)

8.7.3.3

boolean disable asynchronous batch

Disable asynchronous batch flushing.


If
set
to
com.rti.dds.infrastructure.true,
any
com.rti.dds.publication.DataWriter (p. 557) created with batching enabled will fail with com.rti.dds.infrastructure.RETCODE INCONSISTENT POLICY (p. 1359).
If
com.rti.dds.infrastructure.BatchQosPolicy.max flush delay
(p. 414) is different than com.rti.dds.infrastructure.Duration t.INFINITE,
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy.disable asynchronous batch (p. 400) must be set com.rti.dds.infrastructure.false.
[default] com.rti.dds.infrastructure.false

8.7.3.4

final ThreadSettings t asynchronous batch thread

Settings of the batch flushing thread.


There
is
only one asynchronous
batch
com.rti.dds.publication.Publisher (p. 1262).

flushing

thread

per

[default] priority below normal.


The actual value depends on your architecture:
For Windows: -2
For Solaris: OS default priority
For Linux: OS default priority
For LynxOS: 13
For Integrity: 80
For VxWorks: 110
For all others: OS default priority.
[default] The actual value depends on your architecture:
For Windows: OS default stack size
For Solaris: OS default stack size
For Linux: OS default stack size
For LynxOS: 4161024
For Integrity: 4201024
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.7 AsynchronousPublisherQosPolicy Class Reference

401

For VxWorks: 4161024


For all others: OS default stack size.
[default] mask = com.rti.dds.infrastructure.ThreadSettingsKind.THREAD SETTINGS KIND MASK DEFAULT (p. 116)

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

402

Class Documentation

8.8

AvailabilityQosPolicy Class Reference

Configures the availability of data.


Inheritance diagram for AvailabilityQosPolicy::

Public Attributes
boolean enable required subscriptions
Enables
support
for
required
subscriptions
com.rti.dds.publication.DataWriter ( p. 557).

in

final Duration t max data availability waiting time


Defines how much time to wait before delivering a sample to the application
without having received some of the previous samples.

final Duration t max endpoint availability waiting time


Defines how much time to wait to discover DataWriters providing samples
for the same data source (virtual GUID).

final EndpointGroupSeq required matched endpoint groups


A sequence of endpoint groups.

8.8.1

Detailed Description

Configures the availability of data.


Entity:
com.rti.dds.subscription.DataReader
com.rti.dds.publication.DataWriter (p. 557)

(p. 487),

Properties:
RxO (p. 101) = NO
Changeable
(p. 102)
=
YES
(p. 102)
(only
on
a
com.rti.dds.publication.DataWriter (p. 557) except for the member
com.rti.dds.infrastructure.AvailabilityQosPolicy.enable required subscriptions (p. 404))
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.8 AvailabilityQosPolicy Class Reference

8.8.2

403

Usage

This QoS policy is used in the context of two features:


Collaborative DataWriters
Required Subscriptions
Collaborative DataWriters
The Collaborative DataWriters feature allows having multiple DataWriters publishing samples from a common logical data source. The DataReaders will
combine the samples coming from the DataWriters in order to reconstruct the
correct order at the source.
This QoS policy allows you to configure the ordering and combination process
in the DataReader and can be used to support two different use cases:

Ordered
delivery
of
samples
with
RTI
Persistence
Service:
When a late-joining DataReader configured with
com.rti.dds.infrastructure.DurabilityQosPolicy (p. 802) set to
com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.PERSISTENT DURABILITY QOS or com.rti.dds.infrastructure.DurabilityQosPolicyKind.DurabilityQosPolicyKind.TRANSI
DURABILITY QOS joins a DDS domain (p. 328), it will start receiving
historical samples from multiple DataWriters. For example, if the original
DataWriter is still alive, the newly created DataReader will receive
samples from the original DataWriter and one or more RTI Persistence
Service DataWriters (PRSTDataWriters). This policy can be used to
configure the sample ordering process on the DataReader.

Ordered delivery of samples with Group Ordered Access:


This policy can also be used to configure the sample ordering process when the Subscriber is configured with
com.rti.dds.infrastructure.PresentationQosPolicy (p. 1221) access scope set to com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPolicyAcce
PRESENTATION QOS. In this case, the Subscriber must deliver in order the samples published by a group of DataWriters
that belong to the same Publisher and have access scope set to
com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPolicyAccessScopeKind.GR
PRESENTATION QOS.
Each sample published in a DDS domain (p. 328) for a given logical data source
is uniquely identified by a pair (virtual GUID, virtual sequence number). Samples from the same data source (same virtual GUID) can be published by different DataWriters. A DataReader will deliver a sample (VGUIDn, VSNm) to
the application if one of the following conditions is satisfied:
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

404

Class Documentation
(VGUIDn, VSNm-1) has already been delivered to the application.
All the known DataWriters publishing VGUIDn have announced that they
do not have (VGUIDn, VSNm-1).
None of the known DataWriters publishing GUIDn have announced potential availability of (VGUIDn, VSNm-1) and both timeouts in this QoS
policy have expired.

A DataWriter announces potential availability of samples by using virtual heartbeats (HBs).

When com.rti.dds.infrastructure.PresentationQosPolicy.access scope


(p. 1225) is set to com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPoli
PRESENTATION QOS or com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.Presentati
PRESENTATION QOS, the virtual HB contains information about the samples
contained in the com.rti.dds.publication.DataWriter (p. 557) history.

When com.rti.dds.infrastructure.PresentationQosPolicy.access scope


(p. 1225) is set to com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPoli
PRESENTATION QOS, the virtual HB contains information about all
DataWriters in the com.rti.dds.publication.Publisher (p. 1262).
The
frequency
at
which
virtual
HBs
are
sent
is
controlled
by
the
protocol
parameters
com.rti.dds.infrastructure.RtpsReliableWriterProtocol t.virtual heartbeat period (p. 1377) and com.rti.dds.infrastructure.RtpsReliableWriterProtocol t.samples per virtual heartbeat (p. 1378).
Required Subscriptions
In the context of Required Subscriptions, this QoS policy can
be used to configure a set of Required Subscriptions on a
com.rti.dds.publication.DataWriter (p. 557).
Required subscriptions are preconfigured, named subscriptions that may leave
and subsequently rejoin the network from time to time, at the same or different
physical locations. Any time a required subscription (p. 353) is disconnected,
any samples that would have been delivered to it are stored for delivery if and
when the subscription (p. 353) rejoins the network.

8.8.3

Member Data Documentation

8.8.3.1

boolean enable required subscriptions

Enables
support
for
required
subscriptions
com.rti.dds.publication.DataWriter (p. 557).

in

[default] com.rti.dds.infrastructure.false
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.8 AvailabilityQosPolicy Class Reference


8.8.3.2

405

final Duration t max data availability waiting time

Defines how much time to wait before delivering a sample to the application
without having received some of the previous samples.
Collaborative DataWriters
A sample identified by (VGUIDn, VSNm) will be delivered to the application if
this timeout expires for the sample and the following two conditions are satisfied:
None of the known DataWriters publishing VGUIDn have announced potential availability of (VGUIDn, VSNm-1).
The DataWriters for all the endpoint groups specified in required matched endpoint groups (p. 406) have been discovered or max endpoint availability waiting time (p. 405) has expired.
Required Subscriptions
This field is not applicable to Required Subscriptions.
[default]
com.rti.dds.infrastructure.Duration t.AUTO
(com.rti.dds.infrastructure.Duration t.INFINITE
for
com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPolicyAccessScopeKind.GROUP
PRESENTATION QOS. Otherwise, 0 seconds)
[range]
[0,
com.rti.dds.infrastructure.Duration t.INFINITE],
com.rti.dds.infrastructure.Duration t.AUTO
8.8.3.3

final Duration t max endpoint availability waiting time

Defines how much time to wait to discover DataWriters providing samples for
the same data source (virtual GUID).
Collaborative DataWriters
The set of endpoint groups that are required to provide samples for a data source
can be configured using required matched endpoint groups (p. 406).
A non-consecutive sample identified by (VGUIDn, VSNm) cannot be delivered
to the application unless DataWriters for all the endpoint groups in required matched endpoint groups (p. 406) are discovered or this timeout expires.
Required Subscriptions
This field is not applicable to Required Subscriptions.
[default]
com.rti.dds.infrastructure.Duration t.AUTO
(com.rti.dds.infrastructure.Duration t.INFINITE
for
com.rti.dds.infrastructure.PresentationQosPolicyAccessScopeKind.PresentationQosPolicyAccessScopeKind.GROUP
PRESENTATION QOS. Otherwise, 0 seconds)
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

406

Class Documentation

[range]
[0,
com.rti.dds.infrastructure.Duration t.INFINITE],
com.rti.dds.infrastructure.Duration t.AUTO
8.8.3.4

final EndpointGroupSeq required matched endpoint groups

A sequence of endpoint groups.


Collaborative DataWriters
In the context of Collaborative DataWriters, it specifies the set of endpoint
groups that are expected to provide samples for the same data source.
The quorum count in a group represents the number of DataWriters that must
be discovered for that group before the DataReader is allowed to provide non
consecutive samples to the application.
A DataWriter becomes a member of an endpoint group by configuring the
role name in com.rti.dds.publication.DataWriterQos.publication name
(p. 615).
Required Subscriptions
In the context of Required Subscriptions, it specifies the set of Required Subscriptions on a com.rti.dds.publication.DataWriter (p. 557).
Each Required Subscription is specified by a name and a quorum count.
The quorum count represents the number of DataReaders that have to acknowledge the sample before it can be considered fully acknowledged for that Required
Subscription.
A DataReader is associated with a Required Subscription by configuring the
role name in com.rti.dds.subscription.DataReaderQos.subscription name (p. 541).
[default] Empty sequence

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.9 BAD PARAM Class Reference

8.9

407

BAD PARAM Class Reference

The exception BadKind (p. 409) is thrown when an inappropriate operation is


invoked on a TypeCode object.
Inheritance diagram for BAD PARAM::

8.9.1

Detailed Description

The exception BadKind (p. 409) is thrown when an inappropriate operation is


invoked on a TypeCode object.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

408

Class Documentation

8.10

BAD TYPECODE Class Reference

The exception BadKind (p. 409) is thrown when an inappropriate operation is


invoked on a TypeCode object.
Inheritance diagram for BAD TYPECODE::

8.10.1

Detailed Description

The exception BadKind (p. 409) is thrown when an inappropriate operation is


invoked on a TypeCode object.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.11 BadKind Class Reference

8.11

409

BadKind Class Reference

The exception BadKind (p. 409) is thrown when an inappropriate operation is


invoked on a TypeCode object.
Inheritance diagram for BadKind::

8.11.1

Detailed Description

The exception BadKind (p. 409) is thrown when an inappropriate operation is


invoked on a TypeCode object.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

410

Class Documentation

8.12

BadMemberId Class Reference

The specified com.rti.dds.typecode.TypeCode (p. 1611) member ID is invalid.


Inheritance diagram for BadMemberId::

8.12.1

Detailed Description

The specified com.rti.dds.typecode.TypeCode (p. 1611) member ID is invalid.


This failure can occur, for example, when querying a field by ID when no such
ID is defined in the type.
See also:
com.rti.dds.infrastructure.ExceptionCode t.BadMemberName

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.13 BadMemberName Class Reference

8.13

411

BadMemberName Class Reference

The specified com.rti.dds.typecode.TypeCode (p. 1611) member name is


invalid.
Inheritance diagram for BadMemberName::

8.13.1

Detailed Description

The specified com.rti.dds.typecode.TypeCode (p. 1611) member name is


invalid.
This failure can occur, for example, when querying a field by name when no
such name is defined in the type.
See also:
com.rti.dds.infrastructure.ExceptionCode t.BadMemberId

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

412

Class Documentation

8.14

BatchQosPolicy Class Reference

Used to configure batching of multiple samples into a single network packet in


order to increase throughput for small samples.
Inheritance diagram for BatchQosPolicy::

Public Attributes
boolean enable
Specifies whether or not batching is enabled.

int max data bytes


The maximum cumulative length of all serialized samples in a batch.

int max samples


The maximum number of samples in a batch.

final Duration t max flush delay


The maximum flush delay.

final Duration t source timestamp resolution


Batch source timestamp resolution.

boolean thread safe write


Determines whether or not the write operation is thread safe.

8.14.1

Detailed Description

Used to configure batching of multiple samples into a single network packet in


order to increase throughput for small samples.
This QoS policy configures the ability of the middleware to collect multiple user
data samples to be sent in a single network packet, to take advantage of the
efficiency of sending larger packets and thus increase effective throughput.
This QoS policy can be used to dramatically increase effective throughput for
small data samples. Usually, throughput for small samples (size < 2048 bytes) is
limited by CPU capacity and not by network bandwidth. Batching many smaller
samples to be sent in a single large packet will increase network utilization, and
thus throughput, in terms of samples per second.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.14 BatchQosPolicy Class Reference

413

Entity:
com.rti.dds.publication.DataWriter (p. 557)
Properties:
RxO (p. 101) = NO
Changeable (p. 102) = UNTIL ENABLE (p. 102)

8.14.2

Member Data Documentation

8.14.2.1

boolean enable

Specifies whether or not batching is enabled.


[default] com.rti.dds.infrastructure.false

8.14.2.2

int max data bytes

The maximum cumulative length of all serialized samples in a batch.


A batch is flushed automatically when this maximum is reached.
max data bytes does not include the meta data associated with the batch samples. Each sample has at least 8 bytes of meta data containing information such
as the timestamp and sequence number. The meta data can be as large as 52
bytes for keyed topics and 20 bytes for unkeyed topics.
Note: Batches must contain whole samples. If a new batch is started and its
initial sample causes the serialized size to exceed max data bytes, RTI Connext
will send the sample in a single batch.
[default] 1024
[range] [1,com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)]

8.14.3

Consistency

The
setting
of
com.rti.dds.infrastructure.BatchQosPolicy.max data bytes
(p. 413)
must
be
consistent
with
com.rti.dds.infrastructure.BatchQosPolicy.max samples
(p. 414).
For these two values to be consistent, they cannot be both
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

414

Class Documentation

8.14.3.1

int max samples

The maximum number of samples in a batch.


A batch is flushed automatically when this maximum is reached.
[default] com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
[range] [1,com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)]

8.14.4

Consistency

The
setting
of
com.rti.dds.infrastructure.BatchQosPolicy.max samples
(p. 414)
must
be
consistent
with
com.rti.dds.infrastructure.BatchQosPolicy.max data bytes
(p. 413).
For these two values to be consistent, they cannot be both
com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106).

8.14.4.1

final Duration t max flush delay

The maximum flush delay.


A batch is flushed automatically after the delay specified by this parameter.
The delay is measured from the time the first sample in the batch is written by
the application.
[default] com.rti.dds.infrastructure.Duration t.INFINITE
[range] [0,com.rti.dds.infrastructure.Duration t.INFINITE]

8.14.5

Consistency

The
setting
of
com.rti.dds.infrastructure.BatchQosPolicy.max flush delay
(p. 414)
must
be
consistent
with
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy.disable asynchronous batch (p. 400) and com.rti.dds.infrastructure.BatchQosPolicy.thread safe write
(p. 415).
If
the
delay
is
different
than
com.rti.dds.infrastructure.Duration t.INFINITE,
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy.disable asynchronous batch (p. 400) must be set to com.rti.dds.infrastructure.false
and
com.rti.dds.infrastructure.BatchQosPolicy.thread safe write
(p. 415) must be set to com.rti.dds.infrastructure.true.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.14 BatchQosPolicy Class Reference


8.14.5.1

415

final Duration t source timestamp resolution

Batch source timestamp resolution.


The value of this field determines how the source timestamp is associated with
the samples in a batch.
A sample written with timestamp t inherits the source timestamp t2 associated with the previous sample unless (t - t2) > source timestamp resolution.
If source timestamp resolution is set to com.rti.dds.infrastructure.Duration t.INFINITE, every sample in the batch will share the source timestamp associated with the first sample.
If source timestamp resolution is set to zero, every sample in the batch will
contain its own source timestamp corresponding to the moment when the sample
was written.
The performance of the batching process is better when source timestamp resolution is set to com.rti.dds.infrastructure.Duration t.INFINITE.
[default] com.rti.dds.infrastructure.Duration t.INFINITE
[range] [0,com.rti.dds.infrastructure.Duration t.INFINITE]

8.14.6

Consistency

The setting of com.rti.dds.infrastructure.BatchQosPolicy.source timestamp resolution


(p. 415)
must
be
consistent
with
com.rti.dds.infrastructure.BatchQosPolicy.thread safe write
(p. 415).
If com.rti.dds.infrastructure.BatchQosPolicy.thread safe write
(p. 415)
is
set
to
com.rti.dds.infrastructure.false,
com.rti.dds.infrastructure.BatchQosPolicy.source timestamp resolution (p. 415) must be set to com.rti.dds.infrastructure.Duration t.INFINITE.

8.14.6.1

boolean thread safe write

Determines whether or not the write operation is thread safe.


If this parameter is set to com.rti.dds.infrastructure.true, multiple threads can
call write on the com.rti.dds.publication.DataWriter (p. 557) concurrently.
[default] com.rti.dds.infrastructure.true
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

416

Class Documentation

8.14.7

Consistency

The setting of com.rti.dds.infrastructure.BatchQosPolicy.thread safe write


(p. 415)
must
be
consistent
with
com.rti.dds.infrastructure.BatchQosPolicy.source timestamp resolution (p. 415). If com.rti.dds.infrastructure.BatchQosPolicy.thread (p. 415)
is
set
to
com.rti.dds.infrastructure.false,
safe write
com.rti.dds.infrastructure.BatchQosPolicy.source timestamp resolution (p. 415) must be set to com.rti.dds.infrastructure.Duration t.INFINITE.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.15 BooleanSeq Class Reference

8.15

417

BooleanSeq Class Reference

Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <


boolean >.
Inheritance diagram for BooleanSeq::

Public Member Functions


BooleanSeq ()
Constructs an empty sequence of booleans with an initial maximum of zero.

BooleanSeq (int initialMaximum)


Constructs an empty sequence of booleans with the given initial maximum.

BooleanSeq (boolean[ ] booleans)


Constructs a new sequence containing the given booleans.

boolean addAllBoolean (boolean[ ] elements, int offset, int length)


Append length elements from the given array to this sequence, starting at
index offset in that array.

boolean addAllBoolean (boolean[ ] elements)


void addBoolean (boolean element)
Append the element to the end of the sequence.

void addBoolean (int index, boolean element)


Shift all elements in the sequence starting from the given index and add the
element to the given index.

boolean getBoolean (int index)


Returns the boolean at the given index.

boolean setBoolean (int index, boolean element)


Set the new boolean at the given index and return the old boolean.

void setBoolean (int dstIndex, boolean[ ] elements, int srcIndex, int


length)
Copy a portion of the given array into this sequence.

boolean[ ] toArrayBoolean (boolean[ ] array)


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

418

Class Documentation
Return an array containing copy of the contents of this sequence.

int getMaximum ()
Get the current maximum number of elements that can be stored in this
sequence.

Object get (int index)


A wrapper for getBoolean(int) ( p. 419) that returns a java.lang.Boolean.

Object set (int index, Object element)


A wrapper for setBoolean() ( p. 420).

void add (int index, Object element)


A wrapper for addBoolean(int, int).

8.15.1

Detailed Description

Instantiates com.rti.dds.infrastructure.com.rti.dds.util.Sequence <


boolean >.
Instantiates:
<<generic>> ( p. 279) com.rti.dds.infrastructure.com.rti.dds.util.Sequence
See also:
boolean
com.rti.dds.infrastructure.com.rti.dds.util.Sequence

8.15.2

Constructor & Destructor Documentation

8.15.2.1

BooleanSeq ()

Constructs an empty sequence of booleans with an initial maximum of zero.


8.15.2.2

BooleanSeq (int initialMaximum)

Constructs an empty sequence of booleans with the given initial maximum.


8.15.2.3

BooleanSeq (boolean[ ] booleans)

Constructs a new sequence containing the given booleans.


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.15 BooleanSeq Class Reference

419

Parameters:
booleans the initial contents of this sequence
Exceptions:
NullPointerException if the input array is null

8.15.3

Member Function Documentation

8.15.3.1

boolean addAllBoolean (boolean[ ] elements, int offset,


int length)

Append length elements from the given array to this sequence, starting at index
offset in that array.
Exceptions:
NullPointerException if the given array is null.

8.15.3.2

boolean addAllBoolean (boolean[ ] elements)

Exceptions:
NullPointerException if the given array is null

8.15.3.3

void addBoolean (boolean element)

Append the element to the end of the sequence.


8.15.3.4

void addBoolean (int index, boolean element)

Shift all elements in the sequence starting from the given index and add the
element to the given index.
8.15.3.5

boolean getBoolean (int index)

Returns the boolean at the given index.


Exceptions:
IndexOutOfBoundsException if the index is out of bounds.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

420

Class Documentation

8.15.3.6

boolean setBoolean (int index, boolean element)

Set the new boolean at the given index and return the old boolean.
Exceptions:
IndexOutOfBoundsException if the index is out of bounds.

8.15.3.7

void setBoolean (int dstIndex, boolean[ ] elements, int


srcIndex, int length)

Copy a portion of the given array into this sequence.


Parameters:
dstIndex the index at which to start copying into this sequence.
elements an array of primitive elements.
srcIndex the index at which to start copying from the given array.
length the number of elements to copy.
Exceptions:
IndexOutOfBoundsException if copying would cause access of data
outside array bounds.

8.15.3.8

boolean [ ] toArrayBoolean (boolean[ ] array)

Return an array containing copy of the contents of this sequence.


Parameters:
array The array into which this sequence should be copied. It may be
null. If it is, or if array length is too small, the array will be ignored,
and a new array of the necessary length will be created and copied
into instead.
Returns:
A non-null array containing a copy of the contents of this sequence.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.15 BooleanSeq Class Reference


8.15.3.9

421

int getMaximum ()

Get the current maximum number of elements that can be stored in this sequence.
The maximum of the sequence represents the maximum number of elements that
the underlying buffer can hold. It does not represent the current number of
elements.
The maximum is a non-negative number. It is initialized when the sequence is
first created.
The maximum can be changed implicitly by adding an element
or explicitly by calling
to the sequence with add() (p. 422),
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.setMaximum.
Returns:
the current maximum of the sequence.
See also:
com.rti.dds.infrastructure.com.rti.dds.util.Sequence.Sequence.size()
Implements Sequence (p. 1429).
8.15.3.10

Object get (int index) [virtual]

A wrapper for getBoolean(int) (p. 419) that returns a java.lang.Boolean.


See also:
java.util.List.get(int)
Implements AbstractPrimitiveSequence (p. 385).
8.15.3.11

Object set (int index, Object element) [virtual]

A wrapper for setBoolean() (p. 420).


Exceptions:
ClassCastException if the element is not of type Boolean.
See also:
java.util.List.set(int, java.lang.Object)
Implements AbstractPrimitiveSequence (p. 385).
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

422

Class Documentation

8.15.3.12

void add (int index, Object element) [virtual]

A wrapper for addBoolean(int, int).


Exceptions:
ClassCastException if the element is not of type Boolean.
See also:
java.util.List.add(int, java.lang.Object)
Implements AbstractPrimitiveSequence (p. 386).

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.16 Bounds Class Reference

8.16

Bounds Class Reference

A user exception thrown when a parameter is not within the legal bounds.
Inheritance diagram for Bounds::

8.16.1

Detailed Description

A user exception thrown when a parameter is not within the legal bounds.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

423

424

Class Documentation

8.17

BuiltinTopicKey t Class Reference

The key type of the built-in topic (p. 359) types.


Inheritance diagram for BuiltinTopicKey t::

Public Member Functions


void copy from (BuiltinTopicKey t other)
Object copy from (Object src)
Copy value of a data type from source.

Public Attributes
final int[ ] value
An array of four integers that uniquely
com.rti.dds.infrastructure.Entity ( p. 931).

8.17.1

represents

remote

Detailed Description

The key type of the built-in topic (p. 359) types.


Each remote com.rti.dds.infrastructure.Entity (p. 931) to be discovered is
can be uniquely identified by this key. This is the key of all the built-in topic
(p. 359) data types.
See also:
builtin.ParticipantBuiltinTopicData
builtin.TopicBuiltinTopicData (p. 1552)
builtin.PublicationBuiltinTopicData
builtin.SubscriptionBuiltinTopicData

8.17.2

Member Function Documentation

8.17.2.1

void copy from (BuiltinTopicKey t other)

Exceptions:
NullPointerException if other is null.

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.17 BuiltinTopicKey t Class Reference


8.17.2.2

425

Object copy from (Object src)

Copy value of a data type from source.


Copy data into this object from another. This copy is intended to be a deep
copy, so that all data members (recursively) are copied (not just resetting Object
references).
This operation returns the object that is copied if copy is successful.
Parameters:
src <<in>> ( p. 279) The Object which contains the data to be copied.
Returns:
Generally, return this but special cases (such as Enum) exist.
Exceptions:
NullPointerException If src is null.
ClassCastException If src is not the same type as this.
Implements Copyable (p. 480).

8.17.3

Member Data Documentation

8.17.3.1

final int [ ] value

An array of four integers that uniquely


com.rti.dds.infrastructure.Entity (p. 931).

represents

remote

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

426

Class Documentation

8.18

BuiltinTopicReaderResourceLimits t
Class Reference

Built-in topic (p. 359) readers resource limits.


Inherits Struct.

Public Member Functions


BuiltinTopicReaderResourceLimits t ()
Constructor with default initial and maximum values.

BuiltinTopicReaderResourceLimits t (int initial samples, int


max samples, int initial infos, int max infos, int initial outstanding reads, int max outstanding reads, int max samples per read, boolean
disable fragmentation support, int max fragmented samples, int
initial fragmented samples, int max fragmented samples per remote writer, int max fragments per sample, boolean dynamically allocate fragmented samples)
Constructor with the given initial and maximum values.

Public Attributes
int initial samples
Initial number of samples.

int max samples


Maximum number of samples.

int initial infos


Initial number of sample infos.

int max infos


Maximum number of sample infos.

boolean disable fragmentation support = false


int max fragmented samples = 1024
int initial fragmented samples = 4
int max fragmented samples per remote writer = 256
int max fragments per sample = 512
boolean dynamically allocate fragmented samples = true
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.18 BuiltinTopicReaderResourceLimits t Class Reference

8.18.1

427

Detailed Description

Built-in topic (p. 359) readers resource limits.


Defines the resources that can be used for a built-in-topic data reader.
A built-in topic (p. 359) data reader subscribes reliably to built-in topics containing declarations of new entities or updates to existing entities in the domain
(p. 328). Keys are used to differentiate among entities of the same type. RTI
Connext assigns a unique key to each entity in a domain (p. 328).
Properties:
RxO (p. 101) = N/A
Changeable (p. 102) = NO (p. 102)
QoS:
com.rti.dds.infrastructure.DiscoveryConfigQosPolicy (p. 639)

8.18.2

Constructor & Destructor Documentation

8.18.2.1

BuiltinTopicReaderResourceLimits t ()

Constructor with default initial and maximum values.


8.18.2.2

BuiltinTopicReaderResourceLimits t (int
initial samples, int max samples, int initial infos,
int max infos, int initial outstanding reads, int
max outstanding reads, int max samples per read,
boolean disable fragmentation support, int
max fragmented samples, int initial fragmented samples,
int max fragmented samples per remote writer,
int max fragments per sample, boolean
dynamically allocate fragmented samples)

Constructor with the given initial and maximum values.

8.18.3

Member Data Documentation

8.18.3.1

int initial samples

Initial number of samples.


This should be a value between 1 and initial number of instance of the built-intopic reader, depending on how many instances are sending data concurrently.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

428

Class Documentation

[default] 64
[range] [1, 1 million], <= max samples
8.18.3.2

int max samples

Maximum number of samples.


This should be a value between 1 and max number of instance of the built-intopic reader, depending on how many instances are sending data concurrently.
Also, it should not be less than initial samples.
[default] com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
[range] [1, 1 million] or com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106), >= initial samples
8.18.3.3

int initial infos

Initial number of sample infos.


The initial number of info units that a built-in topic (p. 359)
com.rti.dds.subscription.DataReader (p. 487) can have.
Info units
are used to store com.rti.dds.subscription.SampleInfo (p. 1398).
[default] 64
[range] [1, 1 million] <= max infos
8.18.3.4

int max infos

Maximum number of sample infos.


The maximum number of info units that a built-in topic (p. 359)
com.rti.dds.subscription.DataReader (p. 487) can use to store
com.rti.dds.subscription.SampleInfo (p. 1398).
[default] com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106)
[range] [1, 1 million] or com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH UNLIMITED (p. 106), >= initial infos
8.18.3.5

boolean disable fragmentation support = false

DiscoveryBuiltinReaderFragmentationResourceLimits t disable fragmentation support


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.18 BuiltinTopicReaderResourceLimits t Class Reference


8.18.3.6

429

int max fragmented samples = 1024

DiscoveryBuiltinReaderFragmentationResourceLimits t max fragmented samples


8.18.3.7

int initial fragmented samples = 4

DiscoveryBuiltinReaderFragmentationResourceLimits t initial fragmented samples


8.18.3.8

int max fragmented samples per remote writer = 256

DiscoveryBuiltinReaderFragmentationResourceLimits t max fragmented samples per remote writer


8.18.3.9

int max fragments per sample = 512

DiscoveryBuiltinReaderFragmentationResourceLimits t max fragments per sample


8.18.3.10

boolean dynamically allocate fragmented samples = true

DiscoveryBuiltinReaderFragmentationResourceLimits t dynamically allocate fragmented samples

Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

430

Class Documentation

8.19

Bytes Class Reference

Built-in type consisting of a variable-length array of opaque bytes.


Inheritance diagram for Bytes::

Public Member Functions


Bytes ()
Default Constructor.

Bytes (Bytes src)


Copy constructor.

Bytes (int theLength)


Constructor that specifies the size of the allocated bytes array.

Bytes (byte[ ] src)


Object copy from (Object src)
Copy src into this object.

Public Attributes
int length
Number of bytes to serialize.

int offset
Offset from which to start serializing bytes .

byte[ ] value
com.rti.dds.type.builtin.com.rti.dds.type.builtin.Bytes array value.

8.19.1

Detailed Description

Built-in type consisting of a variable-length array of opaque bytes.


Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen

8.19 Bytes Class Reference

8.19.2

Constructor & Destructor Documentation

8.19.2.1

Bytes ()

431

Default Constructor.
The default constructor initializes the newly created object with null value, zero
length, and zero offset.

8.19.2.2

Bytes (Bytes src)

Copy constructor.
Parameters:
src <<in>> ( p. 279) Object to copy from.
Exceptions:
NullPointerException if src is null.

8.19.2.3

Bytes (int theLength)

Constructor that specifies the size of the allocated bytes array.


After this method is called, length and offset are set to zero.
Parameters:
size <<in>> ( p. 279) Size of the allocated bytes array.
Exceptions:
IllegalArgumentException if size is negative

8.19.2.4

Bytes (byte[ ] src)

Create a new Bytes (p. 430) object to wrap the given array.
The value field will point to the given array. The offset will be set to 0. The
length will be set to the length of the array unless the array is null, in which
case the length will be set to 0 also.
Generated on Mon Aug 13 09:02:20 2012 for RTI Connext Java API by Doxygen