Fixed building of models, moved code into directory structure.
[packetcable.git] / protocol_plugins.packetcable / src / main / java / org / umu / cops / ospdp / COPSPdpOSDataProcess.java
diff --git a/protocol_plugins.packetcable/src/main/java/org/umu/cops/ospdp/COPSPdpOSDataProcess.java b/protocol_plugins.packetcable/src/main/java/org/umu/cops/ospdp/COPSPdpOSDataProcess.java
new file mode 100644 (file)
index 0000000..4a5e438
--- /dev/null
@@ -0,0 +1,78 @@
+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