package org.umu.cops.ospdp;
import java.util.Vector;
import org.umu.cops.stack.COPSError;
/**
* Abstract class for implementing policy data processing classes for outsourcing PDPs.
*/
abstract public class COPSPdpOSDataProcess {
/**
* Gets the policies to be uninstalled
* @param man The associated request state manager
* @return A Vector holding the policies to be uninstalled
*/
abstract public Vector getRemovePolicy(COPSPdpOSReqStateMan man);
/**
* Gets the policies to be installed
* @param man The associated request state manager
* @return A Vector holding the policies to be uninstalled
*/
abstract public Vector getInstallPolicy(COPSPdpOSReqStateMan man);
/**
* Makes a decision from the supplied request data
* @param man The associated request state manager
* @param reqSIs Client specific data suppplied in the COPS request
*/
abstract public void setClientData(COPSPdpOSReqStateMan man, Vector reqSIs);
/**
* Builds a failure report
* @param man The associated request state manager
* @param reportSIs Report data
*/
abstract public void failReport (COPSPdpOSReqStateMan man, Vector reportSIs);
/**
* Builds a success report
* @param man The associated request state manager
* @param reportSIs Report data
*/
abstract public void successReport (COPSPdpOSReqStateMan man, Vector reportSIs);
/**
* Builds an accounting report
* @param man The associated request state manager
* @param reportSIs Report data
*/
abstract public void acctReport (COPSPdpOSReqStateMan man, Vector reportSIs);
/**
* Notifies that no accounting report has been received
* @param man The associated request state manager
*/
public abstract void notifyNoAcctReport (COPSPdpOSReqStateMan man);
/**
* Notifies a keep-alive timeout
* @param man The associated request state manager
*/
public abstract void notifyNoKAliveReceived (COPSPdpOSReqStateMan man);
/**
* Notifies that the connection has been closed
* @param man The associated request state manager
* @param error Reason
*/
public abstract void notifyClosedConnection (COPSPdpOSReqStateMan man, COPSError error);
/**
* Notifies that a request state has been deleted
* @param man The associated request state manager
*/
public abstract void notifyDeleteRequestState (COPSPdpOSReqStateMan man);
/**
* Notifies that a request state has been closed
* @param man The associated request state manager
*/
public abstract void closeRequestState(COPSPdpOSReqStateMan man);
}