package net.java.slee.resource.diameter.ro;
import java.io.IOException;
import net.java.slee.resource.diameter.cca.CreditControlServerSession;
import net.java.slee.resource.diameter.cca.events.CreditControlAnswer;
/**
*
* An RoServerSessionActivity represents a charging control session for Credit Control servers.
*
* A single RoServerSessionActivity will be created for the Diameter session. All requests received for the session will be fired as events on the same RoServerSessionActivity.
*
* @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a>
* @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a>
*/
public interface RoServerSession extends RoSession, CreditControlServerSession {
/**
* Create a Ro-specific Credit-Control-Answer message pre-populated with the AVPs appropriate for this session.
*
* @return a new CreditControlAnswer
*/
public CreditControlAnswer createRoCreditControlAnswer();
/**
* Sends a Credit-Control-Answer message to the peer.
*
* @param cca the CreditControlAnswer to send
* @throws IOException if an error occured sending the request to the peer
*/
public void sendCreditControlAnswer(CreditControlAnswer cca) throws IOException;
}