summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs
diff options
context:
space:
mode:
authorelliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-03-16 16:28:57 +0000
committerelliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-03-16 16:28:57 +0000
commit7be7c0cdf529c0ece98c4eb9c84e5ed824a1f465 (patch)
tree5c9517ff23f6e905bcc2a5e6a10d6880e1691d82 /TAO/orbsvcs
parent773accefc8c182af86b829e1761e9f2a1e05f406 (diff)
downloadATCD-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.i3
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp28
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h6
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i10
-rw-r--r--TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp12
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;
}