# CosNotifyChannelAdmin_SequenceProxyPullSupplier

### MODULE

CosNotifyChannelAdmin_SequenceProxyPullSupplier

### MODULE SUMMARY

This module implements the OMG CosNotifyChannelAdmin::SequenceProxyPullSupplier 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_sequence_pull_consumer(SequenceProxyPullSupplier, PullConsumer) -> Reply`

Types:

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

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

`pull_structured_events(SequenceProxyPullSupplier, MaxEvents) -> Reply`

Types:

`SequenceProxyPullSupplier = #objref`
`MaxEvents = long()`
`Reply = EventBatch | {'EXCEPTION', #'CosEventChannelAdmin_Disconnected'{}}`
`EventBatch = [StructuredEvent]`
`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}]`

A client use this operation to pull next event sequence of maximum length `MaxEvents`. This operation is blocking and will not reply until the requested amount of events can be delivered or the QoS property `PacingInterval` is reached. For more information see the `User's Guide`.

`try_pull_structured_events(SequenceProxyPullSupplier, MaxEvents) -> Reply`

Types:

`SequenceProxyPullSupplier = #objref`
`MaxEvents = long()`
`Reply = {EventBatch, HasEvent} | {'EXCEPTION', #'CosEventChannelAdmin_Disconnected'{}}`
`HasEvent = boolean()`
`EventBatch = [StructuredEvent]`
`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 an event sequence of the maximum length `MaxEvents`, but do not block if the target object have no events to forward. The outparameter, `HasEvent` is true if the sequence contain any events.

`disconnect_sequence_pull_supplier(SequenceProxyPullSupplier) -> ok`

Types:

`SequenceProxyPullSupplier = #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