aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cosNotification/src/CosNotifyFilter.idl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cosNotification/src/CosNotifyFilter.idl')
-rw-r--r--lib/cosNotification/src/CosNotifyFilter.idl140
1 files changed, 140 insertions, 0 deletions
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<CosNotifyComm.idl>
+#include<CosNotification.idl>
+
+module CosNotifyFilter {
+ typedef long ConstraintID;
+ struct ConstraintExp {
+ CosNotification::EventTypeSeq event_types;
+ string constraint_expr;
+ };
+
+ typedef sequence<ConstraintID> ConstraintIDSeq;
+ typedef sequence<ConstraintExp> ConstraintExpSeq;
+ struct ConstraintInfo {
+ ConstraintExp constraint_expression;
+ ConstraintID constraint_id;
+ };
+ typedef sequence<ConstraintInfo> ConstraintInfoSeq;
+ struct MappingConstraintPair {
+ ConstraintExp constraint_expression;
+ any result_to_set;
+ };
+ typedef sequence<MappingConstraintPair> MappingConstraintPairSeq;
+ struct MappingConstraintInfo {
+ ConstraintExp constraint_expression;
+ ConstraintID constraint_id;
+ any value;
+ };
+ typedef sequence<MappingConstraintInfo> MappingConstraintInfoSeq;
+ typedef long CallbackID;
+ typedef sequence<CallbackID> 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<FilterID> 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_ */
+