00001 #ifndef OF_NOTIFICATION_IDL
00002 #define OF_NOTIFICATION_IDL
00003
00009
00010
00011 #include <TimeBase.idl>
00012
00013 #include <CosNotifyComm.idl>
00014 #include <CosNotification.idl>
00015 #include <CosNotifyFilter.idl>
00016 #include <CosNotifyChannelAdmin.idl>
00017
00018 #pragma prefix "prismt.com/cos/CosNotification"
00019
00020 module NotificationExtensions
00021 {
00022
00023
00024
00025
00026
00027
00028
00029 const string AutoSequenceBatchSize = "AutoSequenceBatchSize";
00030
00031
00032 const string AutoSequenceTimeout = "AutoSequenceTimeout";
00033
00034
00035 const string ThreadPoolSize = "ThreadPoolSize";
00036
00037
00038 const string ThreadIdleTime = "ThreadIdleTime";
00039
00040
00041 const string DeadLetterDrop = "DeadLetterDrop";
00042
00043
00044 const string ReconnectInterval = "ReconnectInterval";
00045
00046
00047 const string MaxReconnectAttempts = "MaxReconnectAttempts";
00048
00049
00050 const string MaxInactivityInterval = "MaxInactivityInterval";
00051
00052
00053 const string MaxMemoryUsage = "MaxMemoryUsage";
00054
00055
00056 const string DiscardedEventCount = "DiscardedEventCount";
00057
00058
00059 const string DiscardedEvents = "DiscardedEvents";
00060
00061
00062
00063 const string MaxMemoryUsagePolicy = "MaxMemoryUsagePolicy";
00064 const short PurgeEvents = 0;
00065 const short RejectEvents = 1;
00066 const short DiscardEvents = 2;
00067
00068 const string AcknowledgeMode = "AcknowledgeMode";
00069 const short AutoAcknowledge = 0;
00070 const short ClientAcknowledge = 1;
00071 const short LazyAcknowledge = 2;
00072
00073 const string AcknowledgeLevel = "AcknowledgeLevel";
00074 const short LocalAcknowledge = 0;
00075 const short GlobalAcknowledge = 1;
00076
00077 const string LazyAcknowledgeInterval = "LazyAcknowledgeInterval";
00078
00079
00080
00081
00082 const string MaxUnacknowledged = "MaxUnacknowledged";
00083
00084
00085
00086 const string ConnectedClient = "ConnectedClient";
00087
00088
00089 const string EventIDSupported = "EventIDSupported";
00090
00091
00092 const string EventID = "EventID";
00093
00094
00095 const string TransformerFactoryReference = "TransformerFactoryReference";
00096
00097
00098 const string DomainName = "DomainName";
00099
00100
00101 const string EventTypesEnabled = "EventTypesEnabled";
00102
00103
00104 const string DisconnectCallback = "DisconnectCallback";
00105
00106
00107 const string AlwaysPull = "AlwaysPull";
00108
00109
00110
00111
00112 const string DefaultGrammar = "EXTENDED_TCL";
00113 const string SQL92Grammar = "SQL92";
00114 const string SimpleGrammar = "SimpleGrammar";
00115
00119 typedef unsigned long long evID;
00120
00124 typedef sequence <evID> evIDSeq;
00125
00129 typedef sequence <octet> OctetSeq;
00130
00134 typedef sequence <any> AnySeq;
00135
00139 exception AcknowledgeError {};
00140
00144 exception NoSuchMessage
00145 {
00146 evID event;
00147 };
00148
00152 typedef string ID;
00153
00157 typedef sequence<ID> IDSeq;
00158
00162 exception IDAlreadyExists
00163 {
00164 ID identifier;
00165 };
00166
00170 exception IDNotFound
00171 {
00172 ID identifier;
00173 };
00174
00178 typedef long BridgeID;
00179
00183 typedef sequence<BridgeID> BridgeIDSeq;
00184
00188 exception BridgeNotFound {};
00189
00193 interface Bridge : CosNotification::AdminPropertiesAdmin
00194 {
00198 readonly attribute BridgeID id;
00199
00204 readonly attribute CosNotifyChannelAdmin::ChannelID channel;
00205
00210 readonly attribute CosNotifyChannelAdmin::AdminID consumerAdmin;
00211
00216 readonly attribute CosNotifyChannelAdmin::AdminID supplierAdmin;
00217
00222 readonly attribute CosNotifyChannelAdmin::ProxyID proxySupplier;
00223
00228 readonly attribute CosNotifyChannelAdmin::ProxyID proxyConsumer;
00229
00233 void destroy ();
00234 };
00235
00239 interface BridgeFactory
00240 {
00250 Bridge createBridge
00251 (
00252 in CosNotifyChannelAdmin::ChannelID channel,
00253 in CosNotification::AdminProperties initialAdmin,
00254 out BridgeID id
00255 )
00256 raises
00257 (
00258 CosNotifyChannelAdmin::ChannelNotFound,
00259 CosNotification::UnsupportedAdmin
00260 );
00261
00266 BridgeIDSeq getAllBridges ();
00267
00275 Bridge getBridge (in BridgeID id) raises (BridgeNotFound);
00276 };
00277
00281 exception InvalidTransformerType
00282 {
00283 string reason;
00284 };
00285
00289 interface Transformer
00290 {
00295 readonly attribute CosNotification::EventTypeSeq eventTypes;
00296
00301 readonly attribute string transformerType;
00302
00306 readonly attribute any data;
00307
00313 void destroy ();
00314
00323 any transform (in any event);
00324
00333 CosNotification::StructuredEvent
00334 transform_structured (in CosNotification::StructuredEvent event);
00335
00336 };
00337
00341 interface TransformerFactory
00342 {
00356 Transformer createTransformer
00357 (
00358 in CosNotification::EventTypeSeq eventTypes,
00359 in string transformerT,
00360 in any data
00361 )
00362 raises (InvalidTransformerType);
00363 };
00364
00368 typedef long TransformerID;
00369
00373 typedef sequence<TransformerID> TransformerIDSeq;
00374
00378 exception TransformerNotFound
00379 {
00380 TransformerID id;
00381 };
00382
00386 interface TransformerAdmin
00387 {
00393 attribute boolean filterFirst;
00394
00402 TransformerID addTransformer (in Transformer trans);
00403
00410 void removeTransformer (in TransformerID id)
00411 raises (TransformerNotFound);
00412
00419 Transformer getTransformer (in TransformerID id)
00420 raises (TransformerNotFound);
00421
00426 TransformerIDSeq getAllTransformers ();
00427
00431 void removeAllTransformers ();
00432 };
00433
00434
00435 interface TrConsumerAdmin :
00436 TransformerAdmin,
00437 CosNotifyChannelAdmin::ConsumerAdmin
00438 {};
00439 interface TrSupplierAdmin :
00440 TransformerAdmin,
00441 CosNotifyChannelAdmin::SupplierAdmin
00442 {};
00443
00444
00445 interface TrProxyPushConsumer :
00446 TransformerAdmin,
00447 CosNotifyChannelAdmin::ProxyPushConsumer,
00448 CosEventChannelAdmin::ProxyPushConsumer
00449 {};
00450 interface TrProxyPushSupplier :
00451 TransformerAdmin,
00452 CosNotifyChannelAdmin::ProxyPushSupplier,
00453 CosEventChannelAdmin::ProxyPushSupplier
00454 {};
00455 interface TrProxyPullConsumer :
00456 TransformerAdmin,
00457 CosNotifyChannelAdmin::ProxyPullConsumer,
00458 CosEventChannelAdmin::ProxyPullConsumer
00459 {};
00460 interface TrProxyPullSupplier :
00461 TransformerAdmin,
00462 CosNotifyChannelAdmin::ProxyPullSupplier,
00463 CosEventChannelAdmin::ProxyPullSupplier
00464 {};
00465
00466
00467 interface TrSequenceProxyPushConsumer :
00468 TransformerAdmin,
00469 CosNotifyChannelAdmin::SequenceProxyPushConsumer
00470 {};
00471 interface TrSequenceProxyPushSupplier :
00472 TransformerAdmin,
00473 CosNotifyChannelAdmin::SequenceProxyPushSupplier
00474 {};
00475 interface TrSequenceProxyPullConsumer :
00476 TransformerAdmin,
00477 CosNotifyChannelAdmin::SequenceProxyPullConsumer
00478 {};
00479 interface TrSequenceProxyPullSupplier :
00480 TransformerAdmin,
00481 CosNotifyChannelAdmin::SequenceProxyPullSupplier
00482 {};
00483
00484
00485 interface TrStructuredProxyPushConsumer :
00486 TransformerAdmin,
00487 CosNotifyChannelAdmin::StructuredProxyPushConsumer
00488 {};
00489 interface TrStructuredProxyPushSupplier :
00490 TransformerAdmin,
00491 CosNotifyChannelAdmin::StructuredProxyPushSupplier
00492 {};
00493 interface TrStructuredProxyPullConsumer :
00494 TransformerAdmin,
00495 CosNotifyChannelAdmin::StructuredProxyPullConsumer
00496 {};
00497 interface TrStructuredProxyPullSupplier :
00498 TransformerAdmin,
00499 CosNotifyChannelAdmin::StructuredProxyPullSupplier
00500 {};
00501
00502
00503 };
00504
00505 #endif