Committed by
Thomas Vachuska
Add DiscreteResourceCodec for PortNumber
Change-Id: Iedda1a0ba46b3d044f127334a8abdb419dabcd9f
Showing
3 changed files
with
53 additions
and
0 deletions
| ... | @@ -17,6 +17,7 @@ package org.onosproject.store.resource.impl; | ... | @@ -17,6 +17,7 @@ package org.onosproject.store.resource.impl; |
| 17 | 17 | ||
| 18 | import org.onlab.packet.MplsLabel; | 18 | import org.onlab.packet.MplsLabel; |
| 19 | import org.onlab.packet.VlanId; | 19 | import org.onlab.packet.VlanId; |
| 20 | +import org.onosproject.net.PortNumber; | ||
| 20 | import org.onosproject.net.resource.DiscreteResource; | 21 | import org.onosproject.net.resource.DiscreteResource; |
| 21 | import org.onosproject.net.resource.DiscreteResourceCodec; | 22 | import org.onosproject.net.resource.DiscreteResourceCodec; |
| 22 | 23 | ||
| ... | @@ -46,6 +47,7 @@ final class Codecs { | ... | @@ -46,6 +47,7 @@ final class Codecs { |
| 46 | } | 47 | } |
| 47 | 48 | ||
| 48 | private void init() { | 49 | private void init() { |
| 50 | + codecs.put(PortNumber.class, new PortNumberCodec()); | ||
| 49 | codecs.put(VlanId.class, new VlanIdCodec()); | 51 | codecs.put(VlanId.class, new VlanIdCodec()); |
| 50 | codecs.put(MplsLabel.class, new MplsLabelCodec()); | 52 | codecs.put(MplsLabel.class, new MplsLabelCodec()); |
| 51 | } | 53 | } | ... | ... |
| ... | @@ -78,6 +78,7 @@ public class ConsistentResourceStore extends AbstractStore<ResourceEvent, Resour | ... | @@ -78,6 +78,7 @@ public class ConsistentResourceStore extends AbstractStore<ResourceEvent, Resour |
| 78 | .register(EmptyDiscreteResources.class) | 78 | .register(EmptyDiscreteResources.class) |
| 79 | .register(new EncodedResourcesSerializer(), EncodedDiscreteResources.class) | 79 | .register(new EncodedResourcesSerializer(), EncodedDiscreteResources.class) |
| 80 | .register(ContinuousResourceAllocation.class) | 80 | .register(ContinuousResourceAllocation.class) |
| 81 | + .register(PortNumberCodec.class) | ||
| 81 | .register(VlanIdCodec.class) | 82 | .register(VlanIdCodec.class) |
| 82 | .register(MplsLabelCodec.class) | 83 | .register(MplsLabelCodec.class) |
| 83 | .build()); | 84 | .build()); | ... | ... |
| 1 | +/* | ||
| 2 | + * Copyright 2016-present Open Networking Laboratory | ||
| 3 | + * | ||
| 4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | + * you may not use this file except in compliance with the License. | ||
| 6 | + * You may obtain a copy of the License at | ||
| 7 | + * | ||
| 8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | + * | ||
| 10 | + * Unless required by applicable law or agreed to in writing, software | ||
| 11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | + * See the License for the specific language governing permissions and | ||
| 14 | + * limitations under the License. | ||
| 15 | + */ | ||
| 16 | + | ||
| 17 | +package org.onosproject.store.resource.impl; | ||
| 18 | + | ||
| 19 | +import org.onosproject.net.PortNumber; | ||
| 20 | +import org.onosproject.net.resource.DiscreteResourceCodec; | ||
| 21 | + | ||
| 22 | +class PortNumberCodec implements DiscreteResourceCodec<PortNumber> { | ||
| 23 | + @Override | ||
| 24 | + public int encode(PortNumber resource) { | ||
| 25 | + return (int) resource.toLong(); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + @Override | ||
| 29 | + public PortNumber decode(int value) { | ||
| 30 | + return PortNumber.portNumber(value); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + @Override | ||
| 34 | + public boolean equals(Object obj) { | ||
| 35 | + if (obj == this) { | ||
| 36 | + return true; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + if (obj == null || getClass() != obj.getClass()) { | ||
| 40 | + return false; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + return true; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @Override | ||
| 47 | + public int hashCode() { | ||
| 48 | + return PortNumber.class.hashCode(); | ||
| 49 | + } | ||
| 50 | +} |
-
Please register or login to post a comment