Public Member Functions | Private Member Functions | Private Attributes | Friends

TAO_Notify_Constraint_Expr Class Reference

#include <ETCL_Filter.h>

Inheritance diagram for TAO_Notify_Constraint_Expr:
Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_Constraint_Expr:
Collaboration graph
[legend]

List of all members.

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_Objectload_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

Detailed Description

Definition at line 37 of file ETCL_Filter.h.


Constructor & Destructor Documentation

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.

{
}


Member Function Documentation

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");
  }
}


Friends And Related Function Documentation

friend class TAO_Notify_ETCL_Filter [friend]

Definition at line 41 of file ETCL_Filter.h.


Member Data Documentation

Definition at line 66 of file ETCL_Filter.h.

Definition at line 69 of file ETCL_Filter.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines