div class="twikiTopBar">

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

CosNotifyFilter.idl

00001 //File: CosNotifyFilter.idl
00002 //Part of the Notification Service
00003 
00004 #ifndef _COS_NOTIFY_FILTER_IDL_
00005 #define _COS_NOTIFY_FILTER_IDL_
00006 
00007 // omniORB specific pragmas to insert extra includes into the stub header.
00008 
00009 #pragma prefix "omg.org"
00010 
00011 #include <CosNotifyComm.idl>
00012 
00013 module CosNotifyFilter {
00014 
00015         typedef long ConstraintID;
00016 
00017         struct ConstraintExp {
00018                 CosNotification::EventTypeSeq event_types;
00019                 string constraint_expr;
00020         };
00021 
00022         typedef sequence<ConstraintID> ConstraintIDSeq;
00023         typedef sequence<ConstraintExp> ConstraintExpSeq;
00024 
00025         struct ConstraintInfo {
00026                 ConstraintExp constraint_expression;
00027                 ConstraintID constraint_id;
00028         };
00029 
00030         typedef sequence<ConstraintInfo> ConstraintInfoSeq;
00031 
00032         struct MappingConstraintPair {
00033                 ConstraintExp constraint_expression;
00034                 any result_to_set;
00035         };
00036 
00037         typedef sequence<MappingConstraintPair> MappingConstraintPairSeq;
00038 
00039         struct MappingConstraintInfo {
00040                 ConstraintExp constraint_expression;
00041                 ConstraintID constraint_id;
00042                 any value;
00043         };
00044 
00045         typedef sequence<MappingConstraintInfo> MappingConstraintInfoSeq;
00046 
00047         typedef long CallbackID;
00048         typedef sequence<CallbackID> CallbackIDSeq;
00049 
00050         exception UnsupportedFilterableData {}; 
00051         exception InvalidGrammar {};
00052         exception InvalidConstraint {ConstraintExp constr;};
00053         exception DuplicateConstraintID {ConstraintID id;};
00054 
00055         exception ConstraintNotFound {ConstraintID id;};
00056         exception CallbackNotFound {};
00057 
00058         exception InvalidValue {ConstraintExp constr; any value;};
00059 
00060         interface Filter { 
00061 
00062                 readonly attribute string constraint_grammar; 
00063 
00064                 ConstraintInfoSeq add_constraints (
00065                                 in ConstraintExpSeq constraint_list)
00066                         raises (InvalidConstraint);
00067 
00068                 void modify_constraints (
00069                                 in ConstraintIDSeq del_list,
00070                                 in ConstraintInfoSeq modify_list)
00071                         raises (InvalidConstraint, ConstraintNotFound);
00072 
00073                 ConstraintInfoSeq get_constraints(
00074                                 in ConstraintIDSeq id_list)
00075                         raises (ConstraintNotFound);
00076 
00077                 ConstraintInfoSeq get_all_constraints();
00078 
00079                 void remove_all_constraints();
00080 
00081                 void destroy();
00082 
00083                 boolean match ( in any filterable_data )
00084                         raises (UnsupportedFilterableData);
00085 
00086                 boolean match_structured (
00087                         in CosNotification::StructuredEvent filterable_data )
00088                         raises (UnsupportedFilterableData);
00089 
00090                 boolean match_typed (
00091                         in CosNotification::PropertySeq filterable_data )
00092                         raises (UnsupportedFilterableData);
00093 
00094                 CallbackID attach_callback (
00095                                 in CosNotifyComm::NotifySubscribe callback);
00096 
00097                 void detach_callback ( in CallbackID callback)
00098                         raises ( CallbackNotFound );
00099 
00100                 CallbackIDSeq get_callbacks();
00101 
00102         }; // Filter 
00103 
00104         interface MappingFilter {
00105 
00106                 readonly attribute string constraint_grammar;
00107 
00108                 readonly attribute CORBA::TypeCode value_type;
00109 
00110                 readonly attribute any default_value;
00111 
00112                 MappingConstraintInfoSeq add_mapping_constraints (
00113                                 in MappingConstraintPairSeq pair_list)
00114                         raises (InvalidConstraint, InvalidValue);
00115 
00116                 void modify_mapping_constraints (
00117                                 in ConstraintIDSeq del_list,
00118                                 in MappingConstraintInfoSeq modify_list)
00119                         raises (InvalidConstraint, InvalidValue,
00120                                                 ConstraintNotFound);
00121 
00122                 MappingConstraintInfoSeq get_mapping_constraints (
00123                                 in ConstraintIDSeq id_list)
00124                         raises (ConstraintNotFound);
00125 
00126                 MappingConstraintInfoSeq get_all_mapping_constraints();
00127 
00128                 void remove_all_mapping_constraints();
00129 
00130                 void destroy();
00131 
00132                 boolean match ( in any filterable_data,
00133                                 out any result_to_set )
00134                         raises (UnsupportedFilterableData);
00135 
00136                 boolean match_structured (
00137                         in CosNotification::StructuredEvent filterable_data,
00138                                 out any result_to_set)
00139                         raises (UnsupportedFilterableData);
00140 
00141                 boolean match_typed (
00142                         in CosNotification::PropertySeq filterable_data,
00143                                 out any result_to_set)
00144                         raises (UnsupportedFilterableData);
00145 
00146         }; // MappingFilter
00147 
00148         interface FilterFactory {
00149 
00150                 Filter create_filter (
00151                                 in string constraint_grammar)
00152                         raises (InvalidGrammar);
00153 
00154                 MappingFilter create_mapping_filter (
00155                                 in string constraint_grammar,
00156                                 in any default_value)
00157                         raises(InvalidGrammar);
00158 
00159         }; // FilterFactory
00160 
00161         typedef long FilterID;
00162         typedef sequence<FilterID> FilterIDSeq;
00163 
00164         exception FilterNotFound {};
00165 
00166         interface FilterAdmin {
00167 
00168                 FilterID add_filter ( in Filter new_filter );
00169 
00170                 void remove_filter ( in FilterID filter )
00171                         raises ( FilterNotFound );
00172 
00173                 Filter get_filter ( in FilterID filter )
00174                         raises ( FilterNotFound );
00175 
00176                 FilterIDSeq get_all_filters();
00177 
00178                 void remove_all_filters();
00179 
00180         }; // FilterAdmin
00181 
00182 }; // CosNotifyFilter
00183 
00184 #endif /* _COS_NOTIFY_FILTER_IDL_ */

CosNotifyFilter.idl Source File | generated on Sun Apr 29 02:00:57 2007 by Doxygen 1.4.1 for DWARF