# CosNotifyChannelAdmin_StructuredProxyPullSupplier

### MODULE

CosNotifyChannelAdmin_StructuredProxyPullSupplier

### MODULE SUMMARY

This module implements the OMG CosNotifyChannelAdmin::StructuredProxyPullSupplier interface.

### DESCRIPTION

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

This module also exports the functions described in:

- CosNotifyComm_NotifySubscribe
- CosNotification_QoSAdmin
- CosNotifyFilter_FilterAdmin
- CosNotifyChannelAdmin_ProxySupplier

### EXPORTS

`connect_structured_pull_consumer(StructuredProxyPullSupplier, PullConsumer) -> Reply`

Types:

`StructuredProxyPullSupplier = #objref`
`PullConsumer = #objref`
`Reply = ok | {'EXCEPTION', #'CosEventChannelAdmin_AlreadyConnected'{}}`

This operation connects a `PullConsumer` to the target object. If a connection already exists the `AlreadyConnected` exception is raised.

`pull_structured_event(StructuredProxyPullSupplier) -> Reply`

Types:

`StructuredProxyPullSupplier = #objref`
`Reply = StructuredEvent | {'EXCEPTION', #'CosEventChannelAdmin_Disconnected'{}}`
`StructuredEvent = #'CosNotification_StructuredEvent'{header, filterable_data, remainder_of_body}`
`header = EventHeader`
`filterable_data = [#'CosNotification_Property'{name, value}]`
`name = string()`
`value = #any`
`remainder_of_body = #any`
`EventHeader = #'CosNotification_EventHeader'{fixed_header, variable_header}`
`fixed_header = FixedEventHeader`
`variable_header = OptionalHeaderFields`
`FixedEventHeader = #'CosNotification_FixedEventHeader'{event_type, event_name}`
`event_type = EventType`
`event_name = string()`
`EventType = #'CosNotification_EventType'{domain_name, type_name}`
`domain_name = type_name = string()`
`OptionalHeaderFields = [#'CosNotification_Property'{name, value}]`

This operation pulls next event from the target object; if an event cannot be delivered this function blocks until an event arrives.

`try_pull_structured_event(StructuredProxyPullSupplier) -> Reply`

Types:

`StructuredProxyPullSupplier = #objref`
`Reply = {StructuredEvent, HasEvent} | {'EXCEPTION', #'CosEventChannelAdmin_Disconnected'{}}`
`HasEvent = boolean()`
`StructuredEvent = #'CosNotification_StructuredEvent'{header, filterable_data, remainder_of_body}`
`header = EventHeader`
`filterable_data = [#'CosNotification_Property'{name, value}]`
`name = string()`
`value = #any`
`remainder_of_body = #any`
`EventHeader = #'CosNotification_EventHeader'{fixed_header, variable_header}`
`fixed_header = FixedEventHeader`
`variable_header = OptionalHeaderFields`
`FixedEventHeader = #'CosNotification_FixedEventHeader'{event_type, event_name}`
`event_type = EventType`
`event_name = string()`
`EventType = #'CosNotification_EventType'{domain_name, type_name}`
`domain_name = type_name = string()`
`OptionalHeaderFields = [#'CosNotification_Property'{name, value}]`

This operation try to pull next event from the target object. If no event have arrived an empty event is returned and the out parameter `HasEvent` is set to false. Otherwise, the boolean flag is set to true and an valid event is returned.

`disconnect_structured_pull_supplier(StructuredProxyPullSupplier) -> ok`

Types:

`StructuredProxyPullSupplier = #objref`

This operation cause the target object to close the connection and terminate.

### AUTHORS

support - support@erlang.ericsson.se

cosNotification 1.1
Copyright © 1991-2003 Ericsson Utvecklings AB