| 156 | } |
| 157 | |
| 158 | DDS::DataWriter* |
| 159 | OpenDDS::Model::Delegate::createWriter( |
| 160 | DDS::Publisher* publisher, |
| 161 | DDS::Topic* topic, |
| 162 | const DDS::DataWriterQos& writerQos, |
| 163 | DDS::StatusMask mask, |
| 164 | const OPENDDS_STRING& transportConfig) |
| 165 | { |
| 166 | // If we specify a transport and have autoenable modeled, |
| 167 | // temporarily turn off autoenabling |
| 168 | bool overridden = false; |
| 169 | bool transportSpecified = !transportConfig.empty(); |
| 170 | |
| 171 | // If transport config was specified |
| 172 | if (transportSpecified) { |
| 173 | overridden = override_autoenabled_qos(publisher); |
| 174 | } |
| 175 | |
| 176 | DDS::DataWriter_ptr dataWriter = publisher->create_datawriter( |
| 177 | topic, |
| 178 | writerQos, |
| 179 | DDS::DataWriterListener::_nil(), |
| 180 | mask |
| 181 | ); |
| 182 | |
| 183 | if (transportSpecified) { |
| 184 | // Restore autoenabling if necessary |
| 185 | if (overridden) { |
| 186 | restore_autoenabled_qos(publisher); |
| 187 | } |
| 188 | // bind to specified transport |
| 189 | TheTransportRegistry->bind_config(transportConfig, dataWriter); |
| 190 | } |
| 191 | |
| 192 | return dataWriter; |
| 193 | } |
| 194 | |
| 195 | DDS::DataReader* |
| 196 | OpenDDS::Model::Delegate::createSubscription( |
no test coverage detected