Refactor of PDP Agent code.
[packetcable.git] / packetcable-driver / src / main / java / org / pcmm / PCMMPdpAgent.java
1 /**
2  @header@
3  */
4
5 package org.pcmm;
6
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9 import org.umu.cops.prpdp.COPSPdpAgent;
10 import org.umu.cops.prpdp.COPSPdpConnection;
11 import org.umu.cops.prpdp.COPSPdpException;
12 import org.umu.cops.stack.COPSHandle;
13
14 import java.net.Socket;
15
16 /**
17  * Core PDP agent for provisioning
18  */
19 public class PCMMPdpAgent extends COPSPdpAgent {
20
21     private static final Logger logger = LoggerFactory.getLogger(PCMMPdpAgent.class);
22
23     /** Well-known port for PCMM */
24     public static final int WELL_KNOWN_PDP_PORT = 3918;
25
26     /**
27      * Policy data processing object
28      */
29     private final PCMMPdpDataProcess _thisProcess;
30
31     /**
32      * Creates a PDP Agent
33      *
34      * @param clientType - COPS Client-type
35      * @param psHost - Host to connect to
36      * @param psPort - Port to connect to
37      * @param process - Object to perform policy data processing
38      */
39     public PCMMPdpAgent(final String psHost, final int psPort, final short clientType,
40                         final PCMMPdpDataProcess process) {
41         super(psHost, psPort, clientType, process);
42         _thisProcess = process;
43     }
44
45     @Override
46     protected COPSPdpConnection setputPdpConnection(final Socket conn, final COPSHandle handle) {
47         logger.debug("PDPCOPSConnection");
48         final PCMMPdpConnection pdpConn = new PCMMPdpConnection(_pepId, conn, _thisProcess, _kaTimer, _acctTimer);
49         final PCMMPdpReqStateMan man = new PCMMPdpReqStateMan(_clientType, handle, _thisProcess);
50         pdpConn.addStateMan(handle, man);
51         try {
52             man.initRequestState(conn);
53         } catch (COPSPdpException unae) {
54             logger.error("Unexpected error initializing state", unae);
55         }
56         // XXX - End handleRequestMsg
57
58         logger.info("Starting PDP connection thread to - " + _host);
59         return pdpConn;
60     }
61
62 }
63