Merge "Updated pom.xml to build documentation only on jenkins merge-job"
[openflowjava.git] / third-party / openflow-codec / src / main / java / org / openflow / codec / protocol / statistics / OFPQueueStatisticsReply.java
1 package org.openflow.codec.protocol.statistics;
2
3 import org.openflow.codec.io.IDataBuffer;
4
5 /**
6  * Represents an ofp_queue_stats structure
7  *
8  * @author David Erickson (daviderickson@cs.stanford.edu)
9  * @author AnilGujele
10  */
11 public class OFPQueueStatisticsReply implements OFPStatistics {
12     private final static int MINIMUM_LENGTH = 40;
13     protected int portNumber;
14     protected int queueId;
15     protected long transmitBytes;
16     protected long transmitPackets;
17     protected long transmitErrors;
18     protected int durationSec;
19     protected int durationNanoSec;
20
21     /**
22      * @return the portNumber
23      */
24     public int getPortNumber() {
25         return portNumber;
26     }
27
28     /**
29      * @param portNumber
30      *            the portNumber to set
31      */
32     public void setPortNumber(int portNumber) {
33         this.portNumber = portNumber;
34     }
35
36     /**
37      * @return the queueId
38      */
39     public int getQueueId() {
40         return queueId;
41     }
42
43     /**
44      * @param queueId
45      *            the queueId to set
46      */
47     public void setQueueId(int queueId) {
48         this.queueId = queueId;
49     }
50
51     /**
52      * @return the transmitBytes
53      */
54     public long getTransmitBytes() {
55         return transmitBytes;
56     }
57
58     /**
59      * @param transmitBytes
60      *            the transmitBytes to set
61      */
62     public void setTransmitBytes(long transmitBytes) {
63         this.transmitBytes = transmitBytes;
64     }
65
66     /**
67      * @return the transmitPackets
68      */
69     public long getTransmitPackets() {
70         return transmitPackets;
71     }
72
73     /**
74      * @param transmitPackets
75      *            the transmitPackets to set
76      */
77     public void setTransmitPackets(long transmitPackets) {
78         this.transmitPackets = transmitPackets;
79     }
80
81     /**
82      * @return the transmitErrors
83      */
84     public long getTransmitErrors() {
85         return transmitErrors;
86     }
87
88     /**
89      * @param transmitErrors
90      *            the transmitErrors to set
91      */
92     public void setTransmitErrors(long transmitErrors) {
93         this.transmitErrors = transmitErrors;
94     }
95
96     /**
97      * get duration queue has been alive in seconds.
98      *
99      * @return
100      */
101     public int getDurationSec() {
102         return durationSec;
103     }
104
105     /**
106      * set duration queue has been alive in seconds.
107      *
108      * @param durationSec
109      */
110     public void setDurationSec(int durationSec) {
111         this.durationSec = durationSec;
112     }
113
114     /**
115      * get duration queue has been alive in nanoseconds beyond duration_sec.
116      *
117      * @return
118      */
119     public int getDurationNanoSec() {
120         return durationNanoSec;
121     }
122
123     /**
124      * set duration queue has been alive in nanoseconds beyond duration_sec.
125      *
126      * @param durationNanoSec
127      */
128     public void setDurationNanoSec(int durationNanoSec) {
129         this.durationNanoSec = durationNanoSec;
130     }
131
132     @Override
133     public int getLength() {
134         return MINIMUM_LENGTH;
135     }
136
137     @Override
138     public void readFrom(IDataBuffer data) {
139         this.portNumber = data.getInt();
140         this.queueId = data.getInt();
141         this.transmitBytes = data.getLong();
142         this.transmitPackets = data.getLong();
143         this.transmitErrors = data.getLong();
144         this.durationSec = data.getInt();
145         this.durationNanoSec = data.getInt();
146     }
147
148     @Override
149     public void writeTo(IDataBuffer data) {
150         data.putInt(this.portNumber);
151         data.putInt(this.queueId);
152         data.putLong(this.transmitBytes);
153         data.putLong(this.transmitPackets);
154         data.putLong(this.transmitErrors);
155         data.putInt(this.durationSec);
156         data.putInt(this.durationNanoSec);
157     }
158
159     @Override
160     public int hashCode() {
161         final int prime = 439;
162         int result = 1;
163         result = prime * result + portNumber;
164         result = prime * result + queueId;
165         result = prime * result + (int) (transmitBytes ^ (transmitBytes >>> 32));
166         result = prime * result + (int) (transmitErrors ^ (transmitErrors >>> 32));
167         result = prime * result + (int) (transmitPackets ^ (transmitPackets >>> 32));
168         result = prime * result + durationSec;
169         result = prime * result + durationNanoSec;
170         return result;
171     }
172
173     @Override
174     public boolean equals(Object obj) {
175         if (this == obj) {
176             return true;
177         }
178         if (obj == null) {
179             return false;
180         }
181         if (!(obj instanceof OFPQueueStatisticsReply)) {
182             return false;
183         }
184         OFPQueueStatisticsReply other = (OFPQueueStatisticsReply) obj;
185         if (portNumber != other.portNumber) {
186             return false;
187         }
188         if (queueId != other.queueId) {
189             return false;
190         }
191         if (transmitBytes != other.transmitBytes) {
192             return false;
193         }
194         if (transmitErrors != other.transmitErrors) {
195             return false;
196         }
197         if (transmitPackets != other.transmitPackets) {
198             return false;
199         }
200         if (durationSec != other.durationSec) {
201             return false;
202         }
203         if (durationNanoSec != other.durationNanoSec) {
204             return false;
205         }
206         return true;
207     }
208 }