# CosEventDomainAdmin_EventDomain

### MODULE

CosEventDomainAdmin_EventDomain

### MODULE SUMMARY

This module implements the Event Domain interface.

### DESCRIPTION

To get access to all definitions include necessary `hrl` files by using:
`-include_lib("cosEventDomain/include/*.hrl").`

This module also exports the functions described in:

- CosNotification_QoSAdmin
- CosNotification_AdminPropertiesAdmin

### EXPORTS

`add_channel(EventDomain, Channel) -> MemberID`

Types:

`EventDomain = Channel = #objref`
`MemberID = long()`

Adds the given channel to the target domain. The channel must be a `CosNotifyChannelAdmin::EventChannel`.

`get_all_channels(EventDomain) -> MemberIDSeq`

Types:

`EventDomain = #objref`
`MemberIDSeq = [long()]`

Returns a a sequence of all channels associated with the target object.

`get_channel(EventDomain, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`MemberID = long()`
`Reply = Channel | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`
`Channel = #objref`

If the target domain have a `CosNotifyChannelAdmin::EventChannel` represented by the given id this channel is returned. Otherwise, an exception is raised.

`remove_channel(EventDomain, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`MemberID = long()`
`Reply = ok | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a `CosNotifyChannelAdmin::EventChannel` with the `MemberID` exists it will removed and all its `Connections` terminated. Otherwise an exception is raised.

`add_connection(EventDomain, Connection) -> Reply`

Types:

`EventDomain = #objref`
`Connection = 'CosEventDomainAdmin_Connection'{supplier_id=MemberID, consumer_id=MemberID, ctype=Type, notification_style=Style}`
`MemberID = long()`
`Type = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'`
`Style = 'Pull' | 'Push'`
`Reply = ConnectionID | {'EXCEPTION', Exc}`
`ConnectionID = long()`
`Exc = #'CosNotifyChannelAdmin_ChannelNotFound'{} | #'CosNotifyChannelAdmin_TypeError'{} | #'CosEventDomainAdmin_AlreadyExists'{} | #'CosEventDomainAdmin_DiamondCreationForbidden'{diam=RouteSeq} | #'CosEventDomainAdmin_CycleCreationForbidden'{cyc=MemberIDSeq}`
`RouteSeq = [MemberIDSeq]`
`MemberIDSeq = [long()]`

The Connection parameter must contain valid data to enable the target domain to setup a connection between two channels. The struct members `supplier_id` and `consumer_id` determines which channel should produce and consume events. which type of events and if the supplier should push or the consumer pull events is determined by `ctype` and `notification_style` respectively.

If the target domain is not able to setup the connection the appropriate exception is raised.

`get_all_connections(EventDomain) -> ConnectionIDSeq`

Types:

`EventDomain = #objref`
`ConnectionIDSeq = [long()]`

This operation returns a sequnce of all connetions within the target domain.

`get_connection(EventDomain, ConnectionID) -> Reply`

Types:

`EventDomain = #objref`
`ConnectionID = long()`
`Reply = Connection | {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}}`
`Connection = 'CosEventDomainAdmin_Connection'{supplier_id=MemberID, consumer_id=MemberID, ctype=Type, notification_style=Style}`
`MemberID = long()`
`Type = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'`
`Style = 'Pull' | 'Push'`

If a connection identified by the given id exists within the target domain, a `#'CosEventDomainAdmin_Connection'{}` which describe the connection is returned. Otherwise, an exception is raised.

`remove_connection(EventDomain, ConnectionID) -> Reply`

Types:

`EventDomain = #objref`
`ConnectionID = long()`
`Reply = ok | {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}}`

If the supplied connection id exists, the conection the id represents is terminated. Otherwise, an exception is raised.

`get_offer_channels(EventDomain, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`MemberID = long()`
`Reply = MemberIDSeq | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

This operation returns a sequence, containing the member id's of all channels within the target domain which will supply events to the channel identified by the given id. But, if no such id exists in this domain, an exception is raised.

`get_subscription_channels(EventDomain, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Reply = MemberIDSeq | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

This operations behaves like `get_subscription_channels`; the differnce is that the id's returned identifies channels which will consume events supplied by the channel associated with the given id.

`destroy(EventDomain) -> ok`

Types:

`EventDomain = #objref`

Calling this operation will terminate all connections within the target domain. The domain will terminate but all channels will not be affected.

`get_cycles(EventDomain) -> RouteSeq`

