blob: c6498ddcd033b59172b1f3adc84b7c81e0d7b6eb (
plain) (
tree)
|
|
#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_ */
|