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 // Called by the InfoRepo to the active peer when the passive peer 00029 // has indicated that the connection is made. 00030 oneway void association_complete(in RepoId remote_id); 00031 00032 // will tell transport that associations are going away 00033 // The notify_lost flag true indicates the remove_association is invoked 00034 // by the InfoRepo after it detected a lost writer. The InfoRepo detects 00035 // the lost writer when the add_association/remove_association invocations 00036 // on the writer object reference fail. The datareader need notify the 00037 // the DataReaderListener on_publication_lost. 00038 oneway void remove_associations( 00039 in WriterIdSeq writers, 00040 in boolean notify_lost); 00041 00042 // Supporting - DataReaderListener::on_offered_incompatible_qos() 00043 // May get called even if add_associations() is not called. 00044 oneway void update_incompatible_qos( 00045 in IncompatibleQosStatus status); 00046 00047 }; 00048 }; // module DDS 00049 }; // module OpenDDS 00050 00051 #endif