blob: e5685ccb051e6e57f655bcd07c6dcbcd0f7306d7 [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;
32import java.util.Arrays;
33
34class OFTableFeaturePropExperimenterMissVer13 implements OFTableFeaturePropExperimenterMiss {
35 private static final Logger logger = LoggerFactory.getLogger(OFTableFeaturePropExperimenterMissVer13.class);
36 // version: 1.3
37 final static byte WIRE_VERSION = 4;
38 final static int MINIMUM_LENGTH = 12;
39
40 private final static long DEFAULT_EXPERIMENTER = 0x0L;
41 private final static long DEFAULT_SUBTYPE = 0x0L;
42 private final static byte[] DEFAULT_EXPERIMENTER_DATA = new byte[0];
43
44 // OF message fields
45 private final long experimenter;
46 private final long subtype;
47 private final byte[] experimenterData;
48//
49 // Immutable default instance
50 final static OFTableFeaturePropExperimenterMissVer13 DEFAULT = new OFTableFeaturePropExperimenterMissVer13(
51 DEFAULT_EXPERIMENTER, DEFAULT_SUBTYPE, DEFAULT_EXPERIMENTER_DATA
52 );
53
54 // package private constructor - used by readers, builders, and factory
55 OFTableFeaturePropExperimenterMissVer13(long experimenter, long subtype, byte[] experimenterData) {
56 this.experimenter = experimenter;
57 this.subtype = subtype;
58 this.experimenterData = experimenterData;
59 }
60
61 // Accessors for OF message fields
62 @Override
63 public int getType() {
64 return 0xffff;
65 }
66
67 @Override
68 public long getExperimenter() {
69 return experimenter;
70 }
71
72 @Override
73 public long getSubtype() {
74 return subtype;
75 }
76
77 @Override
78 public byte[] getExperimenterData() {
79 return experimenterData;
80 }
81
82 @Override
83 public OFVersion getVersion() {
84 return OFVersion.OF_13;
85 }
86
87
88
89 public OFTableFeaturePropExperimenterMiss.Builder createBuilder() {
90 return new BuilderWithParent(this);
91 }
92
93 static class BuilderWithParent implements OFTableFeaturePropExperimenterMiss.Builder {
94 final OFTableFeaturePropExperimenterMissVer13 parentMessage;
95
96 // OF message fields
97 private boolean experimenterSet;
98 private long experimenter;
99 private boolean subtypeSet;
100 private long subtype;
101 private boolean experimenterDataSet;
102 private byte[] experimenterData;
103
104 BuilderWithParent(OFTableFeaturePropExperimenterMissVer13 parentMessage) {
105 this.parentMessage = parentMessage;
106 }
107
108 @Override
109 public int getType() {
110 return 0xffff;
111 }
112
113 @Override
114 public long getExperimenter() {
115 return experimenter;
116 }
117
118 @Override
119 public OFTableFeaturePropExperimenterMiss.Builder setExperimenter(long experimenter) {
120 this.experimenter = experimenter;
121 this.experimenterSet = true;
122 return this;
123 }
124 @Override
125 public long getSubtype() {
126 return subtype;
127 }
128
129 @Override
130 public OFTableFeaturePropExperimenterMiss.Builder setSubtype(long subtype) {
131 this.subtype = subtype;
132 this.subtypeSet = true;
133 return this;
134 }
135 @Override
136 public byte[] getExperimenterData() {
137 return experimenterData;
138 }
139
140 @Override
141 public OFTableFeaturePropExperimenterMiss.Builder setExperimenterData(byte[] experimenterData) {
142 this.experimenterData = experimenterData;
143 this.experimenterDataSet = true;
144 return this;
145 }
146 @Override
147 public OFVersion getVersion() {
148 return OFVersion.OF_13;
149 }
150
151
152
153 @Override
154 public OFTableFeaturePropExperimenterMiss build() {
155 long experimenter = this.experimenterSet ? this.experimenter : parentMessage.experimenter;
156 long subtype = this.subtypeSet ? this.subtype : parentMessage.subtype;
157 byte[] experimenterData = this.experimenterDataSet ? this.experimenterData : parentMessage.experimenterData;
158 if(experimenterData == null)
159 throw new NullPointerException("Property experimenterData must not be null");
160
161 //
162 return new OFTableFeaturePropExperimenterMissVer13(
163 experimenter,
164 subtype,
165 experimenterData
166 );
167 }
168
169 }
170
171 static class Builder implements OFTableFeaturePropExperimenterMiss.Builder {
172 // OF message fields
173 private boolean experimenterSet;
174 private long experimenter;
175 private boolean subtypeSet;
176 private long subtype;
177 private boolean experimenterDataSet;
178 private byte[] experimenterData;
179
180 @Override
181 public int getType() {
182 return 0xffff;
183 }
184
185 @Override
186 public long getExperimenter() {
187 return experimenter;
188 }
189
190 @Override
191 public OFTableFeaturePropExperimenterMiss.Builder setExperimenter(long experimenter) {
192 this.experimenter = experimenter;
193 this.experimenterSet = true;
194 return this;
195 }
196 @Override
197 public long getSubtype() {
198 return subtype;
199 }
200
201 @Override
202 public OFTableFeaturePropExperimenterMiss.Builder setSubtype(long subtype) {
203 this.subtype = subtype;
204 this.subtypeSet = true;
205 return this;
206 }
207 @Override
208 public byte[] getExperimenterData() {
209 return experimenterData;
210 }
211
212 @Override
213 public OFTableFeaturePropExperimenterMiss.Builder setExperimenterData(byte[] experimenterData) {
214 this.experimenterData = experimenterData;
215 this.experimenterDataSet = true;
216 return this;
217 }
218 @Override
219 public OFVersion getVersion() {
220 return OFVersion.OF_13;
221 }
222
223//
224 @Override
225 public OFTableFeaturePropExperimenterMiss build() {
226 long experimenter = this.experimenterSet ? this.experimenter : DEFAULT_EXPERIMENTER;
227 long subtype = this.subtypeSet ? this.subtype : DEFAULT_SUBTYPE;
228 byte[] experimenterData = this.experimenterDataSet ? this.experimenterData : DEFAULT_EXPERIMENTER_DATA;
229 if(experimenterData == null)
230 throw new NullPointerException("Property experimenterData must not be null");
231
232
233 return new OFTableFeaturePropExperimenterMissVer13(
234 experimenter,
235 subtype,
236 experimenterData
237 );
238 }
239
240 }
241
242
243 final static Reader READER = new Reader();
244 static class Reader implements OFMessageReader<OFTableFeaturePropExperimenterMiss> {
245 @Override
246 public OFTableFeaturePropExperimenterMiss readFrom(ChannelBuffer bb) throws OFParseError {
247 int start = bb.readerIndex();
248 // fixed value property type == 0xffff
249 short type = bb.readShort();
250 if(type != (short) 0xffff)
251 throw new OFParseError("Wrong type: Expected=0xffff(0xffff), got="+type);
252 int length = U16.f(bb.readShort());
253 if(length < MINIMUM_LENGTH)
254 throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
255 if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
256 // Buffer does not have all data yet
257 bb.readerIndex(start);
258 return null;
259 }
260 if(logger.isTraceEnabled())
261 logger.trace("readFrom - length={}", length);
262 long experimenter = U32.f(bb.readInt());
263 long subtype = U32.f(bb.readInt());
264 byte[] experimenterData = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
265
266 OFTableFeaturePropExperimenterMissVer13 tableFeaturePropExperimenterMissVer13 = new OFTableFeaturePropExperimenterMissVer13(
267 experimenter,
268 subtype,
269 experimenterData
270 );
271 if(logger.isTraceEnabled())
272 logger.trace("readFrom - read={}", tableFeaturePropExperimenterMissVer13);
273 return tableFeaturePropExperimenterMissVer13;
274 }
275 }
276
277 public void putTo(PrimitiveSink sink) {
278 FUNNEL.funnel(this, sink);
279 }
280
281 final static OFTableFeaturePropExperimenterMissVer13Funnel FUNNEL = new OFTableFeaturePropExperimenterMissVer13Funnel();
282 static class OFTableFeaturePropExperimenterMissVer13Funnel implements Funnel<OFTableFeaturePropExperimenterMissVer13> {
283 private static final long serialVersionUID = 1L;
284 @Override
285 public void funnel(OFTableFeaturePropExperimenterMissVer13 message, PrimitiveSink sink) {
286 // fixed value property type = 0xffff
287 sink.putShort((short) 0xffff);
288 // FIXME: skip funnel of length
289 sink.putLong(message.experimenter);
290 sink.putLong(message.subtype);
291 sink.putBytes(message.experimenterData);
292 }
293 }
294
295
296 public void writeTo(ChannelBuffer bb) {
297 WRITER.write(bb, this);
298 }
299
300 final static Writer WRITER = new Writer();
301 static class Writer implements OFMessageWriter<OFTableFeaturePropExperimenterMissVer13> {
302 @Override
303 public void write(ChannelBuffer bb, OFTableFeaturePropExperimenterMissVer13 message) {
304 int startIndex = bb.writerIndex();
305 // fixed value property type = 0xffff
306 bb.writeShort((short) 0xffff);
307 // length is length of variable message, will be updated at the end
308 int lengthIndex = bb.writerIndex();
309 bb.writeShort(U16.t(0));
310
311 bb.writeInt(U32.t(message.experimenter));
312 bb.writeInt(U32.t(message.subtype));
313 bb.writeBytes(message.experimenterData);
314
315 // update length field
316 int length = bb.writerIndex() - startIndex;
317 bb.setShort(lengthIndex, length);
318
319 }
320 }
321
322 @Override
323 public String toString() {
324 StringBuilder b = new StringBuilder("OFTableFeaturePropExperimenterMissVer13(");
325 b.append("experimenter=").append(experimenter);
326 b.append(", ");
327 b.append("subtype=").append(subtype);
328 b.append(", ");
329 b.append("experimenterData=").append(Arrays.toString(experimenterData));
330 b.append(")");
331 return b.toString();
332 }
333
334 @Override
335 public boolean equals(Object obj) {
336 if (this == obj)
337 return true;
338 if (obj == null)
339 return false;
340 if (getClass() != obj.getClass())
341 return false;
342 OFTableFeaturePropExperimenterMissVer13 other = (OFTableFeaturePropExperimenterMissVer13) obj;
343
344 if( experimenter != other.experimenter)
345 return false;
346 if( subtype != other.subtype)
347 return false;
348 if (!Arrays.equals(experimenterData, other.experimenterData))
349 return false;
350 return true;
351 }
352
353 @Override
354 public int hashCode() {
355 final int prime = 31;
356 int result = 1;
357
358 result = prime * (int) (experimenter ^ (experimenter >>> 32));
359 result = prime * (int) (subtype ^ (subtype >>> 32));
360 result = prime * result + Arrays.hashCode(experimenterData);
361 return result;
362 }
363
364}