COSNOTIFYCHANNELADMIN_CONSUMERADMIN(3erl)

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

πŸ’– NAME πŸ’–

CosNotifyChannelAdmin_ConsumerAdmin β€” okay bestie, this module is literally the whole implementation of the OMG CosNotifyChannelAdmin::ConsumerAdmin interface. no cap. that's the entire vibe. πŸŽ€


✨ DESCRIPTION ✨

So like, to even get at the record definitions for all the structures in here, you gotta do this first:

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

That's the door code. don't skip it, it's giving ✨mandatory✨.

This module ALSO exports the functions that live in these other modules, so like, it's a whole friend group:

  • CosNotification_QoSAdmin
  • CosNotifyComm_NotifySubscribe
  • CosNotifyFilter_FilterAdmin

πŸ‘‘ EXPORTS πŸ‘‘

_get_MyID(ConsumerAdmin) -> AdminID

Types:

ConsumerAdmin = #objref
AdminID = long()

The ID that the channel that made this thing handed back? Yeah, it's literally the exact same value chillin' inside this readonly attribute. same number, no edits. πŸ’…


_get_MyChannel(ConsumerAdmin) -> Channel

Types:

ConsumerAdmin = #objref
Channel = #objref

This readonly attribute is holding onto the reference of the channel that created it. it's the origin story fr fr. πŸ¦‹


_get_MyOperator(ConsumerAdmin) -> OpType

Types:

ConsumerAdmin = #objref
OpType = 'AND_OP' | 'OR_OP'

So when ConsumerAdmin's get created, an operation type gets supplied β€” either 'AND_OP' or 'OR_OP' β€” and that's what decides the semantics the target object uses when it's evaluating stuff against any associated Filter objects. it's the rules of the game, periodt. ⭐


_get_priority_filter(ConsumerAdmin) -> MappingFilter

Types:

ConsumerAdmin = MappingFilter = #objref

If one is set, this operation hands you back the associated priority MappingFilter. If not? You get a NIL object reference. sorry bestie, empty handed. πŸ™ˆ


_set_priority_filter(ConsumerAdmin, MappingFilter) -> ok

Types:

ConsumerAdmin = MappingFilter = #objref

Wanna attach a priority MappingFilter to the target object? This is the operation you gotta use. that's the only way. 😀


_get_lifetime_filter(ConsumerAdmin) -> MappingFilter

Types:

ConsumerAdmin = MappingFilter = #objref

Unless a lifetime MappingFilter has already been associated with the target object, this operation returns a NIL object reference. so if you're getting NIL... yeah, there's no lifetime filter. mystery solved. πŸ”₯


_set_lifetime_filter(ConsumerAdmin, MappingFilter) -> ok

Types:

ConsumerAdmin = MappingFilter = #objref

This operation associates a lifetime MappingFilter with the target object. boom. done. 🌸


_get_pull_suppliers(ConsumerAdmin) -> ProxyIDSeq

Types:

ConsumerAdmin = #objref
ProxyIDSeq = [ProxyID]
ProxyID = long()

This readonly attribute is keeping track of the Id's for ALL the PullProxies that the target object created and that are still alive. it's the attendance sheet and it updates itself. πŸ’œ


_get_push_suppliers(ConsumerAdmin) -> ProxyIDSeq

Types:

ConsumerAdmin = #objref
ProxyIDSeq = [ProxyID]
ProxyID = long()

Same energy as _get_pull_suppliers, except this one is holding the Id's for all the PushProxies that the target object created and that are still alive. push gang rise up. 🫢


get_proxy_supplier(ConsumerAdmin, ProxyID) -> Reply

Types:

ConsumerAdmin = #objref
ProxyID = long()
Reply = Proxy | {'EXCEPTION', #'CosNotifyChannelAdmin_ProxyNotFound'{}}
Proxy = #objref

If a proxy with the given Id exists, you get the reference to the object back. but if the object has terminated, or you handed over an incorrect Id? an exception gets raised. 😭 so double check that Id bestie.


obtain_notification_pull_supplier(ConsumerAdmin, ConsumerType) -> Reply

Types:

ConsumerAdmin = #objref
ConsumerType = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'
Reply = {Proxy, ProxyID}
Proxy = #objref
ProxyID = long()

Based on whatever you pass as the ConsumerType parameter, a proxy gets created that will accept events of that defined type. and you get an Id back along with the object reference. two for one, iconic. πŸŽ€


obtain_pull_supplier(ConsumerAdmin) -> Proxy

Types:

ConsumerAdmin = #objref
Proxy = #objref

This operation creates a brand new proxy that accepts #any{} events. that's it, that's the whole thing. ✨


obtain_notification_push_supplier(ConsumerAdmin, ConsumerType) -> Reply

Types:

ConsumerAdmin = #objref
ConsumerType = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'
Reply = {Proxy, ProxyID}
Proxy = #objref
ProxyID = long()

This operation creates a proxy that accepts events of the type described by the ConsumerType parameter. A unique Id comes back as an out parameter. unique!! don't lose it!! πŸ’…


obtain_push_supplier(ConsumerAdmin) -> Proxy

Types:

ConsumerAdmin = #objref
Proxy = #objref

The object this function creates is a proxy that accepts #any{} events. yes, same vibe as the pull one, but push. balance. 🌈


destroy(ConsumerAdmin) -> ok

Types:

ConsumerAdmin = #objref

If you wanna terminate the target object, this is the operation you should use. and heads up β€” the associated Channel will be notified. so like, it knows. πŸ‘€


okay that's literally everything, every flag, every type, every exception, all accounted for. nothing skipped, nothing invented. you're so welcome bestie 🧚

kisses and good vibes from Ericsson AB πŸ’– β€” this lil page is from cosNotification version 5.2.2, and it's signing off as CosNotifyC...nsumerAdmin(3) 🌟 bye bye, go slay those proxies πŸŽ€πŸ’œ

πŸ“¦ where this page comes from