/*
* Copyright (c) 2004 University of Murcia. All rights reserved.
* --------------------------------------------------------------
* For more information, please see .
*/
package org.umu.cops.prpdp;
import org.umu.cops.stack.COPSError;
import java.util.Hashtable;
import java.util.Map;
/**
* Abstract class for implementing policy data processing classes for provisioning PDPs.
*/
public interface COPSPdpDataProcess {
/**
* Gets the policies to be uninstalled
* @param man The associated request state manager
* @return A Vector holding the policies to be uninstalled
*/
public Hashtable getRemovePolicy(COPSPdpReqStateMan man);
/**
* Gets the policies to be installed
* @param man The associated request state manager
* @return A Vector holding the policies to be uninstalled
*/
public Hashtable getInstallPolicy(COPSPdpReqStateMan 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
*/
public void setClientData(COPSPdpReqStateMan man, Map reqSIs);
/**
* Builds a failure report
* @param man The associated request state manager
* @param reportSIs Report data
*/
public void failReport(COPSPdpReqStateMan man, Map reportSIs);
/**
* Builds a success report
* @param man The associated request state manager
* @param reportSIs Report data
*/
public void successReport(COPSPdpReqStateMan man, Map reportSIs);
/**
* Builds an accounting report
* @param man The associated request state manager
* @param reportSIs Report data
*/
public void acctReport(COPSPdpReqStateMan man, Map reportSIs);
/**
* Notifies that no accounting report has been received
* @param man The associated request state manager
*/
public void notifyNoAcctReport (COPSPdpReqStateMan man);
/**
* Notifies a keep-alive timeout
* @param man The associated request state manager
*/
public void notifyNoKAliveReceived (COPSPdpReqStateMan man);
/**
* Notifies that the connection has been closed
* @param man The associated request state manager
* @param error Reason
*/
public void notifyClosedConnection (COPSPdpReqStateMan man, COPSError error);
/**
* Notifies that a request state has been deleted
* @param man The associated request state manager
*/
public void notifyDeleteRequestState (COPSPdpReqStateMan man);
/**
* Notifies that a request state has been closed
* @param man The associated request state manager
*/
public void closeRequestState(COPSPdpReqStateMan man);
}