Types:

`EventDomain = #objref`
`RouteSeq = [MemberIDSeq]`
`MemberIDSeq = [long()]`

Returns a list of all cycles within the target domain.

`get_diamonds(EventDomain) -> DiamondSeq`

Types:

`EventDomain = #objref`
`DiamondSeq = [RouteSeq]`
`RouteSeq = [MemberIDSeq]`
`MemberIDSeq = [long()]`

Returns a list of all diamonds within the target domain

`set_default_consumer_channel(EventDomain, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Reply = MemberID | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`
`MemberID = long()`

If the given id represents a channel within the target domain, this channel will be used when connection a supplier client without specifying a certain channel. If no such channel exists an exceptions is raised.

`set_default_supplier_channel(EventDomain, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Reply = MemberID | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`
`MemberID = long()`

If the given id represents a channel within the target domain, this channel will be used when connection a consumer client without specifying a certain channel. If no such channel exists an exceptions is raised.

`connect_push_consumer(EventDomain, Consumer) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosEventComm::PushConsumer`
`Reply = CosNotifyChannelAdmin::ProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given PushConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_pull_consumer(EventDomain, Consumer) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosEventComm::PullConsumer`
`Reply = CosNotifyChannelAdmin::ProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given PullConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_push_supplier(EventDomain, Supplier) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosEventComm::PushSupplier`
`Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given PushSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_pull_supplier(EventDomain, Supplier) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosEventComm::PullSupplier`
`Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given PullSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_push_consumer(EventDomain, Consumer) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::StructuredPushConsumer`
`Reply = CosNotifyChannelAdmin::StructuredProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given StructuredPushConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_pull_consumer(EventDomain, Consumer) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::StructuredPullConsumer`
`Reply = CosNotifyChannelAdmin::StructuredProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given StructuredPullConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_push_supplier(EventDomain, Supplier) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::StructuredPushSupplier`
`Reply = CosNotifyChannelAdmin::StructuredProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given StructuredPushSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_pull_supplier(EventDomain, Supplier) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::StructuredPullSupplier`
`Reply = CosNotifyChannelAdmin::StructuredProxyPullConsume | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given StructuredPullSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_push_consumer(EventDomain, Consumer) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::SequencePushConsumer`
`Reply = CosNotifyChannelAdmin::SequenceProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given SequencePushConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_pull_consumer(EventDomain, Consumer) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::SequencePullConsumer`
`Reply = CosNotifyChannelAdmin::SequenceProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given SequencePullConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_push_supplier(EventDomain, Supplier) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::SequencePushSupplier`
`Reply = CosNotifyChannelAdmin::SequenceProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given SequencePushSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_pull_supplier(EventDomain, Supplier) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::SequencePullSupplier`
`Reply = CosNotifyChannelAdmin::SequenceProxyPullConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a default Channel have been set, this operation connects the given SequencePullSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_push_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosEventComm::PushConsumer`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::ProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given PushConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_pull_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosEventComm::PullConsumer`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::ProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given PullConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_push_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosEventComm::PushSupplier`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given PushSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_pull_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosEventComm::PullSupplier`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given PullSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_push_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::StructuredPushConsumer`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::StructuredProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given StructuredPushConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_pull_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::StructuredPullConsumer`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::StructuredProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given StructuredPullConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_push_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::StructuredPushSupplier`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::StructuredProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given StructuredPushSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_structured_pull_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::StructuredPullSupplier`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::StructuredProxyPullConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given StructuredPullSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_push_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::SequencePushConsumer`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::SequenceProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given SequencePushConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_pull_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Consumer = CosNotifyComm::SequencePullConsumer`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::SequenceProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given SequencePullConsumer to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_push_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::SequencePushSupplier`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::SequenceProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given SequencePushSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

`connect_sequence_pull_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply`

Types:

`EventDomain = #objref`
`Supplier = CosNotifyComm::SequencePullSupplier`
`MemberID = long()`
`Reply = CosNotifyChannelAdmin::SequenceProxyPullConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}`

If a Channel associated with the given MemberID exists within the target Domain, this operation connects the given SequencePullSupplier to it. Otherwise, the `#'CosNotifyChannelAdmin_ChannelNotFound'{}` exception is raised.

### AUTHORS

support - support@erlang.ericsson.se

cosEventDomain 1.1
Copyright © 1991-2003 Ericsson Utvecklings AB