summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-01-27 02:05:32 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-01-27 02:05:32 +0000
commitda4efba80a21f4af52bb19e3c1dea33b8fc2d7bd (patch)
tree55118c32e47784bfbedd55c673a94c1cc34b5c49
parent64b136bc3a08978caf3017ab2784f5502320f806 (diff)
downloadATCD-da4efba80a21f4af52bb19e3c1dea33b8fc2d7bd.tar.gz
ChangeLogTag:Tue Jan 26 16:24:57 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-99c15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.cpp48
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h18
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Factory.cpp13
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Filter.cpp80
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Filter.h74
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Filter.i2
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.cpp27
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.h10
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.i5
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp24
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h10
12 files changed, 295 insertions, 31 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index f42d94ad6ad..cc95f835a06 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -5,6 +5,21 @@ Tue Jan 26 16:24:57 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
Added some documentation about the new Event Channel
implementation.
+ * orbsvcs/orbsvcs/Event/EC_Dispatching.cpp:
+ * orbsvcs/orbsvcs/Event/EC_Dispatching.h:
+ * orbsvcs/orbsvcs/Event/EC_Factory.cpp:
+ * orbsvcs/orbsvcs/Event/EC_Filter.cpp:
+ * orbsvcs/orbsvcs/Event/EC_Filter.h:
+ * orbsvcs/orbsvcs/Event/EC_Filter.i:
+ * orbsvcs/orbsvcs/Event/EC_Filter_Builder.cpp:
+ * orbsvcs/orbsvcs/Event/EC_Filter_Builder.h:
+ * orbsvcs/orbsvcs/Event/EC_Filter_Builder.i:
+ * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp:
+ * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h:
+ Added the implementation of a null filter and the corresponding
+ filter builder. Also implemented the reactive dispatching
+ strategy.
+
Mon Jan 25 17:24:50 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/Timer_Module.h:
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.cpp
new file mode 100644
index 00000000000..52ead5002c8
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.cpp
@@ -0,0 +1,48 @@
+// $Id$
+
+#include "EC_Dispatching.h"
+#include "EC_ProxySupplier.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Dispatching.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Dispatching, "$Id$")
+
+TAO_EC_Dispatching::~TAO_EC_Dispatching (void)
+{
+}
+
+// ****************************************************************
+
+TAO_EC_Reactive_Dispatching::TAO_EC_Reactive_Dispatching (void)
+{
+}
+
+void
+TAO_EC_Reactive_Dispatching::activate (void)
+{
+}
+
+void
+TAO_EC_Reactive_Dispatching::shutdown (void)
+{
+}
+
+void
+TAO_EC_Reactive_Dispatching::push (TAO_EC_ProxyPushSupplier* proxy,
+ const RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ proxy->consumer ()->push (event, ACE_TRY_ENV);
+}
+
+void
+TAO_EC_Reactive_Dispatching::push_nocopy (TAO_EC_ProxyPushSupplier* proxy,
+ RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ proxy->consumer ()->push (event, ACE_TRY_ENV);
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
index 126e478b0eb..f4814447695 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
@@ -40,6 +40,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
class TAO_EC_QOS_Info;
+class TAO_EC_ProxyPushSupplier;
class TAO_EC_Dispatching
{
@@ -64,8 +65,12 @@ public:
virtual void push (TAO_EC_ProxyPushSupplier* proxy,
const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env) = 0;
+ virtual void push_nocopy (TAO_EC_ProxyPushSupplier* proxy,
+ RtecEventComm::EventSet& event,
+ const TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env) = 0;
// The consumer represented by <proxy> should receive <event>.
// It can use the information in <qos_info> to determine the event
// priority (among other things).
@@ -83,8 +88,7 @@ class TAO_EC_Reactive_Dispatching
// thread to push the event to the consumer.
//
public:
- TAO_EC_Priority_Dispatching (RtecScheduler::Scheduler_ptr
- scheduler);
+ TAO_EC_Reactive_Dispatching (void);
// The scheduler is used to find the range of priorities and similar
// info.
@@ -93,10 +97,12 @@ public:
virtual void shutdown (void);
virtual void push (TAO_EC_ProxyPushSupplier* proxy,
const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
- // @@ proxy->consumer ()->push (event, env);
-
+ virtual void push_nocopy (TAO_EC_ProxyPushSupplier* proxy,
+ RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
};
// ****************************************************************
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Factory.cpp
new file mode 100644
index 00000000000..e77c179bdf5
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Factory.cpp
@@ -0,0 +1,13 @@
+// $Id$
+
+#include "EC_Factory.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Factory.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Factory, "$Id$")
+
+TAO_EC_Factory::~TAO_EC_Factory (void)
+{
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Filter.cpp
new file mode 100644
index 00000000000..d2558f3c5f3
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Filter.cpp
@@ -0,0 +1,80 @@
+// $Id$
+
+#include "EC_Filter.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Filter.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Filter, "$Id$")
+
+TAO_EC_Filter::~TAO_EC_Filter (void)
+{
+}
+
+void
+TAO_EC_Filter::adopt_child (TAO_EC_Filter* child)
+{
+ child->parent_ = this;
+}
+
+// ****************************************************************
+
+int
+TAO_EC_Null_Filter::filter (const RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ // This is a leaf, no need to query any children, and we accept all
+ // events, so push it.
+ this->push (event, qos_info, ACE_TRY_ENV);
+ return 1;
+}
+
+int
+TAO_EC_Null_Filter::filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ // This is a leaf, no need to query any children, and we accept all
+ // events, so push it.
+ this->push_nocopy (event, qos_info, ACE_TRY_ENV);
+ return 1;
+}
+
+void
+TAO_EC_Null_Filter::push (const RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ if (this->parent () != 0)
+ this->parent ()->push (event, qos_info, ACE_TRY_ENV);
+}
+
+void
+TAO_EC_Null_Filter::push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ if (this->parent () != 0)
+ this->parent ()->push_nocopy (event, qos_info, ACE_TRY_ENV);
+}
+
+void
+TAO_EC_Null_Filter::clear (void)
+{
+ // do nothing
+}
+
+CORBA::ULong
+TAO_EC_Null_Filter::max_event_size (void) const
+{
+ return 0;
+}
+
+void
+TAO_EC_Null_Filter::event_ids(TAO_EC_Filter::Headers& headers)
+{
+ // @@ TODO maybe we should add the AnyType/AnySource header?
+ // right now we do nothing...
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Filter.h b/TAO/orbsvcs/orbsvcs/Event/EC_Filter.h
index 76349661932..c909610dd67 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Filter.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Filter.h
@@ -65,7 +65,7 @@ public:
virtual ~TAO_EC_Filter (void);
// destructor...
- const TAO_EC_Filter* parent (void) const;
+ TAO_EC_Filter* parent (void) const;
// Obtain the parent of this filter.
void adopt_child (TAO_EC_Filter* child);
@@ -77,16 +77,26 @@ public:
// @@ TODO: strategize this...
virtual int filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env) = 0;
+ virtual int filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env) = 0;
// Filter this event, returns 1 if the event is accepted, 0
// otherwise.
+ // Notice that there are two versions of the method, if the event is
+ // not const then filter can take ownership of the event.
virtual void push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env) = 0;
+ virtual void push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env) = 0;
// This is called by the children when they accept an event and
// which to pass it up.
+ // Notice that there are two versions of the method, if the event is
+ // not const then filter can take ownership of the event.
virtual void clear (void) = 0;
// Clear any saved state, must reset and assume no events have been
@@ -97,7 +107,7 @@ public:
typedef ACE_Array<RtecEventComm::EventHeader> Headers;
- virtual void event_ids (Headers& headerset) = 0;
+ virtual void event_ids (Headers& headers) = 0;
// Compute the disjunction of all the event types that could be of
// interest for this filter (and its children).
@@ -111,8 +121,16 @@ private:
class TAO_EC_Null_Filter : public TAO_EC_Filter
{
// = TITLE
+ // A null filter
//
// = DESCRIPTION
+ // This filter accepts any kind of event, it is useful for the
+ // implementation:
+ // a) Consumers that accept all events
+ // b) Consumers that trust the filtering done at the Supplier
+ // layer.
+ // c) Event Channels that don't do filtering (such as CosEC
+ // backends)
//
// = MEMORY MANAGMENT
//
@@ -123,14 +141,20 @@ public:
// = The TAO_EC_Filter methods, please check the documentation in
// TAO_EC_Filter.
virtual int filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual int filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual void push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void clear (void);
virtual CORBA::ULong max_event_size (void) const;
- virtual void event_ids (TAO_EC_Filter::Headers& headerset);
+ virtual void event_ids (TAO_EC_Filter::Headers& headers);
};
// ****************************************************************
@@ -148,14 +172,20 @@ public:
// = The TAO_EC_Filter methods, please check the documentation in
// TAO_EC_Filter.
virtual int filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual int filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual void push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void clear (void);
virtual CORBA::ULong max_event_size (void) const;
- virtual void event_ids (TAO_EC_Filter::Headers& headerset);
+ virtual void event_ids (TAO_EC_Filter::Headers& headers);
};
// ****************************************************************
@@ -173,14 +203,20 @@ public:
// = The TAO_EC_Filter methods, please check the documentation in
// TAO_EC_Filter.
virtual int filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual int filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual void push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void clear (void);
virtual CORBA::ULong max_event_size (void) const;
- virtual void event_ids (TAO_EC_Filter::Headers& headerset);
+ virtual void event_ids (TAO_EC_Filter::Headers& headers);
};
// ****************************************************************
@@ -198,14 +234,20 @@ public:
// = The TAO_EC_Filter methods, please check the documentation in
// TAO_EC_Filter.
virtual int filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual int filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual void push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void clear (void);
virtual CORBA::ULong max_event_size (void) const;
- virtual void event_ids (TAO_EC_Filter::Headers& headerset);
+ virtual void event_ids (TAO_EC_Filter::Headers& headers);
};
// ****************************************************************
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Filter.i b/TAO/orbsvcs/orbsvcs/Event/EC_Filter.i
index 367356df657..4b95832a627 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Filter.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Filter.i
@@ -6,7 +6,7 @@ TAO_EC_Filter::TAO_EC_Filter (void)
{
}
-ACE_INLINE const TAO_EC_Filter*
+ACE_INLINE TAO_EC_Filter*
TAO_EC_Filter::parent (void) const
{
return this->parent_;
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.cpp
new file mode 100644
index 00000000000..5600df57453
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.cpp
@@ -0,0 +1,27 @@
+// $Id$
+
+#include "EC_Filter_Builder.h"
+#include "EC_Filter.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Filter_Builder.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Filter_Builder, "$Id$")
+
+TAO_EC_Filter_Builder::~TAO_EC_Filter_Builder (void)
+{
+}
+
+// ****************************************************************
+
+TAO_EC_Null_Filter_Builder::~TAO_EC_Null_Filter_Builder (void)
+{
+}
+
+TAO_EC_Filter*
+TAO_EC_Null_Filter_Builder::
+ build (RtecEventChannelAdmin::ConsumerQOS&) const
+{
+ return new TAO_EC_Null_Filter;
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.h b/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.h
index 1dc92b28c1a..4f03d363efc 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.h
@@ -37,6 +37,8 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+class TAO_EC_Filter;
+
class TAO_EC_Filter_Builder
{
// = TITLE
@@ -58,19 +60,19 @@ public:
// ****************************************************************
-class TAO_EC_Default_Filter_Builder
+class TAO_EC_Null_Filter_Builder
{
// = TITLE
// A simple implementation of the filter builder.
//
// = DESCRIPTION
- // Defines the default filter builder.
+ // Simply creates a Null_Filter in every case.
//
public:
- TAO_EC_Default_Filter_Builder (void);
+ TAO_EC_Null_Filter_Builder (void);
// constructor.
- virtual ~TAO_EC_Default_Filter_Builder (void);
+ virtual ~TAO_EC_Null_Filter_Builder (void);
// destructor...
// = The TAO_EC_Filter_Builder methods...
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.i b/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.i
index cfa1da318d3..2592a19f93b 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Filter_Builder.i
@@ -1 +1,6 @@
// $Id$
+
+ACE_INLINE
+TAO_EC_Null_Filter_Builder::TAO_EC_Null_Filter_Builder (void)
+{
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp
index 96e0ecd251b..f2f24deb0f0 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp
@@ -98,15 +98,23 @@ TAO_EC_ProxyPushSupplier::resume_connection (CORBA::Environment &ACE_TRY_ENV)
int
TAO_EC_ProxyPushSupplier::filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& ACE_TRY_ENV)
{
return this->child_->filter (event, qos_info, ACE_TRY_ENV);
}
+int
+TAO_EC_ProxyPushSupplier::filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ return this->child_->filter_nocopy (event, qos_info, ACE_TRY_ENV);
+}
+
void
TAO_EC_ProxyPushSupplier::push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& ACE_TRY_ENV)
{
this->event_channel_->dispatching ()->push (this,
@@ -117,6 +125,18 @@ TAO_EC_ProxyPushSupplier::push (const RtecEventComm::EventSet& event,
}
void
+TAO_EC_ProxyPushSupplier::push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& ACE_TRY_ENV)
+{
+ this->event_channel_->dispatching ()->push_nocopy (this,
+ event,
+ qos_info,
+ ACE_TRY_ENV);
+ this->child_->clear ();
+}
+
+void
TAO_EC_ProxyPushSupplier::clear (void)
{
this->child_->clear ();
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h
index ab81be2f4c6..eb4f145fcc9 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h
@@ -116,11 +116,17 @@ public:
// = The TAO_EC_Filter methods, only push() is implemented...
virtual int filter (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual int filter_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void push (const RtecEventComm::EventSet& event,
- const TAO_EC_QOS_Info& qos_info,
+ TAO_EC_QOS_Info& qos_info,
CORBA::Environment& env);
+ virtual void push_nocopy (RtecEventComm::EventSet& event,
+ TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
virtual void clear (void);
virtual CORBA::ULong max_event_size (void) const;
virtual void event_ids (TAO_EC_Filter::Headers& headerset);