From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/cosNotification/src/CosNotifyFilter.idl | 140 ++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 lib/cosNotification/src/CosNotifyFilter.idl (limited to 'lib/cosNotification/src/CosNotifyFilter.idl') diff --git a/lib/cosNotification/src/CosNotifyFilter.idl b/lib/cosNotification/src/CosNotifyFilter.idl new file mode 100644 index 0000000000..c6498ddcd0 --- /dev/null +++ b/lib/cosNotification/src/CosNotifyFilter.idl @@ -0,0 +1,140 @@ +#ifndef _COS_NOTIFYFILTER_IDL_ +#define _COS_NOTIFYFILTER_IDL_ + +#pragma prefix "omg.org" + +#include +#include + +module CosNotifyFilter { + typedef long ConstraintID; + struct ConstraintExp { + CosNotification::EventTypeSeq event_types; + string constraint_expr; + }; + + typedef sequence ConstraintIDSeq; + typedef sequence ConstraintExpSeq; + struct ConstraintInfo { + ConstraintExp constraint_expression; + ConstraintID constraint_id; + }; + typedef sequence ConstraintInfoSeq; + struct MappingConstraintPair { + ConstraintExp constraint_expression; + any result_to_set; + }; + typedef sequence MappingConstraintPairSeq; + struct MappingConstraintInfo { + ConstraintExp constraint_expression; + ConstraintID constraint_id; + any value; + }; + typedef sequence MappingConstraintInfoSeq; + typedef long CallbackID; + typedef sequence CallbackIDSeq; + exception UnsupportedFilterableData {}; + exception InvalidGrammar {}; + exception InvalidConstraint {ConstraintExp constr;}; + exception DuplicateConstraintID {ConstraintID id;}; + exception ConstraintNotFound {ConstraintID id;}; + exception CallbackNotFound {}; + exception InvalidValue {ConstraintExp constr; any value;}; + interface Filter { + readonly attribute string constraint_grammar; + ConstraintInfoSeq add_constraints (in ConstraintExpSeq constraint_list) + raises (InvalidConstraint); + + void modify_constraints (in ConstraintIDSeq del_list, + in ConstraintInfoSeq modify_list) + raises (InvalidConstraint, ConstraintNotFound); + + ConstraintInfoSeq get_constraints(in ConstraintIDSeq id_list) + raises (ConstraintNotFound); + + ConstraintInfoSeq get_all_constraints(); + + void remove_all_constraints(); + void destroy(); + boolean match (in any filterable_data) + raises (UnsupportedFilterableData); + + boolean match_structured (in CosNotification::StructuredEvent filterable_data) + raises (UnsupportedFilterableData); + + boolean match_typed (in CosNotification::PropertySeq filterable_data) + raises (UnsupportedFilterableData); + + CallbackID attach_callback (in CosNotifyComm::NotifySubscribe callback); + + void detach_callback (in CallbackID callback) + raises ( CallbackNotFound ); + + CallbackIDSeq get_callbacks(); + }; // Filter + + interface MappingFilter { + readonly attribute string constraint_grammar; + + readonly attribute CORBA::TypeCode value_type; + + readonly attribute any default_value; + + MappingConstraintInfoSeq add_mapping_constraints (in MappingConstraintPairSeq pair_list) + raises (InvalidConstraint, InvalidValue); + + void modify_mapping_constraints (in ConstraintIDSeq del_list, + in MappingConstraintInfoSeq modify_list) + raises (InvalidConstraint, InvalidValue, ConstraintNotFound); + + MappingConstraintInfoSeq get_mapping_constraints (in ConstraintIDSeq id_list) + raises (ConstraintNotFound); + + MappingConstraintInfoSeq get_all_mapping_constraints(); + + void remove_all_mapping_constraints(); + + void destroy(); + + boolean match (in any filterable_data, out any result_to_set) + raises (UnsupportedFilterableData); + + boolean match_structured (in CosNotification::StructuredEvent filterable_data, out any result_to_set) + raises (UnsupportedFilterableData); + + boolean match_typed (in CosNotification::PropertySeq filterable_data, out any result_to_set) + raises (UnsupportedFilterableData); + }; // MappingFilter + + + interface FilterFactory { + + Filter create_filter (in string constraint_grammar) + raises (InvalidGrammar); + + MappingFilter create_mapping_filter (in string constraint_grammar, in any default_value) + raises(InvalidGrammar); + }; // FilterFactory + + typedef long FilterID; + typedef sequence FilterIDSeq; + exception FilterNotFound {}; + + interface FilterAdmin { + FilterID add_filter (in Filter new_filter); + + void remove_filter (in FilterID filter) + raises (FilterNotFound); + + Filter get_filter (in FilterID filter) + raises (FilterNotFound); + + FilterIDSeq get_all_filters(); + + void remove_all_filters(); + }; // FilterAdmin +}; // CosNotifyFilter + + +#endif /* ifndef _COS_NOTIFYFILTER_IDL_ */ + -- cgit v1.2.3