#include <ETCL_Filter.h>


Public Member Functions | |
| TAO_Notify_Constraint_Expr (void) | |
| virtual | ~TAO_Notify_Constraint_Expr () |
| void | save_persistent (TAO_Notify::Topology_Saver &saver) |
| void | load_attrs (const TAO_Notify::NVPList &attrs) |
| TAO_Notify::Topology_Object * | load_child (const ACE_CString &type, CORBA::Long id, const TAO_Notify::NVPList &attrs) |
| Create a child of the appropriate type and return it. | |
Private Member Functions | |
| virtual void | release (void) |
| Release this object. | |
Private Attributes | |
| CosNotifyFilter::ConstraintExp | constr_expr |
| TAO_Notify_Constraint_Interpreter | interpreter |
Friends | |
| class | TAO_Notify_ETCL_Filter |
Definition at line 37 of file ETCL_Filter.h.
| TAO_Notify_Constraint_Expr::TAO_Notify_Constraint_Expr | ( | void | ) |
Definition at line 20 of file ETCL_Filter.cpp.
{
}
| TAO_Notify_Constraint_Expr::~TAO_Notify_Constraint_Expr | ( | ) | [virtual] |
Definition at line 25 of file ETCL_Filter.cpp.
{
}
| void TAO_Notify_Constraint_Expr::load_attrs | ( | const TAO_Notify::NVPList & | attrs | ) |
Definition at line 50 of file ETCL_Filter.cpp.
{
TAO_Notify_Object::load_attrs (attrs);
const char* expr = 0;
if (attrs.find ("Expression", expr))
{
this->constr_expr.constraint_expr = CORBA::string_dup (expr);
}
}
| TAO_Notify::Topology_Object * TAO_Notify_Constraint_Expr::load_child | ( | const ACE_CString & | type, | |
| CORBA::Long | id, | |||
| const TAO_Notify::NVPList & | attrs | |||
| ) | [virtual] |
Create a child of the appropriate type and return it.
Use "type" as passed in to determine what kind of child (supporting the Topology_Object interface) to create and return. Inform it of its new ID.
Reimplemented from TAO_Notify::Topology_Object.
Definition at line 63 of file ETCL_Filter.cpp.
{
ACE_UNUSED_ARG (id);
TAO_Notify::Topology_Object* result = this;
if (type == "EventType")
{
const char* domain = 0;
const char* type = 0;
attrs.find ("Domain", domain);
attrs.find ("Type", type);
CORBA::ULong len = this->constr_expr.event_types.length ();
if (DEBUG_LEVEL)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) reload EventType %d \n"),
len + 1));
this->constr_expr.event_types.length (len + 1);
this->constr_expr.event_types[len].domain_name = CORBA::string_dup (domain);
this->constr_expr.event_types[len].type_name = CORBA::string_dup (type);
this->interpreter.build_tree (this->constr_expr);
}
return result;
}
| void TAO_Notify_Constraint_Expr::release | ( | void | ) | [private, virtual] |
Release this object.
Definition at line 95 of file ETCL_Filter.cpp.
{
delete this;
//@@ inform factory
}
| void TAO_Notify_Constraint_Expr::save_persistent | ( | TAO_Notify::Topology_Saver & | saver | ) | [virtual] |
Save our state to a Topology_Saver.
Use the methods of a Topology_Saver to store all information we want persisted. This function is called by our parent, which gives us a saver to use. In turn, we must call this function on all of our children. The implementation should look like: bool change = this->self_changed_; this->self_changed_ = false; this->children_changed_ = false; if (is_persistent ()) { bool want_all_children = saver.begin_object( this->id(), type, attrs, change); for all children { if (want_all_children || child.is_changed()) { child.save_persistent(saver); } } for all deleted children { saver.delete_child(child_type, child_id); } saver.end_object(this->id(), type); )
Implements TAO_Notify::Topology_Savable.
Definition at line 31 of file ETCL_Filter.cpp.
{
CosNotification::EventTypeSeq& event_types = this->constr_expr.event_types;
CORBA::ULong len = event_types.length ();
for (CORBA::ULong i = 0; i < len; ++i)
{
TAO_Notify::NVPList attrs;
bool changed = true;
attrs.push_back(TAO_Notify::NVP("Domain", event_types[i].domain_name.in()));
attrs.push_back(TAO_Notify::NVP("Type", event_types[i].type_name.in()));
saver.begin_object(0, "EventType", attrs, changed);
saver.end_object(0, "EventType");
}
}
friend class TAO_Notify_ETCL_Filter [friend] |
Definition at line 41 of file ETCL_Filter.h.
Definition at line 66 of file ETCL_Filter.h.
Definition at line 69 of file ETCL_Filter.h.
1.7.0