00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_DATAWRITER_REMOTE_IDL 00009 #define OPENDDS_DCPS_DATAWRITER_REMOTE_IDL 00010 00011 #include "dds/DdsDcpsInfoUtils.idl" 00012 #include "dds/DdsDcpsPublication.idl" 00013 00014 module OpenDDS { 00015 module DCPS { 00016 00017 // This interface contains OpenDDS-specific operations 00018 // related to a DDS::DataWriter servant. 00019 // It is split out so the DDS::DataWriter interface can be local. 00020 interface DataWriterRemote { 00021 00022 // will tell transport and call on_publication_matched() 00023 oneway void add_association( 00024 in RepoId yourId, 00025 in ReaderAssociation reader, 00026 in boolean active 00027 ); 00028 00029 // Called by the InfoRepo to the active peer when the passive peer 00030 // has indicated that the connection is made. 00031 oneway void association_complete(in RepoId remote_id); 00032 00033 // will tell transport that associations are going away 00034 // The notify_lost flag true indicates the remove_association is invoked 00035 // by the InfoRepo after it detected a lost reader. The InfoRepo detects 00036 // the lost reader when the add_association/remove_association invocations 00037 // on the reader object reference fail. The datawriter need notify the 00038 // the DataWriterListener on_subscription_lost. 00039 oneway void remove_associations( 00040 in ReaderIdSeq readers, 00041 in boolean notify_lost 00042 ); 00043 00044 // supporting DataWriterListener::on_offered_incompatible_qos() 00045 // May get called even if add_associations() is not called. 00046 oneway void update_incompatible_qos( 00047 in IncompatibleQosStatus status 00048 ); 00049 00050 // This call is two-way because the InfoRepo will block the reader 00051 // in CFT::set_expression_parameters() until each associated writer 00052 // is notified synchronously by this call. 00053 void update_subscription_params( 00054 in RepoId readerId, 00055 in ::DDS::StringSeq exprParams 00056 ); 00057 }; 00058 }; // module DDS 00059 }; // module OpenDDS 00060 00061 #endif