View Javadoc

1   /*** 
2    * 
3    * Copyright 2004 Protique Ltd
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License"); 
6    * you may not use this file except in compliance with the License. 
7    * You may obtain a copy of the License at 
8    * 
9    * http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License. 
16   * 
17   **/
18  
19  package org.codehaus.activemq.broker;
20  
21  import org.codehaus.activemq.message.ActiveMQMessage;
22  import org.codehaus.activemq.service.Service;
23  import org.codehaus.activemq.transport.TransportChannel;
24  
25  /***
26   * A Broker side proxy representing mostly outbound JMS Connnection
27   */
28  
29  public interface BrokerClient extends Service {
30  
31  
32      /***
33       * Initialize the Brokerclient
34       *
35       * @param brokerConnector
36       * @param channel
37       */
38      public void initialize(BrokerConnector brokerConnector, TransportChannel channel);
39  
40      /***
41       * Dispatch an ActiveMQMessage to the end client
42       *
43       * @param message
44       */
45      public void dispatch(ActiveMQMessage message);
46  
47      /***
48       * @return true if the peer for this Client is itself another Broker
49       */
50      public boolean isBrokerConnection();
51  
52  
53      /***
54       * Get the Capacity for in-progress messages at the peer (probably a JMSConnection)
55       * Legimate values between 0-100. 0 capacity representing that the peer cannot process
56       * any more messages at the current time
57       *
58       * @return
59       */
60      public int getCapacity();
61  
62  
63      /***
64       * Get an indication if the peer should be considered as a slow consumer
65       *
66       * @return true id the peer should be considered as a slow consumer
67       */
68      public boolean isSlowConsumer();
69  
70      /***
71       * Update the peer Connection about the Broker's capacity for messages
72       *
73       * @param capacity
74       */
75      public void updateBrokerCapacity(int capacity);
76  
77      /***
78       * Returns the client ID for this client if the client has been initialised
79       */
80      public String getClientID();
81  
82      /***
83       * Called when the transport has been terminated, so do our best to
84       * shut down any resources and deregister from any subscriptions etc
85       */
86      public void cleanUp();
87  
88      TransportChannel getChannel();
89  }