org.omg.CosNotifyChannelAdmin
Class SupplierAdminPOATie

java.lang.Object
  extended by org.omg.PortableServer.Servant
      extended by org.omg.CosNotifyChannelAdmin.SupplierAdminPOA
          extended by org.omg.CosNotifyChannelAdmin.SupplierAdminPOATie
All Implemented Interfaces:
org.omg.CORBA.portable.InvokeHandler, SupplierAdminOperations, QoSAdminOperations, NotifyPublishOperations, FilterAdminOperations

public class SupplierAdminPOATie
extends SupplierAdminPOA

The SupplierAdmin interface defines the behavior supported by objects which create and manage lists of proxy consumer objects within a Notification Service event channel. Recall that a Notification Service event channel can have any number of SupplierAdmin instances associated with it. Each such instance is responsible for creating and managing a list of proxy consumer objects that share a common set of QoS property settings, and a common set of filter objects. This feature enables clients to conveniently group proxy consumer objects within a channel into groupings that each support a set of suppliers with a common set of QoS requirements, and that make common event forwarding decisions driven by the association of a common set of filter objects. The SupplierAdmin interface inherits the QoSAdmin interface defined within the CosNotification module, enabling each SupplierAdmin instance to manage a set of QoS property settings. These QoS property settings are assigned as the default QoS property settings for any proxy consumer object created by a SupplierAdmin instance. In addition, the SupplierAdmin interface inherits from the FilterAdmin interface defined within the CosNotifyFilter module, enabling each SupplierAdmin instance to maintain a list of filter objects. These filter objects encapsulate subscriptions that will apply to all proxy consumer objects that have been created by a given SupplierAdmin instance. In order to enable optimizing the notification of a group of proxy consumer objects that have been created by the same SupplierAdmin instance of changes to the types of events being offered by suppliers, the SupplierAdmin interface also inherits from the NotifyPublish interface defined in the CosNotifyComm module. This inheritance enables a SupplierAdmin instance to be the target of an offer_change request made by a supplier object, and for the change in event types being offered to be shared by all proxy consumer objects which were created by the target SupplierAdmin. The SupplierAdmin interface defined in the CosNotifyChannelAdmin module also inherits from the SupplierAdmin interface defined in the CosEventChannelAdmin module. This inheritance enables clients to use the SupplierAdmin interface defined in the CosNotifyChannelAdmin module to create pure OMG Event Service style proxy consumer objects. Proxy consumer objects created in this manner may not support configuration of QoS properties, and may not have associated filter objects. In addition, proxy consumer objects created through the inherited SupplierAdmin interface will not have unique identifiers associated with them, whereas proxy consumer objects created by invoking the operations supported by the SupplierAdmin interface defined in the CosNotifyChannelAdmin module will. Locally, the SupplierAdmin interface supports a readonly attribute which maintains a reference to the EventChannel instance that created a given SupplierAdmin instance. The SupplierAdmin interface also supports a readonly attribute which contains a numeric identifier which will be assigned to an instance supporting this interface by its associated Notification Service event channel upon creation of the SupplierAdmin instance. This identifier will be unique among all SupplierAdmin instances created by a given channel. As described above, due to inheritance from the FilterAdmin interface, a SupplierAdmin can maintain a list of filter objects that will be applied to all proxy consumers it creates. Also recall that each proxy consumer may itself support a list of filter objects that apply only it. When combining multiple filter objects within each of these two lists of filter objects that may be associated with a given proxy consumer, OR semantics are applied. However when combining these two lists during the evaluation of a given event, either AND or OR semantics may be applied. The choice is determined by an input flag upon creation of the SupplierAdmin, and the operator that will be used for this purpose by a given SupplierAdmin is maintained in a readonly attribute. Each SupplierAdmin instance assigns a unique numeric identifier to each proxy consumer object it maintains. The SupplierAdmin interface supports attributes which maintain the list of these unique identifiers associated with the proxy pull and the proxy push consumers created by a given SupplierAdmin instance. The SupplierAdmin interface also supports an operation which, given the unique identifier of a proxy consumer a given SupplierAdmin instance has created as input, will return the object reference of that proxy consumer object. Additionally, the SupplierAdmin interface supports operations which can create the various styles of proxy consumer objects supported by the Notification Service event channel. Finally, because clients of a given Notification Service event channel can create any number of SupplierAdmin instances, a destroy operation is provided by this interface so that clients can clean up instances that are no longer needed.


Constructor Summary
SupplierAdminPOATie(SupplierAdminOperations tieObject)
          Constructor
SupplierAdminPOATie(SupplierAdminOperations tieObject, org.omg.PortableServer.POA poa)
          Constructor
 
