Merge "Remove "response" from yang."
[packetcable.git] / protocol_plugins.packetcable / src / main / java / org / umu / cops / stack / COPSTimer.java
1 /*\r
2  * Copyright (c) 2003 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.stack;\r
8 \r
9 import java.io.IOException;\r
10 import java.io.OutputStream;\r
11 import java.net.Socket;\r
12 \r
13 /**\r
14  * COPS Timer Object\r
15  *\r
16  * @version COPSTimer.java, v 1.00 2003\r
17  *\r
18  */\r
19 public class COPSTimer extends COPSObjBase {\r
20 \r
21     protected COPSObjHeader _objHdr;\r
22     private short _reserved;\r
23     private short _timerValue;\r
24 \r
25     /**\r
26      * Returns size in number of octects, including header\r
27      *\r
28      * @return   a short\r
29      *\r
30      */\r
31     public short getDataLength() {\r
32         //Add the size of the header also\r
33         return (_objHdr.getDataLength());\r
34     }\r
35 \r
36     /**\r
37      * Method getTimerVal\r
38      *\r
39      * @return   a short\r
40      *\r
41      */\r
42     public short getTimerVal() {\r
43         return _timerValue;\r
44     };\r
45 \r
46     /**\r
47      * Method isTimer\r
48      *\r
49      * @return   a boolean\r
50      *\r
51      */\r
52     public boolean isTimer() {\r
53         return true;\r
54     };\r
55 \r
56     /**\r
57      * Method isKATimer\r
58      *\r
59      * @return   a boolean\r
60      *\r
61      */\r
62     public boolean isKATimer() {\r
63         return false;\r
64     };\r
65 \r
66     /**\r
67      * Method isAcctTimer\r
68      *\r
69      * @return   a boolean\r
70      *\r
71      */\r
72     public boolean isAcctTimer() {\r
73         return false;\r
74     };\r
75 \r
76     /**\r
77      * Write data to given socket in Network byte order\r
78      *\r
79      * @param    id                  a  Socket\r
80      *\r
81      * @throws   IOException\r
82      *\r
83      */\r
84     public void writeData(Socket id) throws IOException {\r
85         _objHdr.writeData(id);\r
86 \r
87         byte[] buf = new byte[4];\r
88 \r
89         buf[0] = (byte) (_reserved >> 8);\r
90         buf[1] = (byte) _reserved;\r
91         buf[2] = (byte) (_timerValue >> 8);\r
92         buf[3] = (byte) _timerValue;\r
93         COPSUtil.writeData(id, buf, 4);\r
94     }\r
95 \r
96     protected COPSTimer(short timeVal) {\r
97         _objHdr = new COPSObjHeader();\r
98         //Time range is 1 - 65535 seconds\r
99         _timerValue = timeVal;\r
100         // _objHdr.setDataLength(sizeof(u_int32_t));\r
101         _objHdr.setDataLength((short) 4);\r
102     }\r
103 \r
104     /**\r
105      * Receive data that is in netwrok byte order and fill in the obj.\r
106      */\r
107     protected COPSTimer(byte[] dataPtr) {\r
108         _objHdr = new COPSObjHeader();\r
109         _objHdr.parse(dataPtr);\r
110         // _objHdr.checkDataLength();\r
111 \r
112         _reserved |= ((short) dataPtr[4]) << 8;\r
113         _reserved |= ((short) dataPtr[5]) & 0xFF;\r
114         _timerValue |= ((short) dataPtr[6]) << 8;\r
115         _timerValue |= ((short) dataPtr[7]) & 0xFF;\r
116 \r
117         // _objHdr.setDataLength(sizeof(u_int32_t));\r
118         _objHdr.setDataLength((short) 4);\r
119     }\r
120 \r
121     /**\r
122      * Write an object textual description in the output stream\r
123      *\r
124      * @param    os                  an OutputStream\r
125      *\r
126      * @throws   IOException\r
127      *\r
128      */\r
129     public void dump(OutputStream os) throws IOException {\r
130         _objHdr.dump(os);\r
131         os.write(new String("Timer val: " + _timerValue + "\n").getBytes());\r
132     }\r
133 \r
134 }\r
135 \r