org.jacorb.notification
Class EventChannelFactoryImpl

java.lang.Object
  extended by org.omg.PortableServer.Servant
      extended by org.jacorb.notification.JacORBEventChannelFactoryPOA
          extended by org.jacorb.notification.EventChannelFactoryImpl
All Implemented Interfaces:
org.apache.avalon.framework.configuration.Configurable, Disposable, JacORBEventChannelFactoryOperations, ManageableServant, InvokeHandler, EventChannelFactoryOperations

public class EventChannelFactoryImpl
extends JacORBEventChannelFactoryPOA
implements Disposable, ManageableServant, org.apache.avalon.framework.configuration.Configurable

EventChannelFactoryImpl is a implementation of the EventChannelFactory interface which defines operations for creating and managing new Notification Service style event channels. It supports a routine that creates new instances of Notification Service event channels and assigns unique numeric identifiers to them. In addition the EventChannelFactory interface supports a routing, which can return the unique identifiers assigned to all event channels created by a given instance of EventChannelFactory, and another routine which, given the unique identifier of an event channel created by a target EventChannelFactory instance, returns the object reference of that event channel.

Version:
$Id: EventChannelFactoryImpl.java,v 1.35 2004/05/06 12:39:59 nicolas Exp $
Author:
Alphonse Bendt

Method Summary
 POA _default_POA()
           
 Object activate()
           
 void addEventChannelEventListener(EventChannelEventListener listener)
           
 void configure(org.apache.avalon.framework.configuration.Configuration conf)
           
 EventChannelImpl create_channel_servant(int channelID, Property[] qualitiyOfServiceProperties, Property[] administrativeProperties)
           
 EventChannel create_channel(Property[] qualitiyOfServiceProperties, Property[] administrativeProperties, IntHolder channelIdentifier)
          The create_channel operation is invoked to create a new instance of the Notification Service style event channel.
 void deactivate()
           
 void destroy()
           
 void dispose()
          Dispose this Object.
protected  void eventChannelServantCreated(EventChannelImpl servant)
           
 int[] get_all_channels()
          The get_all_channels operation returns a sequence of all of the unique numeric identifiers corresponding to Notification Service event channels, which have been created by the target object.
 EventChannelImpl get_event_channel_servant(int id)
           
 EventChannel get_event_channel(int id)
          The get_event_channel operation accepts as input a numeric value that is supposed to be the unique identifier of a Notification Service event channel, which has been created by the target object.
 StaticEventChannelFactoryInfo get_static_info()
           
 ApplicationContext getApplicationContext()
           
 java.lang.String getCorbaLoc()
           
 EventChannelFactory getEventChannelFactory()
           
 java.lang.String getIOR()
           
protected  ORB getORB()
           
 Servant getServant()
           
static void main(java.lang.String[] args)
           
static EventChannelFactoryImpl newFactory()
           
static EventChannelFactoryImpl newFactory(java.lang.String[] args)
           
 void preActivate()
           
 void removeEventChannelEventListener(EventChannelEventListener listener)
           
 void setDestroyMethod(java.lang.Runnable destroyMethod)
           
 void setORB(ORB orb)
           
 void setPOA(POA poa)
           
 void shutdown(org.jacorb.notification.EventChannelFactoryImpl.ShutdownCallback cb)
           
 
Methods inherited from class org.jacorb.notification.JacORBEventChannelFactoryPOA
_all_interfaces, _invoke, _this, _this
 
Methods inherited from class org.omg.PortableServer.Servant
_get_delegate, _get_interface_def, _get_interface, _is_a, _non_existent, _object_id, _orb, _poa, _set_delegate, _this_object, _this_object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

configure

public void configure(org.apache.avalon.framework.configuration.Configuration conf)
Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable

setDestroyMethod

public void setDestroyMethod(java.lang.Runnable destroyMethod)

setORB

public void setORB(ORB orb)
Specified by:
setORB in interface ManageableServant

setPOA

public void setPOA(POA poa)
Specified by:
setPOA in interface ManageableServant

getORB

protected ORB getORB()

create_channel

public EventChannel create_channel(Property[] qualitiyOfServiceProperties,
                                   Property[] administrativeProperties,
                                   IntHolder channelIdentifier)
                            throws UnsupportedAdmin,
                                   UnsupportedQoS
