f2090dfb4bac88780da14ac15bfee5d663f8c525
[openflowjava.git] / third-party / openflow-codec / src / main / java / org / openflow / codec / protocol / action / OFPActionNetworkTimeToLive.java
1 /**
2  * @author Yugandhar Sarraju (ysarraju@in.ibm.com) - July 20, 2013
3  */
4 package org.openflow.codec.protocol.action;
5
6 import org.openflow.codec.io.IDataBuffer;
7
8 /**
9  * Represents an action struct ofp_action_nw_ttl
10  */
11 public class OFPActionNetworkTimeToLive extends OFPAction {
12     public static int MINIMUM_LENGTH = 8;
13
14     protected byte networkTimeToLive;
15
16     public OFPActionNetworkTimeToLive() {
17         super.setType(OFPActionType.SET_NW_TTL);
18         super.setLength((short) MINIMUM_LENGTH);
19     }
20
21     /**
22      * @return the networkTimeToLive
23      */
24     public short getNetworkTimeToLive() {
25         return networkTimeToLive;
26     }
27
28     /**
29      * @param networkTimeToLive
30      *            the networkTimeToLive to set
31      */
32     public void setNetworkTimeToLive(byte networkTtl) {
33         this.networkTimeToLive = networkTtl;
34     }
35
36     @Override
37     public void readFrom(IDataBuffer data) {
38         super.readFrom(data);
39         this.networkTimeToLive = data.get();
40         data.getShort();
41         data.get();
42     }
43
44     @Override
45     public void writeTo(IDataBuffer data) {
46         super.writeTo(data);
47         data.putShort(this.networkTimeToLive);
48         data.putShort((short) 0);
49         data.put((byte) 0);
50     }
51
52     @Override
53     public int hashCode() {
54         final int prime = 373;
55         int result = super.hashCode();
56         result = prime * result + networkTimeToLive;
57         return result;
58     }
59
60     @Override
61     public boolean equals(Object obj) {
62         if (this == obj) {
63             return true;
64         }
65         if (!super.equals(obj)) {
66             return false;
67         }
68         if (!(obj instanceof OFPActionNetworkTimeToLive)) {
69             return false;
70         }
71         OFPActionNetworkTimeToLive other = (OFPActionNetworkTimeToLive) obj;
72         if (networkTimeToLive != other.networkTimeToLive) {
73             return false;
74         }
75         return true;
76     }
77 }