/*
* Copyright (c) 2006 jDiameter.
* https://jdiameter.dev.java.net/
*
* License: Sun Industry Standards Source License (SISSL)
*
* e-mail: erick.svenson@yahoo.com
*
*/
package org.jdiameter.api;
import java.util.List;
/**
* This interface introduces a capability to work with a network.
* You can get instance of this interface over stack instance:
* <code>
* if (stack.isWrapperFor(Network.class)) {
* Network netWork = stack.unwrap(Network.class);
* .....
* }
* </code>
* @version 1.5.1 Final
*/
public interface Network extends Wrapper {
/**
* Return local peer network statistics
* @return network statistics
*/
Statistic getStatistic();
/**
* Register listener for processing network requests
* @param applicationId application Id
* @param listener request listener
* @throws ApplicationAlreadyUseException if listener with predefined appId already append to network
*/
void addNetworkReqListener(NetworkReqListener listener, ApplicationId... applicationId) throws ApplicationAlreadyUseException;
/**
* Register listener for processing network requests
* @param selector application selector
* @param listener request listener
*/
void addNetworkReqListener(NetworkReqListener listener, Selector<Message, ApplicationId>... selector);
/**
* Remove request listener
* @param applicationId application id of listener
*/
void removeNetworkReqListener(ApplicationId... applicationId);
/**
* Remove request listener
* @param selector selector of application
*/
void removeNetworkReqListener(Selector<Message, ApplicationId>... selector);
}