Public Member Functions |
| | TAO_EC_Sched_Filter (const char *name, RtecScheduler::handle_t rt_info, RtecScheduler::Scheduler_ptr scheduler, TAO_EC_Filter *body, RtecScheduler::handle_t body_info, RtecScheduler::handle_t parent_info, RtecScheduler::Info_Type_t info_type) |
| virtual | ~TAO_EC_Sched_Filter (void) |
| | Destructor.
|
| virtual ChildrenIterator | begin (void) const |
| virtual ChildrenIterator | end (void) const |
| virtual int | size (void) const |
| virtual int | filter (const RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info) |
| virtual int | filter_nocopy (RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info) |
| virtual void | push (const RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info) |
| virtual void | push_nocopy (RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info) |
| virtual void | clear (void) |
| virtual CORBA::ULong | max_event_size (void) const |
| | Returns the maximum size of the events pushed by this filter.
|
| virtual int | can_match (const RtecEventComm::EventHeader &header) const |
| virtual int | add_dependencies (const RtecEventComm::EventHeader &header, const TAO_EC_QOS_Info &qos_info) |
| virtual void | get_qos_info (TAO_EC_QOS_Info &qos_info) |
Private Member Functions |
| | TAO_EC_Sched_Filter (const TAO_EC_Sched_Filter &) |
| TAO_EC_Sched_Filter & | operator= (const TAO_EC_Sched_Filter &) |
| void | init_rt_info (void) |
| | Initialize our RT_Info handle and dependencies.
|
| void | compute_qos_info (TAO_EC_QOS_Info &qos_info) |
| | Compute a new qos_info to push up.
|
Private Attributes |
| RtecScheduler::handle_t | rt_info_ |
| | The RT_Info handle for this object.
|
| int | rt_info_computed_ |
| | Has the Scheduler been updated?
|
| ACE_CString | name_ |
| | Our operation name.
|
| RtecScheduler::Scheduler_var | scheduler_ |
| | The scheduler we are going to use.
|
| TAO_EC_Filter * | body_ |
| | The implementation.
|
| RtecScheduler::handle_t | body_info_ |
| | The RT_Info handle for the body.
|
| RtecScheduler::handle_t | parent_info_ |
| | The RT_Info handle for the parent.
|
| RtecScheduler::Info_Type_t | info_type_ |
| | Required for the scheduling service.
|
Decorate a filter with scheduling information.
This filter decorates a regular filter with scheduling information. It creates a new RT_Info entry for the filter and it adds the dependencies between the filter and any childrens it may have.
Memory Management
It assumes ownership of the children.
This is used for computing the scheduling dependencies:
Leaf filters check if the header could be matched, similar to the can_match() method; if it does they return 1, and 0 otherwise. Intermediate nodes always return 0.
This is used to build precise dependencies between the suppliers and the leaf of the filters that accept that event. Notice that only the nodes doing scheduling recurse through the list, so in configurations that do no require scheduling the recursion stops fairly soon.
Implements TAO_EC_Filter.