/**
* Copyright (c) 2006 jDiameter.
* https://jdiameter.dev.java.net/
*
* License: Lesser General Public License (LGPL)
*
* e-mail: erick.svenson@yahoo.com
*
*/
package org.jdiameter.api.acc;
import org.jdiameter.api.InternalException;
import org.jdiameter.api.OverloadException;
import org.jdiameter.api.RouteException;
import org.jdiameter.api.acc.events.AccountRequest;
import org.jdiameter.api.app.AppSession;
import org.jdiameter.api.app.StateMachine;
/**
* Basic class for accounting application specific session
* Listener must injection from constructor of implementation class
* @version 1.5.1 Final
*/
public interface ClientAccSession extends AppSession, StateMachine {
/**
* Send Account Request to Server
* @param request request object
* @throws InternalException The InternalException signals that internal error is occurred.
* @throws IllegalStateException The IllegalStateException signals that session has incorrect state (invalid).
* @throws RouteException The NoRouteException signals that no route exist for a given realm.
* @throws OverloadException The OverloadException signals that destination host is overloaded.
*/
void sendAccountRequest(AccountRequest request)
throws InternalException, IllegalStateException, RouteException, OverloadException;
}