package org.umu.cops.ospdp; import org.umu.cops.prpdp.COPSPdpDataProcess; import org.umu.cops.stack.COPSClientSI; import java.util.Vector; /** * Abstract class for implementing policy data processing classes for outsourcing PDPs. * TODO - Determine why the overloaded methods signatures here vs. the super are so different!!! */ public interface COPSPdpOSDataProcess extends COPSPdpDataProcess { /** * Gets the policies to be uninstalled * @param man The associated request state manager * @return A Vector holding the policies to be uninstalled */ 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 */ 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 */ void setClientData(COPSPdpOSReqStateMan man, COPSClientSI... reqSIs); /** * Builds a failure report * @param man The associated request state manager * @param reportSIs Report data */ void failReport(COPSPdpOSReqStateMan man, COPSClientSI... reportSIs); /** * Builds a success report * @param man The associated request state manager * @param reportSIs Report data */ void successReport(COPSPdpOSReqStateMan man, COPSClientSI... reportSIs); /** * Builds an accounting report * @param man The associated request state manager * @param reportSIs Report data */ void acctReport(COPSPdpOSReqStateMan man, COPSClientSI... reportSIs); /** * Notifies that no accounting report has been received * @param man The associated request state manager */ void notifyNoAcctReport(COPSPdpOSReqStateMan man); /** * Notifies that a request state has been deleted * @param man The associated request state manager */ void notifyDeleteRequestState(COPSPdpOSReqStateMan man); }