diff options
author | elliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-03-16 16:28:57 +0000 |
---|---|---|
committer | elliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-03-16 16:28:57 +0000 |
commit | 7be7c0cdf529c0ece98c4eb9c84e5ed824a1f465 (patch) | |
tree | 5c9517ff23f6e905bcc2a5e6a10d6880e1691d82 /TAO/orbsvcs | |
parent | 773accefc8c182af86b829e1761e9f2a1e05f406 (diff) | |
download | ATCD-7be7c0cdf529c0ece98c4eb9c84e5ed824a1f465.tar.gz |
ChangeLogTag: Wed Mar 16 10:28:11 2005 Chad Elliott <elliott_c@ociweb.com>
Diffstat (limited to 'TAO/orbsvcs')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.i | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp | 28 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h | 6 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i | 10 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp | 12 |
5 files changed, 55 insertions, 4 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.i b/TAO/orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.i index 861f1e847ef..f2706941f70 100644 --- a/TAO/orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.i +++ b/TAO/orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.i @@ -58,6 +58,5 @@ TAO_ECG_CDR_Message_Receiver::shutdown (void) (*i).int_id_ = 0; } - TAO_ECG_Refcounted_Endpoint empty_endpoint; - this->ignore_from_ = empty_endpoint; + this->ignore_from_.reset (); } diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp b/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp index 434bbd649a7..e6316e790ab 100644 --- a/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp @@ -52,6 +52,34 @@ TAO_ECG_UDP_Out_Endpoint::is_loopback (const ACE_INET_Addr& from) } +TAO_ECG_UDP_Out_Endpoint& +TAO_ECG_UDP_Out_Endpoint::operator= (const TAO_ECG_UDP_Out_Endpoint& rhs) +{ + if (this != &rhs) + { + this->request_id_generator_ = rhs.request_id_generator_; + this->dgram_ = rhs.dgram_; + this->port_number_ = rhs.port_number_; + this->if_count_ = rhs.if_count_; + + delete [] this->ifs_; + this->ifs_ = 0; + + if (this->if_count_ != 0) + { + ACE_NEW_RETURN (this->ifs_, + ACE_INET_Addr [this->if_count_], + *this); + for(size_t i = 0; i < this->if_count_; ++i) + { + this->ifs_[i] = rhs.ifs_[i]; + } + } + } + + return *this; +} + // **************************************************************** #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h b/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h index 226f8f8150a..e36f6ebdae2 100644 --- a/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h +++ b/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h @@ -47,6 +47,12 @@ public: /// Constructor ~TAO_ECG_UDP_Out_Endpoint (void); + /// Copy Constructor + TAO_ECG_UDP_Out_Endpoint (const TAO_ECG_UDP_Out_Endpoint& rhs); + + /// Assignment operator + TAO_ECG_UDP_Out_Endpoint& operator= (const TAO_ECG_UDP_Out_Endpoint& rhs); + /// Obtain the datagram associated with this endpoint. Clients of /// this class must open, and register (if necessary) this datagram. ACE_SOCK_Dgram& dgram (void); diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i b/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i index 8cd70603ef1..7b625aa93cb 100644 --- a/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i +++ b/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i @@ -10,6 +10,16 @@ TAO_ECG_UDP_Out_Endpoint::TAO_ECG_UDP_Out_Endpoint (void) { } +ACE_INLINE +TAO_ECG_UDP_Out_Endpoint::TAO_ECG_UDP_Out_Endpoint ( + const TAO_ECG_UDP_Out_Endpoint& rhs) + : port_number_ (0), + if_count_ (0), + ifs_ (0) +{ + *this = rhs; +} + ACE_INLINE ACE_SOCK_Dgram& TAO_ECG_UDP_Out_Endpoint::dgram (void) { diff --git a/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp b/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp index 8d4344eb8ee..97781278620 100644 --- a/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp +++ b/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp @@ -281,7 +281,11 @@ ECM_Driver::open_senders (RtecEventChannelAdmin::EventChannel_ptr ec ignore_from.get_port_number ())); for (int i = 0; i < this->all_federations_count_; ++i) { - this->all_federations_[i]->open (&this->endpoint_, + TAO_ECG_UDP_Out_Endpoint* clone; + ACE_NEW (clone, + TAO_ECG_UDP_Out_Endpoint (this->endpoint_)); + + this->all_federations_[i]->open (clone, ec ACE_ENV_ARG_PARAMETER); ACE_CHECK; @@ -305,8 +309,12 @@ ECM_Driver::open_receivers (RtecEventChannelAdmin::EventChannel_ptr ec { for (int i = 0; i < this->local_federations_count_; ++i) { + TAO_ECG_UDP_Out_Endpoint* clone; + ACE_NEW (clone, + TAO_ECG_UDP_Out_Endpoint (this->endpoint_)); + this->local_federations_[i]->open_receiver (ec, - &this->endpoint_ + clone ACE_ENV_ARG_PARAMETER); ACE_CHECK; } |