org.jdiameter.client.impl.controller
Class PeerTableImpl

java.lang.Object
  extended by org.jdiameter.client.impl.controller.PeerTableImpl
All Implemented Interfaces:
org.jdiameter.api.PeerTable, org.jdiameter.api.Wrapper, IPeerTable
Direct Known Subclasses:
MutablePeerTableImpl

public class PeerTableImpl
extends java.lang.Object
implements IPeerTable


Field Summary
protected  IAssembler assembler
           
protected  boolean isStarted
           
protected  java.util.logging.Logger logger
           
protected  org.jdiameter.api.MetaData metaData
           
protected  java.util.concurrent.ConcurrentHashMap<org.jdiameter.api.URI,org.jdiameter.api.Peer> peerTable
           
protected  java.util.concurrent.ExecutorService peerTaskExecutor
           
protected  IRouter router
           
protected  java.util.concurrent.ConcurrentHashMap<java.lang.String,org.jdiameter.api.NetworkReqListener> sessionReqListeners
           
protected  long stopTimeOut
           
 
Constructor Summary
protected PeerTableImpl()
           
  PeerTableImpl(org.jdiameter.api.Configuration globalConfig, org.jdiameter.api.MetaData metaData, IRouter router, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IMessageParser parser)
           
 
Method Summary
 void addSessionReqListener(java.lang.String sessionId, org.jdiameter.api.NetworkReqListener listener)
          Register session lister
protected  org.jdiameter.api.Peer createPeer(int rating, java.lang.String uri, org.jdiameter.api.MetaData metaData, org.jdiameter.api.Configuration config, org.jdiameter.api.Configuration peerConfig, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IMessageParser parser)
           
 void destroy()
          Destroy all resources
 org.jdiameter.api.Peer getPeer(java.lang.String name)
           
 IPeer getPeerByName(java.lang.String peerName)
          Return peer from peer table by peerURI
 IPeer getPeerByUri(java.lang.String peerUri)
          Return peer from peer table by peerURI
 java.util.List<org.jdiameter.api.Peer> getPeerTable()
           
 java.util.Map<java.lang.String,org.jdiameter.api.NetworkReqListener> getSessionReqListeners()
          Return map of session event listeners
protected  void init(IRouter router, org.jdiameter.api.Configuration globalConfig, org.jdiameter.api.MetaData metaData, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IMessageParser parser)
           
 boolean isWrapperFor(java.lang.Class<?> aClass)
           
 void removeSessionListener(java.lang.String sessionId)
          Remove session event listener
 void sendMessage(IMessage message)
          Send message to diameter network ( routing procedure )
 void setAssempler(IAssembler assembler)
          Set instance assembler
 void start()
          Start peer manager ( start network activity )
 void stopped()
          Release resources
 void stopping()
          Run stopping oricedure (unsynchronized)
<T> T
unwrap(java.lang.Class<T> aClass)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected java.util.logging.Logger logger

peerTable

protected java.util.concurrent.ConcurrentHashMap<org.jdiameter.api.URI,org.jdiameter.api.Peer> peerTable

isStarted

protected boolean isStarted

stopTimeOut

protected long stopTimeOut

assembler

protected IAssembler assembler

router

protected IRouter router

metaData

protected org.jdiameter.api.MetaData metaData

peerTaskExecutor

protected java.util.concurrent.ExecutorService peerTaskExecutor

sessionReqListeners

protected java.util.concurrent.ConcurrentHashMap<java.lang.String,org.jdiameter.api.NetworkReqListener> sessionReqListeners
Constructor Detail

PeerTableImpl

public PeerTableImpl(org.jdiameter.api.Configuration globalConfig,
                     org.jdiameter.api.MetaData metaData,
                     IRouter router,
                     IFsmFactory fsmFactory,
                     ITransportLayerFactory transportFactory,
                     IMessageParser parser)

PeerTableImpl

protected PeerTableImpl()
Method Detail

init

protected void init(IRouter router,
                    org.jdiameter.api.Configuration globalConfig,
                    org.jdiameter.api.MetaData metaData,
                    IFsmFactory fsmFactory,
                    ITransportLayerFactory transportFactory,
                    IMessageParser parser)

createPeer

