blob: 861d4a83cf41bea8ee5ad5a44a24b293bced1a16 [file] [log] [blame]
Yotam Harcholf3f11152013-09-05 16:47:16 -07001package org.projectfloodlight.openflow.types;
2
3import org.jboss.netty.buffer.ChannelBuffer;
4
5public class OFMetadata implements OFValueType<OFMetadata> {
6
7 static int LENGTH = 8;
8
9 private final U64 u64;
10
11 public static final OFMetadata NO_MASK = OFMetadata.of(U64.ofRaw(0xFFFFFFFFFFFFFFFFl));
12 public static final OFMetadata FULL_MASK = OFMetadata.of(U64.ofRaw(0x0));
13
14 public OFMetadata(U64 ofRaw) {
15 u64 = ofRaw;
16 }
17
18 public static OFMetadata of(U64 u64) {
19 return new OFMetadata(u64);
20 }
21
22 public static OFMetadata ofRaw(long raw) {
23 return new OFMetadata(U64.ofRaw(raw));
24 }
25
26 public static OFMetadata read8Bytes(ChannelBuffer cb) {
27 return OFMetadata.ofRaw(cb.readLong());
28 }
29
30 public void write8Bytes(ChannelBuffer cb) {
31 u64.writeTo(cb);
32 }
33
34 @Override
35 public int getLength() {
36 return u64.getLength();
37 }
38
39 @Override
40 public OFMetadata applyMask(OFMetadata mask) {
41 return OFMetadata.of(this.u64.applyMask(mask.u64));
42 }
43
44 @Override
45 public boolean equals(Object arg0) {
46 if (!(arg0 instanceof OFMetadata))
47 return false;
48 OFMetadata other = (OFMetadata)arg0;
49
50 return this.u64.equals(other.u64);
51 }
52
53 @Override
54 public int hashCode() {
55 int prime = 53;
56 return this.u64.hashCode() * prime;
57 }
58
59 @Override
60 public String toString() {
61 return "Metadata: " + u64.toString();
62 }
63
64
65
66}