Method Summary
 org.omg.PortableServer.POA _default_POA()
          _default_POA method
 SupplierAdminOperations _delegate()
          Get the delegate
 void _delegate(SupplierAdminOperations delegate_)
          Set the delegate
 int add_filter(Filter new_filter)
          Operation add_filter
 void destroy()
          Operation destroy
 int[] get_all_filters()
          Operation get_all_filters
 Filter get_filter(int filter)
          Operation get_filter
 ProxyConsumer get_proxy_consumer(int proxy_id)
          Operation get_proxy_consumer
 Property[] get_qos()
          Operation get_qos
 EventChannel MyChannel()
          Read accessor for MyChannel attribute
 int MyID()
          Read accessor for MyID attribute
 InterFilterGroupOperator MyOperator()
          Read accessor for MyOperator attribute
 ProxyConsumer obtain_notification_pull_consumer(ClientType ctype, org.omg.CORBA.IntHolder proxy_id)
          Operation obtain_notification_pull_consumer
 ProxyConsumer obtain_notification_push_consumer(ClientType ctype, org.omg.CORBA.IntHolder proxy_id)
          Operation obtain_notification_push_consumer
 ProxyPullConsumer obtain_pull_consumer()
          Operation obtain_pull_consumer
 ProxyPushConsumer obtain_push_consumer()
          Operation obtain_push_consumer
 void offer_change(EventType[] added, EventType[] removed)
          Operation offer_change
 int[] pull_consumers()
          Read accessor for pull_consumers attribute
 int[] push_consumers()
          Read accessor for push_consumers attribute
 void remove_all_filters()
          Operation remove_all_filters
 void remove_filter(int filter)
          Operation remove_filter
 void set_qos(Property[] qos)
          Operation set_qos
 void validate_qos(Property[] required_qos, NamedPropertyRangeSeqHolder available_qos)
          Operation validate_qos
 
Methods inherited from class org.omg.CosNotifyChannelAdmin.SupplierAdminPOA
_all_interfaces, _invoke, _this, _this
 
Methods inherited from class org.omg.PortableServer.Servant
_get_delegate, _get_interface_def, _is_a, _non_existent, _object_id, _orb, _poa, _set_delegate, _this_object, _this_object
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SupplierAdminPOATie

public SupplierAdminPOATie(SupplierAdminOperations tieObject)
Constructor


SupplierAdminPOATie

public SupplierAdminPOATie(SupplierAdminOperations tieObject,
                           org.omg.PortableServer.POA poa)
Constructor

Method Detail

_delegate

public SupplierAdminOperations _delegate()
Get the delegate


_delegate

public void _delegate(SupplierAdminOperations delegate_)
Set the delegate


_default_POA

public org.omg.PortableServer.POA _default_POA()
_default_POA method

Overrides:
_default_POA in class org.omg.PortableServer.Servant

MyID

public int MyID()
Read accessor for MyID attribute


MyChannel

public EventChannel MyChannel()
Read accessor for MyChannel attribute


MyOperator

public InterFilterGroupOperator MyOperator()
Read accessor for MyOperator attribute


pull_consumers

public int[] pull_consumers()
Read accessor for pull_consumers attribute


push_consumers

public int[] push_consumers()
Read accessor for push_consumers attribute


get_proxy_consumer

public ProxyConsumer get_proxy_consumer(int proxy_id)
                                 throws ProxyNotFound
Operation get_proxy_consumer

Throws:
ProxyNotFound

obtain_notification_pull_consumer

public ProxyConsumer obtain_notification_pull_consumer(ClientType ctype,
                                                       org.omg.CORBA.IntHolder proxy_id)
                                                throws AdminLimitExceeded
Operation obtain_notification_pull_consumer

Throws:
AdminLimitExceeded

obtain_notification_push_consumer

public ProxyConsumer obtain_notification_push_consumer(ClientType ctype,
                                                       org.omg.CORBA.IntHolder proxy_id)
                                                throws AdminLimitExceeded
Operation obtain_notification_push_consumer

Throws:
AdminLimitExceeded

destroy

public void destroy()
Operation destroy


get_qos

public Property[] get_qos()
Operation get_qos

Returns:
Object QosProperties

set_qos

public void set_qos(Property[] qos)
             throws UnsupportedQoS
Operation set_qos

Parameters:
qos - QosProperties to assign to object
Throws:
UnsupportedQoS

validate_qos

public void validate_qos(Property[] required_qos,
                         NamedPropertyRangeSeqHolder available_qos)
                  throws UnsupportedQoS
Operation validate_qos

Throws:
UnsupportedQoS

offer_change

public void offer_change(EventType[] added,
                         EventType[] removed)
                  throws InvalidEventType
Operation offer_change

Throws:
InvalidEventType

add_filter

public int add_filter(Filter new_filter)
Operation add_filter

Parameters:
new_filter - filter to add
Returns:
filter id

remove_filter

public void remove_filter(int filter)
                   throws FilterNotFound
Operation remove_filter

Parameters:
filter - Id of the filter
Throws:
FilterNotFound - Id doesn't match to any filter

get_filter

public Filter get_filter(int filter)
                  throws FilterNotFound
Operation get_filter

Parameters:
filter - Id of the filter to get
Returns:
The filter object
Throws:
FilterNotFound - Id doesn't match to any filter

get_all_filters

public int[] get_all_filters()
Operation get_all_filters

Returns:
Array of all filters's id

remove_all_filters

public void remove_all_filters()
Operation remove_all_filters


obtain_push_consumer

public ProxyPushConsumer obtain_push_consumer()
Operation obtain_push_consumer


obtain_pull_consumer

public ProxyPullConsumer obtain_pull_consumer()
Operation obtain_pull_consumer