org.jacorb.notification.servant
Class AbstractProxySupplier

java.lang.Object
  extended byorg.jacorb.notification.servant.AbstractProxy
      extended byorg.jacorb.notification.servant.AbstractProxySupplier
All Implemented Interfaces:
AbstractProxyMBean, AbstractProxySupplierMBean, java.lang.Comparable, org.apache.avalon.framework.configuration.Configurable, Disposable, org.picocontainer.Disposable, FilterAdminOperations, FilterStage, FilterStageSource, IServantLifecyle, JMXManageable, MessageConsumer, NotifyingDisposable, NotifySubscribeOperations, QoSAdminOperations
Direct Known Subclasses:
AbstractProxyPushSupplier, ProxyPullSupplierImpl, SequenceProxyPullSupplierImpl, StructuredProxyPullSupplierImpl, TypedProxyPullSupplierImpl

public abstract class AbstractProxySupplier
extends AbstractProxy
implements MessageConsumer, NotifySubscribeOperations, AbstractProxySupplierMBean

Abstract base class for ProxySuppliers. This class provides base functionality for the different ProxySuppliers:

Version:
$Id: AbstractProxySupplier.java,v 1.30 2006/03/03 19:56:11 alphonse.bendt Exp $
Author:
Alphonse Bendt

Nested Class Summary
 
Nested classes inherited from class org.jacorb.notification.interfaces.JMXManageable
JMXManageable.JMXCallback
 
Field Summary
 
Fields inherited from class org.jacorb.notification.servant.AbstractProxy
config_, eventTypes_, logger_, offerManager_, qosSettings_, subscriptionManager_
 
Constructor Summary
protected AbstractProxySupplier(IAdmin admin, ORB orb, POA poa, org.apache.avalon.framework.configuration.Configuration conf, TaskProcessor taskProcessor, OfferManager offerManager, SubscriptionManager subscriptionManager, ConsumerAdmin consumerAdmin)
           
 
Method Summary
 void clearPendingMessageQueue()
           
protected  void clientDisconnected()
           
 int compareTo(java.lang.Object o)
           
 void connectClient(Object client)
           
 void dispose()
           
protected  void enqueue(Message message)
          put a copy of the Message in the queue of pending Messages.
protected  Message[] getAllMessages()
           
protected  Message[] getAtLeastMessages(int min)
           
protected abstract  long getCost()
           
 java.lang.String getDiscardPolicy()
           
 int getErrorThreshold()
           
 int getMaxEventsPerConsumer()
           
 Message getMessageBlocking()
           
 MessageConsumer getMessageConsumer()
          get the associated MessageConsumer or null.
protected  Message getMessageNoBlock()
           
protected  EventQueueFactory getMessageQueueFactory()
           
 int getNumberOfDiscardedMessages()
           
 java.lang.String getOrderPolicy()
           
 int getPendingMessagesCount()
           
 java.util.List getSubsequentFilterStages()
           
protected  Message[] getUpToMessages(int max)
           
 boolean hasMessageConsumer()
          check if this FilterStage has a MessageConsumer associcated.
 boolean hasPendingData()
           
 boolean isRetryAllowed()
           
protected  void messageQueued()
          this is an extension point.
 ConsumerAdmin MyAdmin()
           
 EventType[] obtain_offered_types(ObtainInfoMode obtainInfoMode)
           
 void queueMessage(Message message)
          Deliver a Message to the associated Consumer.
protected  void removeListener()
           
 void setMaxEventsPerConsumer(int max)
           
 void subscription_change(EventType[] added, EventType[] removed)
           
 
Methods inherited from class org.jacorb.notification.servant.AbstractProxy
activate, add_filter, checkDestroyStatus, checkIsConnected, checkIsNotConnected, checkStillConnected, configure, connectionResumed, connectionSuspended, deactivate, destroy, disconnectClient, get_all_filters, get_filter, get_qos, getClientIOR, getConnected, getErrorCounter, getFilters, getID, getInterFilterGroupOperator, getJMXNotificationTypes, getJMXObjectName, getLifetimeFilter, getMBeanName, getMBeanType, getORB, getPOA, getPriorityFilter, getStatus, getTaskProcessor, handleDisconnected, hasInterFilterGroupOperatorOR, hasLifetimeFilter, hasPriorityFilter, incErrorCounter, isDestroyed, isIDPublic, isSuspended, lifetime_filter, lifetime_filter, MyType, priority_filter, priority_filter, registerDisposable, remove_all_filters, remove_filter, resetErrorCounter, resume_connection, sendNotification, sendNotification, set_qos, setJMXCallback, suspend_connection, validate_event_qos, validate_qos
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jacorb.notification.interfaces.MessageConsumer
destroy, isDestroyed
 
