summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/Sequence
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/Sequence')
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp17
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp18
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h5
8 files changed, 56 insertions, 2 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp
index 1aa065a1b62..23a129e0553 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp
@@ -85,6 +85,23 @@ TAO_Notify_SequenceProxyPushConsumer::get_proxy_type_name (void) const
}
void
+TAO_Notify_SequenceProxyPushConsumer::validate ()
+{
+ TAO_Notify_Supplier* sup = this->supplier ();
+ if (sup != 0 && ! sup->is_alive (true))
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) TAO_Notify_SequenceProxyPushConsumer::validate(%d)")
+ ACE_TEXT ("disconnecting \n"), this->id ()));
+ }
+
+ this->disconnect_sequence_push_consumer ();
+ }
+}
+
+void
TAO_Notify_SequenceProxyPushConsumer::load_attrs (const TAO_Notify::NVPList& attrs)
{
SuperClass::load_attrs(attrs);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h
index 937e4ce703f..a20b5fa7c35 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h
@@ -52,6 +52,7 @@ public:
virtual const char * get_proxy_type_name (void) const;
virtual void load_attrs (const TAO_Notify::NVPList& attrs);
+ virtual void validate ();
protected:
///= Data Members
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp
index 95d19c94875..fb2ee51346f 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp
@@ -62,6 +62,24 @@ TAO_Notify_SequenceProxyPushSupplier::get_proxy_type_name (void) const
}
void
+TAO_Notify_SequenceProxyPushSupplier::validate ()
+{
+ TAO_Notify_Consumer* con = this->consumer ();
+ if (con != 0 && ! con->is_alive (true))
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) TAO_Notify_SequenceProxyPushSupplier::validate(%d)")
+ ACE_TEXT ("disconnecting \n"), this->id ()));
+ }
+
+ this->disconnect_sequence_push_supplier ();
+ }
+}
+
+
+void
TAO_Notify_SequenceProxyPushSupplier::load_attrs (const TAO_Notify::NVPList& attrs)
{
SuperClass::load_attrs(attrs);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h
index df868fb85f2..241e6f4eb9b 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h
@@ -60,6 +60,7 @@ public:
virtual const char * get_proxy_type_name (void) const;
virtual void load_attrs (const TAO_Notify::NVPList& attrs);
+ virtual void validate ();
/// = Servant methods
virtual CosNotifyChannelAdmin::ProxyType MyType (void);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp
index a63e5274eae..f0e73cac8dc 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp
@@ -306,7 +306,7 @@ TAO_Notify_SequencePushConsumer::push (const CosNotification::EventBatch& event_
this->push_consumer_->_stubobj()->orb_core()->orbid()));
}
//--cj end
-
+ last_ping_ = ACE_OS::gettimeofday ();
this->push_consumer_->push_structured_events (event_batch);
}
@@ -336,4 +336,10 @@ TAO_Notify_SequencePushConsumer::reconnect_from_consumer (TAO_Notify_Consumer* o
this->schedule_timer(false);
}
+CORBA::Object_ptr
+TAO_Notify_SequencePushConsumer::get_consumer (void)
+{
+ return CosNotifyComm::SequencePushConsumer::_duplicate (this->push_consumer_.in ());
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h
index 362cd39b425..3279e6ee66c 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h
@@ -78,6 +78,8 @@ public:
protected:
+ virtual CORBA::Object_ptr get_consumer (void);
+
/// The Consumer
CosNotifyComm::SequencePushConsumer_var push_consumer_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp
index b4101eb48cf..be8c3139944 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp
@@ -50,4 +50,10 @@ TAO_Notify_SequencePushSupplier::get_ior (void) const
return result;
}
+CORBA::Object_ptr
+TAO_Notify_SequencePushSupplier::get_supplier (void)
+{
+ return CosNotifyComm::SequencePushSupplier::_duplicate (this->push_supplier_.in ());
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h
index a944971ffbc..20fc8ea9aac 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h
@@ -51,7 +51,10 @@ public:
virtual ACE_CString get_ior (void) const;
protected:
- /// The Supplier
+
+ virtual CORBA::Object_ptr get_supplier (void);
+
+ /// The Supplier
CosNotifyComm::SequencePushSupplier_var push_supplier_;
};