blob: a85fd93042fa0c5add99150f21edcddd0adea8d0 [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
2// Copyright (c) 2011, 2012 Open Networking Foundation
3// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
4// This library was generated by the LoxiGen Compiler.
5// See the file LICENSE.txt which should have been included in the source distribution
6
7// Automatically generated by LOXI from template of_class.java
8// Do not modify
9
10package org.projectfloodlight.openflow.protocol.ver13;
11
12import org.projectfloodlight.openflow.protocol.*;
13import org.projectfloodlight.openflow.protocol.action.*;
14import org.projectfloodlight.openflow.protocol.actionid.*;
15import org.projectfloodlight.openflow.protocol.bsntlv.*;
16import org.projectfloodlight.openflow.protocol.errormsg.*;
17import org.projectfloodlight.openflow.protocol.meterband.*;
18import org.projectfloodlight.openflow.protocol.instruction.*;
19import org.projectfloodlight.openflow.protocol.instructionid.*;
20import org.projectfloodlight.openflow.protocol.match.*;
21import org.projectfloodlight.openflow.protocol.oxm.*;
22import org.projectfloodlight.openflow.protocol.queueprop.*;
23import org.projectfloodlight.openflow.types.*;
24import org.projectfloodlight.openflow.util.*;
25import org.projectfloodlight.openflow.exceptions.*;
26import org.slf4j.Logger;
27import org.slf4j.LoggerFactory;
28import java.util.Set;
29import org.jboss.netty.buffer.ChannelBuffer;
30import com.google.common.hash.PrimitiveSink;
31import com.google.common.hash.Funnel;
32
33class OFMeterBandExperimenterVer13 implements OFMeterBandExperimenter {
34 private static final Logger logger = LoggerFactory.getLogger(OFMeterBandExperimenterVer13.class);
35 // version: 1.3
36 final static byte WIRE_VERSION = 4;
37 final static int LENGTH = 16;
38
39 private final static long DEFAULT_RATE = 0x0L;
40 private final static long DEFAULT_BURST_SIZE = 0x0L;
41 private final static long DEFAULT_EXPERIMENTER = 0x0L;
42
43 // OF message fields
44 private final long rate;
45 private final long burstSize;
46 private final long experimenter;
47//
48 // Immutable default instance
49 final static OFMeterBandExperimenterVer13 DEFAULT = new OFMeterBandExperimenterVer13(
50 DEFAULT_RATE, DEFAULT_BURST_SIZE, DEFAULT_EXPERIMENTER
51 );
52
53 // package private constructor - used by readers, builders, and factory
54 OFMeterBandExperimenterVer13(long rate, long burstSize, long experimenter) {
55 this.rate = rate;
56 this.burstSize = burstSize;
57 this.experimenter = experimenter;
58 }
59
60 // Accessors for OF message fields
61 @Override
62 public int getType() {
63 return 0xffff;
64 }
65
66 @Override
67 public long getRate() {
68 return rate;
69 }
70
71 @Override
72 public long getBurstSize() {
73 return burstSize;
74 }
75
76 @Override
77 public long getExperimenter() {
78 return experimenter;
79 }
80
81 @Override
82 public OFVersion getVersion() {
83 return OFVersion.OF_13;
84 }
85
86
87
88 public OFMeterBandExperimenter.Builder createBuilder() {
89 return new BuilderWithParent(this);
90 }
91
92 static class BuilderWithParent implements OFMeterBandExperimenter.Builder {
93 final OFMeterBandExperimenterVer13 parentMessage;
94
95 // OF message fields
96 private boolean rateSet;
97 private long rate;
98 private boolean burstSizeSet;
99 private long burstSize;
100 private boolean experimenterSet;
101 private long experimenter;
102
103 BuilderWithParent(OFMeterBandExperimenterVer13 parentMessage) {
104 this.parentMessage = parentMessage;
105 }
106
107 @Override
108 public int getType() {
109 return 0xffff;
110 }
111
112 @Override
113 public long getRate() {
114 return rate;
115 }
116
117 @Override
118 public OFMeterBandExperimenter.Builder setRate(long rate) {
119 this.rate = rate;
120 this.rateSet = true;
121 return this;
122 }
123 @Override
124 public long getBurstSize() {
125 return burstSize;
126 }
127
128 @Override
129 public OFMeterBandExperimenter.Builder setBurstSize(long burstSize) {
130 this.burstSize = burstSize;
131 this.burstSizeSet = true;
132 return this;
133 }
134 @Override
135 public long getExperimenter() {
136 return experimenter;
137 }
138
139 @Override
140 public OFMeterBandExperimenter.Builder setExperimenter(long experimenter) {
141 this.experimenter = experimenter;
142 this.experimenterSet = true;
143 return this;
144 }
145 @Override
146 public OFVersion getVersion() {
147 return OFVersion.OF_13;
148 }
149
150
151
152 @Override
153 public OFMeterBandExperimenter build() {
154 long rate = this.rateSet ? this.rate : parentMessage.rate;
155 long burstSize = this.burstSizeSet ? this.burstSize : parentMessage.burstSize;
156 long experimenter = this.experimenterSet ? this.experimenter : parentMessage.experimenter;
157
158 //
159 return new OFMeterBandExperimenterVer13(
160 rate,
161 burstSize,
162 experimenter
163 );
164 }
165
166 }
167
168 static class Builder implements OFMeterBandExperimenter.Builder {
169 // OF message fields
170 private boolean rateSet;
171 private long rate;
172 private boolean burstSizeSet;
173 private long burstSize;
174 private boolean experimenterSet;
175 private long experimenter;
176
177 @Override
178 public int getType() {
179 return 0xffff;
180 }
181
182 @Override
183 public long getRate() {
184 return rate;
185 }
186
187 @Override
188 public OFMeterBandExperimenter.Builder setRate(long rate) {
189 this.rate = rate;
190 this.rateSet = true;
191 return this;
192 }
193 @Override
194 public long getBurstSize() {
195 return burstSize;
196 }
197
198 @Override
199 public OFMeterBandExperimenter.Builder setBurstSize(long burstSize) {
200 this.burstSize = burstSize;
201 this.burstSizeSet = true;
202 return this;
203 }
204 @Override
205 public long getExperimenter() {
206 return experimenter;
207 }
208
209 @Override
210 public OFMeterBandExperimenter.Builder setExperimenter(long experimenter) {
211 this.experimenter = experimenter;
212 this.experimenterSet = true;
213 return this;
214 }
215 @Override
216 public OFVersion getVersion() {
217 return OFVersion.OF_13;
218 }
219
220//
221 @Override
222 public OFMeterBandExperimenter build() {
223 long rate = this.rateSet ? this.rate : DEFAULT_RATE;
224 long burstSize = this.burstSizeSet ? this.burstSize : DEFAULT_BURST_SIZE;
225 long experimenter = this.experimenterSet ? this.experimenter : DEFAULT_EXPERIMENTER;
226
227
228 return new OFMeterBandExperimenterVer13(
229 rate,
230 burstSize,
231 experimenter
232 );
233 }
234
235 }
236
237
238 final static Reader READER = new Reader();
239 static class Reader implements OFMessageReader<OFMeterBandExperimenter> {
240 @Override
241 public OFMeterBandExperimenter readFrom(ChannelBuffer bb) throws OFParseError {
242 int start = bb.readerIndex();
243 // fixed value property type == 0xffff
244 short type = bb.readShort();
245 if(type != (short) 0xffff)
246 throw new OFParseError("Wrong type: Expected=0xffff(0xffff), got="+type);
247 int length = U16.f(bb.readShort());
248 if(length != 16)
249 throw new OFParseError("Wrong length: Expected=16(16), got="+length);
250 if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
251 // Buffer does not have all data yet
252 bb.readerIndex(start);
253 return null;
254 }
255 if(logger.isTraceEnabled())
256 logger.trace("readFrom - length={}", length);
257 long rate = U32.f(bb.readInt());
258 long burstSize = U32.f(bb.readInt());
259 long experimenter = U32.f(bb.readInt());
260
261 OFMeterBandExperimenterVer13 meterBandExperimenterVer13 = new OFMeterBandExperimenterVer13(
262 rate,
263 burstSize,
264 experimenter
265 );
266 if(logger.isTraceEnabled())
267 logger.trace("readFrom - read={}", meterBandExperimenterVer13);
268 return meterBandExperimenterVer13;
269 }
270 }
271
272 public void putTo(PrimitiveSink sink) {
273 FUNNEL.funnel(this, sink);
274 }
275
276 final static OFMeterBandExperimenterVer13Funnel FUNNEL = new OFMeterBandExperimenterVer13Funnel();
277 static class OFMeterBandExperimenterVer13Funnel implements Funnel<OFMeterBandExperimenterVer13> {
278 private static final long serialVersionUID = 1L;
279 @Override
280 public void funnel(OFMeterBandExperimenterVer13 message, PrimitiveSink sink) {
281 // fixed value property type = 0xffff
282 sink.putShort((short) 0xffff);
283 // fixed value property length = 16
284 sink.putShort((short) 0x10);
285 sink.putLong(message.rate);
286 sink.putLong(message.burstSize);
287 sink.putLong(message.experimenter);
288 }
289 }
290
291
292 public void writeTo(ChannelBuffer bb) {
293 WRITER.write(bb, this);
294 }
295
296 final static Writer WRITER = new Writer();
297 static class Writer implements OFMessageWriter<OFMeterBandExperimenterVer13> {
298 @Override
299 public void write(ChannelBuffer bb, OFMeterBandExperimenterVer13 message) {
300 // fixed value property type = 0xffff
301 bb.writeShort((short) 0xffff);
302 // fixed value property length = 16
303 bb.writeShort((short) 0x10);
304 bb.writeInt(U32.t(message.rate));
305 bb.writeInt(U32.t(message.burstSize));
306 bb.writeInt(U32.t(message.experimenter));
307
308
309 }
310 }
311
312 @Override
313 public String toString() {
314 StringBuilder b = new StringBuilder("OFMeterBandExperimenterVer13(");
315 b.append("rate=").append(rate);
316 b.append(", ");
317 b.append("burstSize=").append(burstSize);
318 b.append(", ");
319 b.append("experimenter=").append(experimenter);
320 b.append(")");
321 return b.toString();
322 }
323
324 @Override
325 public boolean equals(Object obj) {
326 if (this == obj)
327 return true;
328 if (obj == null)
329 return false;
330 if (getClass() != obj.getClass())
331 return false;
332 OFMeterBandExperimenterVer13 other = (OFMeterBandExperimenterVer13) obj;
333
334 if( rate != other.rate)
335 return false;
336 if( burstSize != other.burstSize)
337 return false;
338 if( experimenter != other.experimenter)
339 return false;
340 return true;
341 }
342
343 @Override
344 public int hashCode() {
345 final int prime = 31;
346 int result = 1;
347
348 result = prime * (int) (rate ^ (rate >>> 32));
349 result = prime * (int) (burstSize ^ (burstSize >>> 32));
350 result = prime * (int) (experimenter ^ (experimenter >>> 32));
351 return result;
352 }
353
354}