protected org.jdiameter.api.Peer createPeer(int rating,
                                            java.lang.String uri,
                                            org.jdiameter.api.MetaData metaData,
                                            org.jdiameter.api.Configuration config,
                                            org.jdiameter.api.Configuration peerConfig,
                                            IFsmFactory fsmFactory,
                                            ITransportLayerFactory transportFactory,
                                            IMessageParser parser)
                                     throws org.jdiameter.api.InternalException,
                                            TransportException,
                                            java.net.URISyntaxException,
                                            java.net.UnknownServiceException
Throws:
org.jdiameter.api.InternalException
TransportException
java.net.URISyntaxException
java.net.UnknownServiceException

getPeerTable

public java.util.List<org.jdiameter.api.Peer> getPeerTable()
Specified by:
getPeerTable in interface org.jdiameter.api.PeerTable

getPeer

public org.jdiameter.api.Peer getPeer(java.lang.String name)
Specified by:
getPeer in interface org.jdiameter.api.PeerTable

sendMessage

public void sendMessage(IMessage message)
                 throws org.jdiameter.api.IllegalDiameterStateException,
                        org.jdiameter.api.RouteException,
                        org.jdiameter.api.AvpDataException,
                        java.io.IOException
Description copied from interface: IPeerTable
Send message to diameter network ( routing procedure )

Specified by:
sendMessage in interface IPeerTable
Parameters:
message - message instance
Throws:
org.jdiameter.api.IllegalDiameterStateException
org.jdiameter.api.RouteException
org.jdiameter.api.AvpDataException
java.io.IOException

addSessionReqListener

public void addSessionReqListener(java.lang.String sessionId,
                                  org.jdiameter.api.NetworkReqListener listener)
Description copied from interface: IPeerTable
Register session lister

Specified by:
addSessionReqListener in interface IPeerTable
Parameters:
sessionId - session id
listener - listener listener

getSessionReqListeners

public java.util.Map<java.lang.String,org.jdiameter.api.NetworkReqListener> getSessionReqListeners()
Description copied from interface: IPeerTable
Return map of session event listeners

Specified by:
getSessionReqListeners in interface IPeerTable
Returns:
map of session event listeners

getPeerByName

public IPeer getPeerByName(java.lang.String peerName)
Description copied from interface: IPeerTable
Return peer from peer table by peerURI

Specified by:
getPeerByName in interface IPeerTable
Parameters:
peerName - peer host
Returns:
peer instance

getPeerByUri

public IPeer getPeerByUri(java.lang.String peerUri)
Description copied from interface: IPeerTable
Return peer from peer table by peerURI

Specified by:
getPeerByUri in interface IPeerTable
Parameters:
peerUri - peer uri
Returns:
peer instance

removeSessionListener

public void removeSessionListener(java.lang.String sessionId)
Description copied from interface: IPeerTable
Remove session event listener

Specified by:
removeSessionListener in interface IPeerTable
Parameters:
sessionId - id of session

setAssempler

public void setAssempler(IAssembler assembler)
Description copied from interface: IPeerTable
Set instance assembler

Specified by:
setAssempler in interface IPeerTable
Parameters:
assembler - assembler instance

start

public void start()
           throws org.jdiameter.api.IllegalDiameterStateException,
                  java.io.IOException
Description copied from interface: IPeerTable
Start peer manager ( start network activity )

Specified by:
start in interface IPeerTable
Throws:
org.jdiameter.api.IllegalDiameterStateException
java.io.IOException

stopped

public void stopped()
Description copied from interface: IPeerTable
Release resources

Specified by:
stopped in interface IPeerTable

stopping

public void stopping()
Description copied from interface: IPeerTable
Run stopping oricedure (unsynchronized)

Specified by:
stopping in interface IPeerTable

destroy

public void destroy()
Description copied from interface: IPeerTable
Destroy all resources

Specified by:
destroy in interface IPeerTable

isWrapperFor

public boolean isWrapperFor(java.lang.Class<?> aClass)
                     throws org.jdiameter.api.InternalException
Specified by:
isWrapperFor in interface org.jdiameter.api.Wrapper
Throws:
org.jdiameter.api.InternalException

unwrap

public <T> T unwrap(java.lang.Class<T> aClass)
         throws org.jdiameter.api.InternalException
Specified by:
unwrap in interface org.jdiameter.api.Wrapper
Throws:
org.jdiameter.api.InternalException


Copyright © 2008. All Rights Reserved.