---
name: "cosNotificationApp"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:19.2.1+dfsg-2+deb9u3"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/cosNotificationApp"
---

# cosNotificationApp(3erl)

The main module of the cosNotification application.

## NAME

cosNotificationApp - The main module of the cosNotification application.

## DESCRIPTION

To get access to the record definitions for the structures use: \
 *-include\_lib("cosNotification/include/\*.hrl").*

This module contains the functions for starting and stopping the application.

## EXPORTS

**install() -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation installs the cosNotification application.

**install(Seconds) -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation installs the cosNotification application using *Seconds* delay between each block, currently 6, of IFR-registrations. This approach spreads the IFR database access over a period of time to allow other applications to run smother.

**install\_event() -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation, which may *only* be used if it is impossible to upgrade to *cosEvent-2.0* or later, installs the necessary cosEvent interfaces. If cosEvent-2.0 is available, use *cosEventApp:install()* instead.

**install\_event(Seconds) -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation, which may *only* be used if it is impossible to upgrade to *cosEvent-2.0* or later, installs the necessary cosEvent interfaces using *Seconds* delay between each block of IFR-registrations. If cosEvent-2.0 is available, use *cosEventApp:install()* instead.

**uninstall() -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation uninstalls the cosNotification application.

**uninstall(Seconds) -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation uninstalls the cosNotification application using *Seconds* delay between each block, currently 6, of IFR-unregistrations. This approach spreads the IFR database access over a period of time to allow other applications to run smother.

**uninstall\_event() -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation uninstalls the inherited cosEvent interfaces. If cosEvent is in use this function may not be used. This function may only be used if *cosNotificationApp:install\_event/1/2* was used. If not, use *cosEventApp:uninstall()* instead.

**uninstall\_event(Seconds) -\> Return**\

Types:

Return = ok \| {'EXCEPTION', E}\

This operation uninstalls the inherited cosEvent interfaces, using *Seconds* delay between each block of IFR-unregistrations. If cosEvent is in use this function may not be used. This function may only be used if *cosNotificationApp:install\_event/1/2* was used. If not, use *cosEventApp:uninstall()* instead.

**start() -\> Return**\

Types:

Return = ok \| {error, Reason}\

This operation starts the cosNotification application.

**stop() -\> Return**\

Types:

Return = ok \| {error, Reason}\

This operation stops the cosNotification application.

**start\_global\_factory() -\> ChannelFactory**\

Types:

ChannelFactory = #objref\

This operation creates a **Event Channel Factory** should be used for a multi-node Orber. The Factory is used to create a new **channel**.

**start\_global\_factory(Options) -\> ChannelFactory**\

Types:

Options = \[Option\]\
 Option = {pullInterval, Seconds} \| {filterOp, Op} \| {gcTime, Seconds} \| {gcLimit, Anount} \| {timeService, #objref}\
 ChannelFactory = #objref\

This operation creates a **Event Channel Factory** and should be used for a multi-node Orber. The Factory is used to create a new **channel**.

- \*

  *{pullInterval, Seconds}* - determine how often Proxy Pull Consumers will check for new events with the client application. The default value is 20 seconds.

- \*

  *{filterOp, OperationType}* - determine which type of Administrator objects should be started, i.e., *'OR\_OP'* or *'AND\_OP'*. The default value is *'OR\_OP'*.

- \*

  *{timeService, TimeServiceObj \| 'undefined'}* - to be able to use Start and/or Stop QoS this option must be used. See the function *start\_time\_service/2* in the *cosTime* application. The default value is *'undefined'*.

- \*

  *{filterOp, OperationType}* - determine which type of Administrator objects should be started, i.e., *'OR\_OP'* or *'AND\_OP'*. The default value is *'OR\_OP'*.

- \*

  *{gcTime, Seconds}* - this option determines how often, for example, proxies will garbage collect expired events. The default value is 60.

- \*

  *{gcLimit, Amount}* - determines how many events will be stored before, for example, proxies will garbage collect expired events. The default value is 50. This option is tightly coupled with the QoS property *MaxEventsPerConsumer*, i.e., the *gcLimit* should be less than *MaxEventsPerConsumer* and greater than 0.

**start\_factory() -\> ChannelFactory**\

Types:

ChannelFactory = #objref\

This operation creates a **Event Channel Factory**. The Factory is used to create a new **channel**.

**start\_factory(Options) -\> ChannelFactory**\

Types:

Options = \[Option\]\
 Option = {pullInterval, Seconds} \| {filterOp, Op} \| {gcTime, Seconds} \| {gcLimit, Amount} \| {timeService, #objref}\
 ChannelFactory = #objref\

This operation creates a **Event Channel Factory**. The Factory is used to create a new **channel**.

**stop\_factory(ChannelFactory) -\> Reply**\

Types:

ChannelFactory = #objref\
 Reply = ok \| {'EXCEPTION', E}\

This operation stop the target channel factory.

**start\_filter\_factory() -\> FilterFactory**\

Types:

FilterFactory = #objref\

This operation creates a **Filter Factory**. The Factory is used to create a new **Filter's** and **MappingFilter's**.

**stop\_filter\_factory(FilterFactory) -\> Reply**\

Types:

FilterFactory = #objref\
 Reply = ok \| {'EXCEPTION', E}\

This operation stop the target filter factory.

**create\_structured\_event(Domain, Type, Event, VariableHeader, FilterableBody, BodyRemainder) -\> Reply**\

Types:

Domain = string()\
 Type = string()\
 Event = string()\
 VariableHeader = \[CosNotification::Property\]\
 FilterableBody = \[CosNotification::Property\]\
 BodyRemainder = #any data-type\
 Reply = CosNotification::StructuredEvent \| {'EXCEPTION', E}\

An easy way to create a structured event is to use this function. Simple typechecks are performed and if one of the arguments is not correct a 'BAD\_PARAM' exception is thrown.

**type\_check() -\> Reply**\

Types:

Reply = true \| false\

This operation returns the value of the configuration parameter *type\_check*.
