# cosNotificationApp

### MODULE

cosNotificationApp

### MODULE SUMMARY

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 inherrited 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 inherrited 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.

### AUTHORS

support - support@erlang.ericsson.se

cosNotification 1.1
Copyright © 1991-2003 Ericsson Utvecklings AB