COSEVENTDOMAINADMIN_EVENTDOMAIN(3erl)

πŸ“¦
version 5.2.2 Β· 2 versions
, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

CosEventDomainAdmin_EventDomain β€” it's the Erlang module that implements the Event Domain interface, and yes bestie this is the manual page CosEventDomainAdmin_EventDomain(3) from the Erlang Module Definition section 🫢


🌸 DESCRIPTION 🌸

Okay so first things first: to get access to all the definitions, you gotta include the necessary hrl files, like this:

-include_lib("cosEventDomain/include/*.hrl").

Not optional, not vibes-based, it's literally how you get the definitions πŸ’…

This module also exports the functions described in:

  • CosNotification_QoSAdmin
  • CosNotification_AdminPropertiesAdmin

So it's giving main character energy with a whole ensemble cast. Periodt ✨


✨ 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. Like, that's the whole assignment, no substitutions allowed πŸ¦‹


πŸŽ€ get_all_channels(EventDomain) -> MemberIDSeq

Types:

EventDomain = #objref
MemberIDSeq = [long()]

Returns a a sequence of all channels associated with the target object. (And yes, the manpage itself says "a a" β€” iconic typo behavior, we keep it πŸ’€)


πŸŽ€ get_channel(EventDomain, MemberID) -> Reply

Types:

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

If the target domain has a CosNotifyChannelAdmin::EventChannel represented by the given id, this channel is returned. Otherwise? An exception gets raised. That's it, that's the rule 🌈


πŸŽ€ 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 be removed and all its Connections terminated. Otherwise an exception is raised. So like, the connections go down with the ship, no survivors πŸ”₯


πŸŽ€ 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 determine which channel should produce and consume events. Which type of events, and whether the supplier should push or the consumer pull events, is determined by ctype and notification_style respectively. iykyk 🧚

If the target domain is not able to setup the connection, the appropriate exception is raised. That's a whole list of possible exceptions up there, so, vibe check passed or not, no in-between πŸ’œ


πŸŽ€ get_all_connections(EventDomain) -> ConnectionIDSeq

Types:

EventDomain = #objref
ConnectionIDSeq = [long()]

This operation returns a sequence of all connections within the target domain. Every single one. The whole group chat πŸ‘‘


πŸŽ€ 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 describes the connection is returned. Otherwise, an exception is raised. Simple as that bestie πŸ“


πŸŽ€ remove_connection(EventDomain, ConnectionID) -> Reply

Types:

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

If the supplied connection id exists, the connection the id represents is terminated. Otherwise, an exception is raised. Blocked and deleted, fr fr πŸ’…


πŸŽ€ 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. It's giving "who's feeding this channel" energy 🌸


πŸŽ€ get_subscription_channels(EventDomain, MemberID) -> Reply

Types:

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

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

Not me reading that back β€” yes, the manpage literally says it behaves like get_subscription_channels inside the get_subscription_channels entry πŸ’€ we're just reporting what's on the page, no editing, no cap.

πŸŽ€ 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. So the domain leaves, the channels stay unbothered, thriving, main character energy intact ✨


πŸŽ€ get_cycles(EventDomain) -> RouteSeq

Types:

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

Returns a list of all cycles within the target domain. Round and round we go πŸŒ€


πŸŽ€ get_diamonds(EventDomain) -> DiamondSeq

Types:

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

Returns a list of all diamonds within the target domain. Yes, diamonds πŸ’Ž obsessed with the naming honestly.


πŸŽ€ 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 connecting a supplier client without specifying a certain channel. If no such channel exists an exceptions is raised. It's the fallback bestie, the "you didn't pick one so I picked for you" 🫢


πŸŽ€ 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 connecting a consumer client without specifying a certain channel. If no such channel exists an exceptions is raised. Same deal, other direction πŸ”„


πŸŽ€ 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. No default, no connection, no mercy 😭


πŸŽ€ 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.

Heads up: the return type up there really does say CosNotifyChannelAdmin::ProxyPushConsumer on the pull supplier one. That's what the page says, we are not touching it, we are not fixing it πŸ™ˆ

πŸŽ€ 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. Now we're in structured territory, highkey fancy ✨


πŸŽ€ 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.


And that's where part 1 wraps, bestie β€” there's more coming, don't go anywhere πŸŒˆπŸ’–

connect_structured_pull_supplier(EventDomain, Supplier) -> Reply

Types:

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

okay so if a default Channel has been set, this operation connects the given StructuredPullSupplier to it. otherwise? boom β€” the #'CosNotifyChannelAdmin_ChannelNotFound'{} exception is raised. no cap. πŸ’…


connect_sequence_push_consumer(EventDomain, Consumer) -> Reply

Types:

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

if a default Channel has been set, this one connects the given SequencePushConsumer to it. if not, the #'CosNotifyChannelAdmin_ChannelNotFound'{} exception gets raised. it's giving very clear boundaries bestie. ✨


connect_sequence_pull_consumer(EventDomain, Consumer) -> Reply

Types:

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

so if a default Channel has been set, this operation connects the given SequencePullConsumer to it. no default Channel? the #'CosNotifyChannelAdmin_ChannelNotFound'{} exception is raised. periodt. πŸŽ€


connect_sequence_push_supplier(EventDomain, Supplier) -> Reply

Types:

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

if a default Channel has been set, this connects the given SequencePushSupplier to it. otherwise, the #'CosNotifyChannelAdmin_ChannelNotFound'{} exception is raised. lowkey iconic how consistent this is. πŸ¦‹


connect_sequence_pull_supplier(EventDomain, Supplier) -> Reply

Types:

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

if a default Channel has been set, this operation connects the given SequencePullSupplier to it. if there is no default Channel, the #'CosNotifyChannelAdmin_ChannelNotFound'{} exception is raised. fr fr. 🌸


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. main character energy only. πŸ‘‘


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. it's giving exact match or nothing. πŸ’–


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. no in-between bestie. 🌈


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. yes the Reply type says ProxyPushConsumer β€” keep it exactly, don't touch it. πŸ’…


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. obsessed with the precision. 🫢


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. not me checking the MemberID twice. 😭


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. vibe check passed only if the Channel is actually there. πŸ”₯


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. it's giving structured and unbothered. 🧚


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. simple as that bestie. πŸ’œ


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. no guessing games. 🌟


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. periodt. πŸ’…


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. that's the whole with_id crew, ate and left no crumbs. πŸ“


okay that's the export list wrapped bestie πŸ’– shoutout to Ericsson AB for cosEventDomain 5.2.2, and the page is CosEventDo...EventDomain(3) β€” mwah πŸ’‹

πŸ“¦ where this page comes from