Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

NotificationExtensions.idl

Go to the documentation of this file.
00001 #ifndef OF_NOTIFICATION_IDL 
00002 #define OF_NOTIFICATION_IDL
00003 
00009 /* docdef: notifext */
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    // The following constant declarations define the PrismTech
00023    // extended QoS property names and the associated values each
00024    // property can take on. The name/value pairs for each standard
00025    // property are grouped, beginning with a string constant defined
00026    // for the property name, followed by the values the property can
00027    // take on.
00028 
00029    const string AutoSequenceBatchSize = "AutoSequenceBatchSize";
00030    // AutoSequenceBatchSize takes a value of long.
00031 
00032    const string AutoSequenceTimeout = "AutoSequenceTimeout";
00033    // AutoSequenceTimeout takes a value of ulonglong.
00034 
00035    const string ThreadPoolSize = "ThreadPoolSize";
00036    // ThreadPoolSize takes a value of type long.
00037 
00038    const string ThreadIdleTime = "ThreadIdleTime";
00039    // ThreadIdleTime takes a value of type TimeBase::TimeT.
00040 
00041    const string DeadLetterDrop = "DeadLetterDrop";
00042    // DeadLetterDrop takes a value of type boolean.
00043 
00044    const string ReconnectInterval = "ReconnectInterval";
00045    // ReconnectInterval takes a value of type TimeBase::TimeT.
00046 
00047    const string MaxReconnectAttempts = "MaxReconnectAttempts";
00048    // MaxReconnectAttempts takes a value of type long.
00049 
00050    const string MaxInactivityInterval = "MaxInactivityInterval";
00051    // MaxInactivityInterval takes a value of type TimeBase::TimeT.
00052 
00053    const string MaxMemoryUsage = "MaxMemoryUsage";
00054    // MaxMemoryUsage takes a value of type ulonglong.
00055 
00056    const string DiscardedEventCount = "DiscardedEventCount";
00057    // EventsDiscarded takes on a value of type ulonglong.
00058 
00059    const string DiscardedEvents = "DiscardedEvents";
00060    // DiscardedEvents takes on a value of boolean.
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    // LazyAcknowledgeInterval takes a value of type long.
00079 
00080    // The number of unacknowledged events after which event delivery to the
00081    // <code>listener</code> should halt pending the next acknowledgement.
00082    const string MaxUnacknowledged = "MaxUnacknowledged";
00083    // MaxUnacknowledged takes a value of type ulonglong. The default value
00084    // of 0 represents "unlimited".
00085       
00086    const string ConnectedClient = "ConnectedClient";
00087    // ConnectedClient takes a value of type Object.
00088 
00089    const string EventIDSupported = "EventIDSupported";
00090    // EventIDSupported takes a value of type boolean.
00091 
00092    const string EventID = "EventID";
00093    // EventID takes a value of type unsigned long long.
00094 
00095    const string TransformerFactoryReference = "TransformerFactoryReference";
00096    // TransformerFactoryReference takes a value of type string.
00097    
00098    const string DomainName = "DomainName";
00099    // DomainName takes a value of type string.
00100 
00101    const string EventTypesEnabled = "EventTypesEnabled";
00102    // EventTypesEnabled takes a value of type string.
00103 
00104    const string DisconnectCallback = "DisconnectCallback";
00105    // DisconnectCallback takes a value of type boolean.
00106 
00107    const string AlwaysPull = "AlwaysPull";
00108    // AlwaysPull takes a value of type boolean.
00109    
00110    // Some strings identifying grammars supported by the
00111    // OpenFusion notification service.
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    }; // Transformer
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    }; // TransformerAdmin
00433 
00434    // Transform-enabled admins.
00435    interface TrConsumerAdmin :
00436       TransformerAdmin,
00437       CosNotifyChannelAdmin::ConsumerAdmin
00438    {};
00439    interface TrSupplierAdmin :
00440       TransformerAdmin,
00441       CosNotifyChannelAdmin::SupplierAdmin
00442    {};
00443  
00444    // Transform-enabled event-style proxies.
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    // Transform-enabled sequence proxies.
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    // Transform-enabled structured proxies.
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 }; // NotificationExtensions
00504 
00505 #endif /* OF_NOTIFICATION_IDL */