The create_channel operation is invoked to create a new instance of the Notification Service style event channel. This operation accepts two input parameters. The first input parameter is a list of name-value pairs, which specify the initial QoS property settings for the new channel. The second input parameter is a list of name-value pairs, which specify the initial administrative property settings for the new channel.
If no implementation of the EventChannel Interface exists that can support all of the requested administrative property settings, the UnsupportedAdmin exception is raised This exception contains as data a sequence of data structures, each identifies the name of an administrative property in the input list whose requested setting could not be satisfied, along with an error code and a range of settings for the property which could be satisfied. The meanings of the error codes that might be returned are described in Notification Service Specification Table 2-5 on page 2-46.
If neither of these exceptions is raised, the create_channel operation will return a reference to a new Notification Service style event channel. In addition, the operation assigns to this new event channel a numeric identifier, which is unique among all event channels created by the target object. This numeric identifier is returned as an output parameter.

Specified by:
create_channel in interface EventChannelFactoryOperations
Parameters:
qualitiyOfServiceProperties - a list of name-value pairs, which specify the initial QoS property settings for the new channel
administrativeProperties - a list of name-value pairs, which specify the initial administrative property settings for the new channel
channelIdentifier, - a reference to the new event channel
Returns:
a newly created event channel
Throws:
UnsupportedAdmin - if no implementation supports the requested administrative settings
UnsupportedQoS - if no implementation supports the requested QoS settings

eventChannelServantCreated

protected void eventChannelServantCreated(EventChannelImpl servant)

create_channel_servant

public EventChannelImpl create_channel_servant(int channelID,
                                               Property[] qualitiyOfServiceProperties,
                                               Property[] administrativeProperties)
                                        throws UnsupportedAdmin,
                                               UnsupportedQoS,
                                               ObjectNotActive,
                                               WrongPolicy,
                                               ServantAlreadyActive,
                                               org.apache.avalon.framework.configuration.ConfigurationException
Throws:
UnsupportedAdmin
UnsupportedQoS
ObjectNotActive
WrongPolicy
ServantAlreadyActive
org.apache.avalon.framework.configuration.ConfigurationException

get_all_channels

public int[] get_all_channels()
The get_all_channels operation returns a sequence of all of the unique numeric identifiers corresponding to Notification Service event channels, which have been created by the target object.

Specified by:
get_all_channels in interface EventChannelFactoryOperations
Returns:
an int[] value

get_event_channel

public EventChannel get_event_channel(int id)
                               throws ChannelNotFound
The get_event_channel operation accepts as input a numeric value that is supposed to be the unique identifier of a Notification Service event channel, which has been created by the target object. If this input value does not correspond to such a unique identifier, the ChannelNotFound exception is raised. Otherwise, the operation returns the object reference of the Notification Service event channel corresponding to the input identifier.

Specified by:
get_event_channel in interface EventChannelFactoryOperations
Parameters:
n - an int the unique identifier of a Notification Service event channel
Returns:
an EventChannel corresponding to the input identifier
Throws:
ChannelNotFound - if the input value does not correspond to a Notification Service event channel

get_event_channel_servant

public EventChannelImpl get_event_channel_servant(int id)
                                           throws ChannelNotFound
Throws:
ChannelNotFound

addEventChannelEventListener

public void addEventChannelEventListener(EventChannelEventListener listener)

removeEventChannelEventListener

public void removeEventChannelEventListener(EventChannelEventListener listener)

shutdown

public void shutdown(org.jacorb.notification.EventChannelFactoryImpl.ShutdownCallback cb)

deactivate

public void deactivate()
Specified by:
deactivate in interface ManageableServant

destroy

public void destroy()
Specified by:
destroy in interface JacORBEventChannelFactoryOperations

dispose

public void dispose()
Description copied from interface: Disposable
Dispose this Object. Free all associated Ressources allocated by this Object. The Object may not be used after a call to dispose.

Specified by:
dispose in interface Disposable

preActivate

public void preActivate()
Specified by:
preActivate in interface ManageableServant

getCorbaLoc

public java.lang.String getCorbaLoc()

getIOR

public java.lang.String getIOR()

getEventChannelFactory

public EventChannelFactory getEventChannelFactory()

getApplicationContext

public ApplicationContext getApplicationContext()

getServant

public Servant getServant()

activate

public Object activate()
Specified by:
activate in interface ManageableServant

_default_POA

public POA _default_POA()
Overrides:
_default_POA in class Servant

get_static_info

public StaticEventChannelFactoryInfo get_static_info()
Specified by:
get_static_info in interface JacORBEventChannelFactoryOperations

newFactory

public static EventChannelFactoryImpl newFactory()
                                          throws java.lang.Exception
Throws:
java.lang.Exception

newFactory

public static EventChannelFactoryImpl newFactory(java.lang.String[] args)
                                          throws java.lang.Exception
Throws:
java.lang.Exception

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception