org.jdiameter.client.impl.controller
Class PeerTableImpl

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

public class PeerTableImpl
extends java.lang.Object
implements IPeerTable

Author:
erick.svenson@yahoo.com, Bartosz Baranowski , Alexandre Mendonca

Nested Class Summary
protected  class PeerTableImpl.PeerTableThreadFactory
           
 
Field Summary
protected  IAssembler assembler
           
protected  IConcurrentFactory concurrentFactory
           
protected  Dictionary dictionary
           
protected  boolean isStarted
           
protected  MetaData metaData
           
protected  java.util.concurrent.ConcurrentHashMap<java.lang.String,Peer> peerTable
           
protected  IRouter router
           
protected  ISessionDatasource sessionDatasource
           
protected  long stopTimeOut
           
 
Constructor Summary
protected PeerTableImpl()
           
  PeerTableImpl(Configuration globalConfig, MetaData metaData, IContainer stack, IRouter router, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IStatisticManager statisticFactory, IConcurrentFactory concurrentFactory, IMessageParser parser)
           
 
Method Summary
 void addSessionReqListener(java.lang.String sessionId, NetworkReqListener listener)
          Register session lister
protected  Peer createPeer(int rating, java.lang.String uri, java.lang.String ip, java.lang.String portRange, MetaData metaData, Configuration config, Configuration peerConfig, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IStatisticManager statisticFactory, IConcurrentFactory concurrentFactory, IMessageParser parser)
           
 void destroy()
          Destroy all resources
 IPeer getPeer(java.lang.String fqdn)
          Return peer from peer table by identity - FQDN host name.
 java.util.List<Peer> getPeerTable()
           
 java.util.Map<java.lang.String,NetworkReqListener> getSessionReqListeners()
          Return map of session event listeners
protected  void init(IContainer stack, IRouter router, Configuration globalConfig, MetaData metaData, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IStatisticManager statisticFactory, IConcurrentFactory concurrentFactory, 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 setAssembler(IAssembler assembler)
          Set instance assembler
 void start()
          Start peer manager ( start network activity )
 void stopped()
          Release resources
 void stopping(int disconnectCause)
          Run stopping procedure (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

peerTable

protected java.util.concurrent.ConcurrentHashMap<java.lang.String,Peer> peerTable

isStarted

protected boolean isStarted

stopTimeOut

protected long stopTimeOut

assembler

protected IAssembler assembler

router

protected IRouter router

metaData

protected MetaData metaData

concurrentFactory

protected IConcurrentFactory concurrentFactory

sessionDatasource

protected ISessionDatasource sessionDatasource

dictionary

protected final Dictionary dictionary
Constructor Detail

PeerTableImpl

protected PeerTableImpl()

PeerTableImpl

public PeerTableImpl(Configuration globalConfig,
                     MetaData metaData,
                     IContainer stack,
                     IRouter router,
                     IFsmFactory fsmFactory,
                     ITransportLayerFactory transportFactory,
                     IStatisticManager statisticFactory,
                     IConcurrentFactory concurrentFactory,
                     IMessageParser parser)
Method Detail

init

protected void init(IContainer stack,
                    IRouter router,
                    Configuration globalConfig,
                    MetaData metaData,
                    IFsmFactory fsmFactory,
                    ITransportLayerFactory transportFactory,
                    IStatisticManager statisticFactory,
                    IConcurrentFactory concurrentFactory,
                    IMessageParser parser)

createPeer

protected Peer createPeer(int rating,
                          java.lang.String uri,
                          java.lang.String ip,
                          java.lang.String portRange,
                          MetaData metaData,
                          Configuration config,
                          Configuration peerConfig,
                          IFsmFactory fsmFactory,
                          ITransportLayerFactory transportFactory,
                          IStatisticManager statisticFactory,
                          IConcurrentFactory concurrentFactory,
                          IMessageParser parser)
                   throws InternalException,
                          TransportException,
                          java.net.URISyntaxException,
                          java.net.UnknownServiceException
Throws:
InternalException
TransportException
java.net.URISyntaxException
java.net.UnknownServiceException

getPeerTable

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

sendMessage

public void sendMessage(IMessage message)
                 throws IllegalDiameterStateException,
                        RouteException,
                        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:
IllegalDiameterStateException
RouteException
AvpDataException
java.io.IOException

addSessionReqListener

public void addSessionReqListener(java.lang.String sessionId,
                                  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,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

getPeer

public IPeer getPeer(java.lang.String fqdn)
Description copied from interface: IPeerTable
Return peer from peer table by identity - FQDN host name.

Specified by:
getPeer in interface PeerTable
Specified by:
getPeer in interface IPeerTable
Parameters:
fqdn - peer host
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

setAssembler

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

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

start

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

Specified by:
start in interface IPeerTable
Throws:
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(int disconnectCause)
Description copied from interface: IPeerTable
Run stopping procedure (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 InternalException
Specified by:
isWrapperFor in interface Wrapper
Throws:
InternalException

unwrap

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


Copyright © 2014. All Rights Reserved.