00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_DATAREADER_REMOTE_IDL 00009 #define OPENDDS_DCPS_DATAREADER_REMOTE_IDL 00010 00011 #include "dds/DdsDcpsInfoUtils.idl" 00012 #include "dds/DdsDcpsSubscription.idl" 00013 00014 module OpenDDS { 00015 module DCPS { 00016 00017 // This interface contains OpenDDS-specific operations 00018 // related to a DDS::DataReader servant. 00019 // It is split out so the DDS::DataReader interface can be local. 00020 interface DataReaderRemote { 00021 00022 // will tell transport and call on_subscription_matched() 00023 oneway void add_association( 00024 in RepoId yourId, 00025 in WriterAssociation writer, 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 writer. The InfoRepo detects 00036 // the lost writer when the add_association/remove_association invocations 00037 // on the writer object reference fail. The datareader need notify the 00038 // the DataReaderListener on_publication_lost. 00039 oneway void remove_associations( 00040 in WriterIdSeq writers, 00041 in boolean notify_lost 00042 ); 00043 00044 // Supporting - DataReaderListener::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 }; 00051 }; // module DDS 00052 }; // module OpenDDS 00053 00054 #endif