Merge "Remove "response" from yang."
[packetcable.git] / protocol_plugins.packetcable / src / main / java / org / umu / cops / prpdp / COPSPdpDataProcess.java
1 /*\r
2  * Copyright (c) 2004 University of Murcia.  All rights reserved.\r
3  * --------------------------------------------------------------\r
4  * For more information, please see <http://www.umu.euro6ix.org/>.\r
5  */\r
6 \r
7 package org.umu.cops.prpdp;\r
8 \r
9 import java.util.Hashtable;\r
10 \r
11 import org.umu.cops.stack.COPSError;\r
12 \r
13 /**\r
14  * Abstract class for implementing policy data processing classes for provisioning PDPs.\r
15  */\r
16 abstract public class COPSPdpDataProcess {\r
17     /**\r
18      * Gets the policies to be uninstalled\r
19      * @param man   The associated request state manager\r
20      * @return A <tt>Vector</tt> holding the policies to be uninstalled\r
21      */\r
22     abstract public Hashtable getRemovePolicy(COPSPdpReqStateMan man);\r
23     /**\r
24      * Gets the policies to be installed\r
25      * @param man   The associated request state manager\r
26      * @return A <tt>Vector</tt> holding the policies to be uninstalled\r
27      */\r
28     abstract public Hashtable getInstallPolicy(COPSPdpReqStateMan man);\r
29     /**\r
30      * Makes a decision from the supplied request data\r
31      * @param man   The associated request state manager\r
32      * @param reqSIs    Client specific data suppplied in the COPS request\r
33      */\r
34     abstract public void setClientData(COPSPdpReqStateMan man, Hashtable reqSIs);\r
35     /**\r
36      * Builds a failure report\r
37      * @param man   The associated request state manager\r
38      * @param reportSIs Report data\r
39      */\r
40     abstract public void failReport (COPSPdpReqStateMan man, Hashtable reportSIs);\r
41     /**\r
42      * Builds a success report\r
43      * @param man   The associated request state manager\r
44      * @param reportSIs Report data\r
45      */\r
46     abstract public void successReport (COPSPdpReqStateMan man, Hashtable reportSIs);\r
47     /**\r
48      * Builds an accounting report\r
49      * @param man   The associated request state manager\r
50      * @param reportSIs Report data\r
51      */\r
52     abstract public void acctReport (COPSPdpReqStateMan man, Hashtable reportSIs);\r
53     /**\r
54      * Notifies that no accounting report has been received\r
55      * @param man   The associated request state manager\r
56      */\r
57     public abstract void notifyNoAcctReport (COPSPdpReqStateMan man);\r
58 \r
59     /**\r
60      * Notifies a keep-alive timeout\r
61      * @param man   The associated request state manager\r
62      */\r
63     public abstract void notifyNoKAliveReceived (COPSPdpReqStateMan man);\r
64 \r
65     /**\r
66       * Notifies that the connection has been closed\r
67       * @param man  The associated request state manager\r
68       * @param error Reason\r
69       */\r
70     public abstract void notifyClosedConnection (COPSPdpReqStateMan man, COPSError error);\r
71 \r
72     /**\r
73      * Notifies that a request state has been deleted\r
74      * @param man   The associated request state manager\r
75      */\r
76     public abstract void notifyDeleteRequestState (COPSPdpReqStateMan man);\r
77 \r
78     /**\r
79      * Notifies that a request state has been closed\r
80      * @param man   The associated request state manager\r
81      */\r
82     public abstract void closeRequestState(COPSPdpReqStateMan man);\r
83 }\r