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