ofs | hex dump | ascii |
---|
0000 | ff d8 ff e0 00 10 4a 46 49 46 00 01 02 01 00 48 00 48 00 00 ff ed 0a f0 50 68 6f 74 6f 73 68 6f | ......JFIF.....H.H......Photosho |
0020 | 70 20 33 2e 30 00 38 42 49 4d 03 ed 00 00 00 00 00 10 00 48 00 00 00 01 00 01 00 48 00 00 00 01 | p.3.0.8BIM.........H.......H.... |
0040 | 00 01 38 42 49 4d 03 f3 00 00 00 00 00 08 00 00 00 00 00 00 00 01 38 42 49 4d 04 0a 00 00 00 00 | ..8BIM................8BIM...... |
0060 | 00 01 00 00 38 42 49 4d 27 10 00 00 00 00 00 0a 00 01 00 00 00 00 00 00 00 02 38 42 49 4d 03 f5 | ....8BIM'.................8BIM.. |
0080 | 00 00 00 00 00 48 00 2f 66 66 00 01 00 6c 66 66 00 06 00 00 00 00 00 01 00 2f 66 66 00 01 00 a1 | .....H./ff...lff........./ff.... |
00a0 | 99 9a 00 06 00 00 00 00 00 01 00 32 00 00 00 01 00 5a 00 00 00 06 00 00 00 00 00 01 00 35 00 00 | ...........2.....Z...........5.. |
00c0 | 00 01 00 2d 00 00 00 06 00 00 00 00 00 01 38 42 49 4d 04 14 00 00 00 00 00 04 00 00 00 03 38 42 | ...-..........8BIM............8B |
00e0 | 49 4d 04 0c 00 00 00 00 0a 07 00 00 00 01 00 00 00 80 00 00 00 42 00 00 01 80 00 00 63 00 00 00 | IM...................B......c... |
0100 | 09 eb 00 18 00 01 ff d8 ff e0 00 10 4a 46 49 46 00 01 02 01 00 48 00 48 00 00 ff fe 00 27 46 69 | ............JFIF.....H.H.....'Fi |
0120 | 6c 65 20 77 72 69 74 74 65 6e 20 62 79 20 41 64 6f 62 65 20 50 68 6f 74 6f 73 68 6f 70 a8 20 34 | le.written.by.Adobe.Photoshop..4 |
0140 | 2e 30 00 ff ee 00 0e 41 64 6f 62 65 00 64 80 00 00 00 01 ff db 00 84 00 0c 08 08 08 09 08 0c 09 | .0.....Adobe.d.................. |
0160 | 09 0c 11 0b 0a 0b 11 15 0f 0c 0c 0f 15 18 13 13 15 13 13 18 11 0c 0c 0c 0c 0c 0c 11 0c 0c 0c 0c | ................................ |
0180 | 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 01 0d 0b 0b 0d 0e 0d 10 | ................................ |
01a0 | 0e 0e 10 14 0e 0e 0e 14 14 0e 0e 0e 0e 14 11 0c 0c 0c 0c 0c 11 11 0c 0c 0c 0c 0c 0c 11 0c 0c 0c | ................................ |
01c0 | 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c/*
* Copyright (c) 2016 Cisco and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.fd.hc2vpp.v3po.factory;
import com.google.common.collect.Sets;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import io.fd.hc2vpp.v3po.l2.ArpTerminationTableEntryCustomizer;
import io.fd.hc2vpp.v3po.l2.BridgeDomainCustomizer;
import io.fd.hc2vpp.v3po.l2.L2FibEntryCustomizer;
import io.fd.honeycomb.translate.impl.write.GenericListWriter;
import io.fd.hc2vpp.common.translate.util.NamingContext;
import io.fd.honeycomb.translate.write.WriterFactory;
import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev180703.BridgeDomains;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev180703.bridge.domain.attributes.ArpTerminationTable;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev180703.bridge.domain.attributes.arp.termination.table.ArpTerminationTableEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev180703.bridge.domains.BridgeDomain;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev180703.l2.fib.attributes.L2FibTable;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev180703.l2.fib.attributes.l2.fib.table.L2FibEntry;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import io.fd.vpp.jvpp.core.future.FutureJVppCore;
public final class L2HoneycombWriterFactory implements WriterFactory {
private final FutureJVppCore jvpp;
private final NamingContext bdContext;
private final NamingContext ifcContext;
@Inject
public L2HoneycombWriterFactory(final FutureJVppCore vppJvppWriterDependency,
@Named("bridge-domain-context") final NamingContext bridgeDomainContextVppDependency,
@Named("interface-context") final NamingContext interfaceContextVppDependency) {
this.jvpp = vppJvppWriterDependency;
this.bdContext = bridgeDomainContextVppDependency;
this.ifcContext = interfaceContextVppDependency;
}
@Override
public void init(final ModifiableWriterRegistryBuilder registry) {
// Vpp has no handlers
// BridgeDomains has no handlers
// BridgeDomain(handled before L2 of ifc and subifc) =
final InstanceIdentifier<BridgeDomain> bdId =
InstanceIdentifier.create(BridgeDomains.class).child(BridgeDomain.class);
registry.addBefore(new GenericListWriter<>(bdId, new BridgeDomainCustomizer(jvpp, bdContext)),
Sets.newHashSet(
InterfacesWriterFactory.L2_ID,
SubinterfaceAugmentationWriterFactory.L2_ID));
// L2FibTable has no handlers
// L2FibEntry(handled after BridgeDomain and L2 of ifc and subifc) =
final InstanceIdentifier<L2FibEntry> l2FibEntryId = bdId.child(L2FibTable.class).child(L2FibEntry.class);
registry.addAfter(
new GenericListWriter<>(l2FibEntryId, new L2FibEntryCustomizer(jvpp, bdContext, ifcContext)),
Sets.newHashSet(
bdId,
InterfacesWriterFactory.L2_ID,
SubinterfaceAugmentationWriterFactory.L2_ID));
// ArpTerminationTable has no handlers
// ArpTerminationTableEntry(handled after BridgeDomain) =
final InstanceIdentifier<ArpTerminationTableEntry> arpEntryId =
bdId.child(ArpTerminationTable.class).child(ArpTerminationTableEntry.class);
registry.addAfter(
new GenericListWriter<>(arpEntryId, new ArpTerminationTableEntryCustomizer(jvpp, bdContext)),
bdId);
}
}
|