Methods inherited from interface org.jacorb.notification.servant.AbstractProxyMBean
destroy, getClientIOR, getConnected, getErrorCounter, getInterFilterGroupOperator, getStatus, resetErrorCounter
 
Methods inherited from interface org.jacorb.notification.lifecycle.IServantLifecyle
newServant
 

Constructor Detail

AbstractProxySupplier

protected AbstractProxySupplier(IAdmin admin,
                                ORB orb,
                                POA poa,
                                org.apache.avalon.framework.configuration.Configuration conf,
                                TaskProcessor taskProcessor,
                                OfferManager offerManager,
                                SubscriptionManager subscriptionManager,
                                ConsumerAdmin consumerAdmin)
                         throws org.apache.avalon.framework.configuration.ConfigurationException
Method Detail

getMessageQueueFactory

protected EventQueueFactory getMessageQueueFactory()

getPendingMessagesCount

public int getPendingMessagesCount()
Specified by:
getPendingMessagesCount in interface AbstractProxySupplierMBean

getOrderPolicy

public final java.lang.String getOrderPolicy()
Specified by:
getOrderPolicy in interface AbstractProxySupplierMBean

getDiscardPolicy

public final java.lang.String getDiscardPolicy()
Specified by:
getDiscardPolicy in interface AbstractProxySupplierMBean

getMaxEventsPerConsumer

public final int getMaxEventsPerConsumer()
Specified by:
getMaxEventsPerConsumer in interface AbstractProxySupplierMBean

setMaxEventsPerConsumer

public void setMaxEventsPerConsumer(int max)
Specified by:
setMaxEventsPerConsumer in interface AbstractProxySupplierMBean

getNumberOfDiscardedMessages

public int getNumberOfDiscardedMessages()
Specified by:
getNumberOfDiscardedMessages in interface AbstractProxySupplierMBean

hasPendingData

public boolean hasPendingData()

enqueue

protected void enqueue(Message message)
put a copy of the Message in the queue of pending Messages.

Parameters:
message - the Message to queue.

getMessageBlocking

public Message getMessageBlocking()
                           throws java.lang.InterruptedException
Throws:
java.lang.InterruptedException

getMessageNoBlock

protected Message getMessageNoBlock()

getAllMessages

protected Message[] getAllMessages()

queueMessage

public void queueMessage(Message message)
Description copied from interface: MessageConsumer
Deliver a Message to the associated Consumer.

Specified by:
queueMessage in interface MessageConsumer

messageQueued

protected void messageQueued()
this is an extension point.


getUpToMessages

protected Message[] getUpToMessages(int max)
Parameters:
max - maximum number of messages
Returns:
an array containing at most max Messages

getAtLeastMessages

protected Message[] getAtLeastMessages(int min)
Parameters:
min - minimum number of messages
Returns:
an array containing the requested number of Messages or null

getErrorThreshold

public int getErrorThreshold()

dispose

public final void dispose()
Specified by:
dispose in interface org.picocontainer.Disposable
Overrides:
dispose in class AbstractProxy

MyAdmin

public final ConsumerAdmin MyAdmin()

subscription_change

public final void subscription_change(EventType[] added,
                                      EventType[] removed)
                               throws InvalidEventType
Specified by:
subscription_change in interface NotifySubscribeOperations
Throws:
InvalidEventType

obtain_offered_types

public final EventType[] obtain_offered_types(ObtainInfoMode obtainInfoMode)

removeListener

protected void removeListener()
Specified by:
removeListener in class AbstractProxy

clientDisconnected

protected final void clientDisconnected()
Specified by:
clientDisconnected in class AbstractProxy

connectClient

public void connectClient(Object client)
Overrides:
connectClient in class AbstractProxy

isRetryAllowed

public boolean isRetryAllowed()

getCost

protected abstract long getCost()

compareTo

public int compareTo(java.lang.Object o)
Specified by:
compareTo in interface java.lang.Comparable

hasMessageConsumer

public final boolean hasMessageConsumer()
Description copied from interface: FilterStage
check if this FilterStage has a MessageConsumer associcated.

Specified by:
hasMessageConsumer in interface FilterStage

getSubsequentFilterStages

public final java.util.List getSubsequentFilterStages()
Specified by:
getSubsequentFilterStages in interface FilterStageSource

getMessageConsumer

public final MessageConsumer getMessageConsumer()
Description copied from interface: FilterStage
get the associated MessageConsumer or null.

Specified by:
getMessageConsumer in interface FilterStage

clearPendingMessageQueue

public void clearPendingMessageQueue()
Specified by:
clearPendingMessageQueue in interface AbstractProxySupplierMBean