orber_ifr(3)

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

orber_ifr πŸ’…βœ¨

The Interface Repository stores representations of IDL information

okay bestie, welcome to the module that keeps receipts on all your IDL. this is orber_ifr and it's a whole mood.


NAME πŸŽ€

orber_ifr β€” the Interface Repository, and it stores representations of IDL information. that's the whole job. she's a record-keeper. an archivist. the girl with the labelled boxes. πŸ’œ


DESCRIPTION 🌸

okay so. this module is where all the functions for managing the Interface Repository live β€” the IFR, for short. (yes we abbreviate, we're busy.)

big disclaimer before we go any further, no cap: this documentation is meant to be used together with the documentation in chapter 6 of 2.3. don't skip it. she's not optional, she's required reading, iykyk.

and here's the thing that trips people up β€” whenever this manual page says "IFR object", it does not mean a CORBA object. it means a pseudo object that exists only so you can interact with the IFR. it's giving fake-ID-but-for-objects. πŸ’€ so don't go treating it like a real CORBA object, bestie, because she will not behave like one.


INITIALIZATION OF THE IFR πŸ¦‹

so like, before you can do literally anything, you gotta set her up. ✨ the functions below initialize the Interface Repository and get you that very first reference to the repository. think of it as, like, unlocking the front door before you can even look at the furniture.


EXPORTS πŸ’–

  • init(Nodes,Timeout) -> ok

Types:

Nodes = list()
Timeout = integer() | infinity

call this one to initialize the IFR, periodt. she creates all the mnesia tables you're gonna need. but heads up β€” a mnesia schema should already exist, and mnesia must be running. no schema, no mnesia, no IFR. that's the vibe check and you already failed it if you skipped that step. 🫢

  • find_repository() -> #IFR_Repository_objref

this is how you find the IFR object reference for the Repository. πŸ‘‘

use this reference when you're adding objects to the IFR, and when you're extracting info back out of the IFR. both directions. every time.

and the cute part? the first time you call this function, she creates the repository and all the primitive definitions. so like, first call does the heavy lifting, and the rest of the calls just vibe. 🌈


GENERAL METHODS 🧚

alright so these next ones are the methods of the IFR. and the first argument is always an #IFR_objref β€” that's the IFR (pseudo)object you're applying the method to. πŸ’…

now, why would you use these general ones? because they're the ones that work when you don't know what type of IFR object you're holding. mystery object? these functions don't care, they'll figure it out.

but β€” and this is the tradeoff, bestie β€” they are somewhat slower than the specific functions listed further down, because those specific ones only accept one particular type of IFR object as the first argument. so it's giving: flexible vs. fast. choose your fighter. ⭐


EXPORTS πŸ’–

  • get_def_kind(Objref) -> Return

Types:

Objref = #IFR_objref
Return = atom() (one of dk_none, dk_all, dk_Attribute,
dk_Constant, dk_Exception, dk_Interface, dk_Module,
dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union,
dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed,
dk_Sequence, dk_Array, dk_Repository)

Objref can be an IFR object of any kind, no discrimination here. she hands you back the definition kind of the IFR object. it's the "so what are you?" function. πŸ”₯

  • destroy(Objref) -> Return

Types:

Objref = #IFR_object
Return = tuple()

Objref is an IFR object of any kind β€” except IRObject, Contained and Container. those three? not invited. πŸ™ˆ

she destroys that object and its contents (if it has any). and the return value is just whatever mnesia:transaction returns. so like, she's honest about it, she passes the receipt straight through.

  • get_id(Objref) -> Return

Types:

Objref = #IFR_object
Return = string()

Objref is an IFR object of any kind that inherits from Contained. returns the repository id of that object. the id. the name tag. 🏷️

  • set_id(Objref,Id) -> ok

Types:

Objref = #IFR_object
Id = string()

Objref is an IFR object of any kind that inherits from Contained. sets the repository id of that object. you're rebranding her. πŸ’…

  • get_name(Objref) -> Return

Types:

Objref = #IFR_object
Return = string()

Objref is an IFR object of any kind that inherits from Contained. returns the name of that object. yes, she knows her own name. icon behaviour. πŸ‘‘

  • set_name(Objref,Name) -> ok

Types:

Objref = #IFR_object
Name = string()

Objref is an IFR object of any kind that inherits from Contained. sets the name of that object.

  • get_version(Objref) -> Return

Types:

Objref = #IFR_object
Return = string()

Objref is an IFR object of any kind that inherits from Contained. returns the version of that object.

  • set_version(Objref,Version) -> ok

Types:

Objref = #IFR_object
Version = string()

Objref is an IFR object of any kind that inherits from Contained. sets the version of that object. new version, new me. ✨

  • get_defined_in(Objref) -> Return

Types:

Objref = #IFR_object
Return = #IFR_Container_objref

Objref is an IFR object of any kind that inherits from Contained. returns the Container object that this object is defined in. it's giving "who's your mother?" πŸ’€

  • get_absolute_name(Objref) -> Return

Types:

Objref = #IFR_object
Return = string()

Objref is an IFR object of any kind that inherits from Contained. returns the absolute (scoped) name of that object. the full government name. πŸŽ€

  • get_containing_repository(Objref) -> Return

Types:

Objref = #IFR_object
Return = #IFR_Repository_objref

Objref is an IFR object of any kind that inherits from Contained. returns the Repository that you eventually reach by recursively following the object's defined_in attribute. yes, recursively. she climbs the whole family tree. 🌳

  • describe(Objref) -> Return

Types:

Objref = #IFR_object
Return = tuple() (a contained_description record) |
{exception, _}

Objref is an IFR object of any kind that inherits from Contained. returns a tuple describing the object. or an {exception, _}, if she's feeling dramatic. 😭

  • move(Objref,New_container,New_name,New_version) -> Return

Types:

Objref = #IFR_objref
New_container = #IFR_Container_objref
New_name = string()
New_version = string()
Return = ok | {exception, _}

Objref is an IFR object of any kind that inherits from Contained. New_container is an IFR object of any kind that inherits from Container.

she removes Objref from its current Container and adds it to New_container. then the name attribute gets changed to New_name and the version attribute gets changed to New_version. it's a whole relocation arc. main character energy. πŸ’…βœ¨

  • lookup(Objref,Search_name) -> Return

Types:

Objref = #IFR_objref
Search_name = string()
Return = #IFR_object

Objref is an IFR object of any kind that inherits from Container. returns an IFR object identified by search_name, which is a scoped name. she found her. πŸ”

  • contents(Objref,Limit_type,Exclude_inherited) -> Return

Types:

Objref = #IFR_objref
Limit_type = atom() (one of dk_none, dk_all, dk_Attribute,
dk_Constant, dk_Exception, dk_Interface, dk_Module,
dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union,
dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed,
dk_Sequence, dk_Array, dk_Repository)
Exclude_inherited = atom() (true or false)
Return = list() (a list of IFR#_objects)

Objref is an IFR object of any kind that inherits from Container. returns the contents of that IFR object. dump the whole bag out on the bed. πŸ‘œ

  • lookup_name(Objref,Search_name,Levels_to_search, Limit_type, Exclude_inherited) -> Return

Types:

Objref = #IFR_objref
Search_name = string()
Levels_to_search = integer()
Limit_type = atom() (one of dk_none, dk_all, dk_Attribute,
dk_Constant, dk_Exception, dk_Interface, dk_Module,
dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union,
dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed,
dk_Sequence, dk_Array, dk_Repository)
Exclude_inherited = atom() (true or false)
Return = list() (a list of #IFR_objects)

Objref is an IFR object of any kind that inherits from Container. returns a list of #IFR_objects with an id matching Search_name. and you get to say how many Levels_to_search. deep dive or surface level, your call. 🌊

  • describe_contents(Objref, Limit_type, Exclude_inherited, Max_returned_objs) -> Return

Types:

Objref = #IFR_objref
Limit_type = atom() (one of dk_none, dk_all, dk_Attribute,
dk_Constant, dk_Exception, dk_Interface, dk_Module,
dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union,
dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed,
dk_Sequence, dk_Array, dk_Repository)
Exclude_inherited = atom() (true or false)
Return = list() (a list of tuples (contained_description
records) | {exception, _}

Objref is an IFR object of any kind that inherits from Container. returns a list of descriptions of the IFR objects sitting in this Container's contents. and yeah, Max_returned_objs is doing exactly what it sounds like. πŸ’€

  • create_module(Objref,Id,Name,Version) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Return = #IFR_ModuleDef_objref

Objref is an IFR object of any kind that inherits from Container. creates an IFR object of the type ModuleDef. ✨

  • create_constant(Objref,Id,Name,Version,Type,Value) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Type = #IFR_IDLType_objref
Value = any()
Return = #IFR_ConstantDef_objref

Objref is an IFR object of any kind that inherits from Container. creates an IFR object of the type ConstantDef. and Value can be any(), so like, go off. πŸŽ€

  • create_struct(Objref,Id,Name,Version,Members) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Members = list() (list of structmember records)
Return = #IFR_StructDef_objref

Objref is an IFR object of any kind that inherits from Container. creates an IFR object of the type StructDef. Members is a list of structmember records, fr fr. πŸ¦‹

  • create_union(Objref,Id,Name,Version,Discriminator_type,Members) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Discriminator_type = #IFR_IDLType_Objref
Members = list() (list of unionmember records)
Return = #IFR_UnionDef_objref

Objref is an IFR object of any kind that inherits from Container. creates an IFR object of the type UnionDef. note the Discriminator_type is an #IFR_IDLType_Objref, and Members is a list of unionmember records. 🌸

  • create_enum(Objref,Id,Name,Version,Members) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Members = list() (list of strings)
Return = #IFR_EnumDef_objref

Objref is an IFR object of any kind that inherits from Container. creates an IFR object of the type EnumDef. here Members is just a list of strings, lowkey the easiest one. πŸ’œ

  • create_alias(Objref,Id,Name,Version,Original_type) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Original_type = #IFR_IDLType_Objref
Return = #IFR_AliasDef_objref

Objref is an IFR object of any kind that inherits from Container. creates an IFR object of the type AliasDef, with Original_type being an #IFR_IDLType_Objref. 🫢


and that's part one bestie, we are SO not done β€” more coming πŸ’–

Objref is any IFR object that inherits from Container, and it hands you back a brand-new IFR object of the type AliasDef. ✨


create_interface(Objref,Id,Name,Version,Base_interfaces) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Base_interfaces = list() (a list of IFR_InterfaceDef_objrefs that this interface inherits from
Return = #IFR_InterfaceDef_objref

Objref = any IFR object that inherits from Container. This one builds you an IFR object of the type InterfaceDef. πŸ’…

create_exception(Objref,Id,Name,Version,Members) -> Return

Types:

Objref = #IFR_objref
Id = string()
Name = string()
Version = string()
Members = list() (list of structmember records)
Return = #IFR_ExceptionDef_objref

Objref = any IFR object that inherits from Container. Spins up an IFR object of the type ExceptionDef. 🫢

get_type(Objref) -> Return

Types:

Objref = #IFR_objref
Return = tuple() (a typecode tuple)

Objref has to be an IFR object of any kind that inherits from IDLType, or an IFR object of the kind ConstantDef, ExceptionDef or AttributeDef. Gives you back the typecode of that IFR object. πŸ¦‹

lookup_id(Objref,Search_id) -> Return

Types:

Objref = #IFR_Repository_objref
Search_id = string()
Return = #IFR_objref

Hands you the IFR object that matches Search_id. πŸ”

get_primitive(Objref,Kind) -> Return

Types:

Objref = #IFR_Repository_objref
Kind = atom() (one of pk_null, pk_void, pk_short, pk_long,
pk_ushort, pk_ulong, pk_float, pk_double, pk_boolean, pk_char,
pk_octet, pk_any, pk_TypeCode, pk_Principal, pk_string,
pk_wstring, pk_fixed, pk_objref)
Return = #IFR_PrimitiveDef_objref

Returns a PrimitiveDef of whatever kind you asked for. Pick your fighter from that atom list, bestie. πŸ’–

create_string(Objref,Bound) -> Return

Types:

Objref = #IFR_Repository_objref
Bound = integer() (unsigned long /= 0)
Return = #IFR_StringDef_objref

Creates an IFR objref of the type StringDef. πŸŽ€

create_wstring(Objref,Bound) -> Return

Types:

Objref = #IFR_Repository_objref
Bound = integer() (unsigned long /= 0)
Return = #IFR_WstringDef_objref

Creates an IFR objref of the type WstringDef. πŸŽ€

create_fixed(Objref,Digits,Scale) -> Return

Types:

Objref = #IFR_Repository_objref
Digits = Scale = integer()
Return = #IFR_FixedDef_objref

Creates an IFR objref of the type FixedDef. Both Digits and Scale are integers, yes ma'am. ✨

create_sequence(Objref,Bound,Element_type) -> Return

Types:

Objref = #IFR_Repository_objref
Bound = integer() (unsigned long)
Element_type = #IFR_IDLType_objref
Return = #IFR_SequenceDef_objref

Creates an IFR objref of the type SequenceDef. 🧚

create_array(Objref,Length,Element_type) -> Return

Types:

Objref = #IFR_Repository_objref
Bound = integer() (unsigned long)
Element_type = #IFR_IDLType_objref
Return = #IFR_ArrayDef_objref

Creates an IFR objref of the type ArrayDef. 🌸

create_idltype(Objref,Typecode) -> Return

Types:

Objref = #IFR_Repository_objref
Typecode = tuple() (a typecode tuple)
Return = #IFR_IDLType_objref

Creates an IFR objref of the type IDLType. πŸ”₯

get_type_def(Objref) -> Return

Types:

Objref = #IFR_objref
Return = #IFR_IDLType_objref

Objref has to be an IFR object of the kind ConstantDef or AttributeDef. You get back an IFR object of the type IDLType that describes the type of the IFR object. πŸ’œ

set_type_def(Objref,TypeDef) -> Return

Types:

Objref = #IFR_objref
TypeDef = #IFR_IDLType_objref
Return = ok | {exception, _}

Objref = an IFR object of the kind ConstantDef or AttributeDef. Sets the type_def of the IFR object. πŸ’…

get_value(Objref) -> Return

Types:

Objref = #IFR_ConstantDef_objref
Return = any()

Returns the value attribute of an IFR object of the type ConstantDef. πŸ“

set_value(Objref,Value) -> Return

Types:

Objref = #IFR_ConstantDef_objref
Value = any()
Return = ok | {exception, _}

Sets the value attribute of an IFR object of the type ConstantDef. ✨

get_members(Objref) -> Return

Types:

Objref = #IFR_objref
Return = list()

Objref is an IFR object of the kind StructDef, UnionDef, EnumDef or ExceptionDef. For StructDef, UnionDef and ExceptionDef: you get a list of structmember records, which are the constituent parts of the object. For EnumDef: you get a list of strings describing the enumerations. Two flavours, one function, iconic. πŸ‘‘

set_members(Objref,Members) -> Return

Types:

Objref = #IFR_objref
Members = list()
Return = ok | {exception, _}

Objref is an IFR object of the kind StructDef, UnionDef, EnumDef or ExceptionDef. For StructDef, UnionDef and ExceptionDef: Members is a list of structmember records. For EnumDef: Members is a list of strings describing the enumerations. It sets the members attribute, which are the constituent parts of the exception. πŸ’–

get_discriminator_type(Objref) -> Return

Types:

Objref = #IFR_UnionDef_objref
Return = tuple() (a typecode tuple)

Returns the discriminator typecode of an IFR object of the type UnionDef. 🌈

get_discriminator_type_def(Objref) -> Return

Types:

Objref = #IFR_UnionDef_objref
Return = #IFR_IDLType_objref

Returns an IFR object of the type IDLType describing the discriminator type of an IFR object of the type UnionDef. πŸ¦‹

set_discriminator_type_def(Objref,TypeDef) -> Return

Types:

Objref = #IFR_UnionDef_objref
Return = #IFR_IDLType_objref

Sets the attribute discriminator_type_def, an IFR object of the type IDLType describing the discriminator type of an IFR object of the type UnionDef. πŸ’…

get_original_type_def(Objref) -> Return

Types:

Objref = #IFR_AliasDef_objref
Return = #IFR_IDLType_objref

Returns an IFR object of the type IDLType describing the original type. ✨

set_original_type_def(Objref,TypeDef) -> Return

Types:

Objref = #IFR_AliasDef_objref
Typedef = #IFR_IDLType_objref
Return = ok | {exception, _}

Sets the original_type_def attribute, which describes the original type. πŸŽ€

get_kind(Objref) -> Return

Types:

Objref = #IFR_PrimitiveDef_objref
Return = atom()

Returns an atom describing the primitive type (See CORBA 2.0 p 6-21). πŸ“š

get_bound(Objref) -> Return

Types:

Objref = #IFR_objref
Return = integer (unsigned long)

Objref is an IFR object of the kind StringDef or SequenceDef. For StringDef: returns the maximum number of characters in the string. For SequenceDef: returns the maximum number of elements in the sequence. Zero means an unbounded sequence. πŸ’€

set_bound(Objref,Bound) -> Return

Types:

Objref = #IFR_objref
Bound = integer (unsigned long)
Return = ok | {exception, _}

Objref is an IFR object of the kind StringDef or SequenceDef. For StringDef: sets the maximum number of characters in the string. Bound must not be zero. For SequenceDef: sets the maximum number of elements in the sequence. Zero indicates an unbounded sequence. 🫢

get_element_type(Objref) -> Return

Types:

Objref = #IFR_objref
Return = tuple() (a typecode tuple)

Objref is an IFR object of the kind SequenceDef or ArrayDef. Returns the typecode of the elements in the IFR object. ⭐

get_element_type_def(Objref) -> Return

Types:

Objref = #IFR_objref
Return = #IFR_IDLType_objref

Objref is an IFR object of the kind SequenceDef or ArrayDef. Returns an IFR object of the type IDLType describing the type of the elements in Objref. πŸ¦‹

set_element_type_def(Objref,TypeDef) -> Return

Types:

Objref = #IFR_objref
TypeDef = #IFR_IDLType_objref
Return = ok | {exception, _}

Objref is an IFR object of the kind SequenceDef or ArrayDef. Sets the element_type_def attribute, an IFR object of the type IDLType describing the type of the elements in Objref. πŸ’œ

get_length(Objref) -> Return

Types:

Objref = #IFR_ArrayDef_objref
Return = integer() (unsigned long)

Returns the number of elements in the array. πŸ”’

set_length(Objref,Length) -> Return

Types:

Objref = #IFR_ArrayDef_objref
Length = integer() (unsigned long)

Sets the number of elements in the array. ✨

get_mode(Objref) -> Return

Types:

Objref = #IFR_objref
Return = atom()

Objref is an IFR object of the kind AttributeDef or OperationDef. For AttributeDef: Return is an atom ('ATTR_NORMAL' or 'ATTR_READONLY') specifying the read/write access for this attribute. For OperationDef: Return is an atom ('OP_NORMAL' or 'OP_ONEWAY') specifying the mode of the operation. πŸŽ€

set_mode(Objref,Mode) -> Return

Types:

Objref = #IFR_objref
Mode = atom()
Return = ok | {exception, _}

Objref is an IFR object of the kind AttributeDef or OperationDef. For AttributeDef: sets the read/write access for this attribute. Mode is an atom ('ATTR_NORMAL' or 'ATTR_READONLY'). For OperationDef: sets the mode of the operation. Mode is an atom ('OP_NORMAL' or 'OP_ONEWAY'). πŸ’…

get_result(Objref) -> Return

Types:

Objref = #IFR_OperationDef_objref
Return = tuple() (a typecode tuple)

Returns a typecode describing the type of the value returned by the operation. πŸ”₯

get_result_def(Objref) -> Return

Types:

okay so the page literally cuts off right there mid-entry, not me, that's just the manpage πŸ’€

Types: Objref = #IFR_OperationDef_objref, Return = #IFR_IDLType_objref

Hands you back an IFR object of the type IDLType that describes the type of the result. πŸŽ€


  • set_result_def(Objref,ResultDef) -> Return β€” sets the type_def attribute, an IFR Object of the type IDLType describing the result.
    • Types: Objref = #IFR_OperationDef_objref; ResultDef = #IFR_IDLType_objref; Return = ok | {exception, _}
  • get_params(Objref) -> Return β€” gives you a list of parameter description records, which describes the parameters of the OperationDef. the receipts, basically πŸ’…
    • Types: Objref = #IFR_OperationDef_objref; Return = list() (list of parameter description records)
  • set_params(Objref,Params) -> Return β€” sets the params attribute, a list of parameter description records.
    • Types: Objref = #IFR_OperationDef_objref; Params = list() (list of parameter description records); Return = ok | {exception, _}
  • get_contexts(Objref) -> Return β€” returns a list of context identifiers for the operation. πŸ¦‹
    • Types: Objref = #IFR_OperationDef_objref; Return = list() (list of strings)
  • set_contexts(Objref,Contexts) -> Return β€” sets the context attribute for the operation.
    • Types: Objref = #IFR_OperationDef_objref; Contexts = list() (list of strings); Return = ok | {exception, _}
  • get_exceptions(Objref) -> Return β€” returns a list of exception types that can be raised by this operation. the drama potential, we love to see it 😭
    • Types: Objref = #IFR_OperationDef_objref; Return = list() (list of #IFR_ExceptionDef_objrefs)
  • set_exceptions(Objref,Exceptions) -> Return β€” sets the exceptions attribute for this operation.
    • Types: Objref = #IFR_OperationDef_objref; Exceptions = list() (list of #IFR_ExceptionDef_objrefs); Return = ok | {exception, _}
  • get_base_interfaces(Objref) -> Return β€” returns a list of InterfaceDefs from which this InterfaceDef inherits. it's giving ancestry dot com 🧬
    • Types: Objref = #IFR_InterfaceDef_objref; Return = list() (list of #IFR_InterfaceDef_objrefs)
  • set_base_interfaces(Objref,BaseInterfaces) -> Return β€” sets the BaseInterfaces attribute.
    • Types: Objref = #IFR_InterfaceDef_objref; BaseInterfaces = list() (list of #IFR_InterfaceDef_objrefs); Return = ok | {exception, _}
  • is_a(Objref,Interface_id) -> Return β€” returns true if the InterfaceDef either is identical to or inherits from Interface_id. glow-up check ✨
    • Types: Objref = #IFR_InterfaceDef_objref; Interface_id = #IFR_InterfaceDef_objref; Return = atom() (true or false)
  • describe_interface(Objref) -> Return β€” returns a full inter face description record describing the InterfaceDef. the whole lore drop πŸ“–
    • Types: Objref = #IFR_InterfaceDef_objref; Return = tuple() (a fullinterfacedescription record)
  • create_attribute(Objref,Id,Name,Version,Type,Mode) -> Return β€” creates an IFR object of the type AttributeDef contained in this InterfaceDef.
    • Types: Objref = #IFR_InterfaceDef_objref; Id = string(); Name = string(); Version = string(); Type = #IFR_IDLType_objref; Mode = atom() ('ATTR_NORMAL' or 'ATTR_READONLY'); Return = #IFR_AttributeDef_objref
  • create_operation(Objref,Id,Name,Version,Result,Mode,Params, Exceptions,Contexts) -> Return β€” creates an IFR object of the type OperationDef contained in this InterfaceDef. main character creation moment πŸ‘‘
    • Types: Objref = #IFR_InterfaceDef_objref; Id = string(); Name = string(); Version = string(); Result = #IFR_IDLType_objref; Mode = atom() ('OP_NORMAL' or 'OP_ONEWAY'); Params = list() (list of parameter description records); Exceptions = list() (list of #IFR_ExceptionDef_objrefs); Contexts = list() (list of strings); Return = #IFR_OperationDef_objref

Heads up bestie: the two Mode atoms are case-sensitive and quoted, so write them exactly like 'ATTR_NORMAL', 'ATTR_READONLY', 'OP_NORMAL', 'OP_ONEWAY'. no vibing your way through those πŸ’€

And that's the whole page, fr fr 🫢

This one's brought to you by Ericsson AB, straight outta the orber 5.2.2 era, and it's the orber_ifr(3) page β€” go build something iconic with it. periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from