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