blob: 30e8d9d4b9b1d47e19645bcad9bd5841a39e3043 [file] [log] [blame]
/*
* Copyright 2019-present Open Networking Foundation
*
* 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 org.onosproject.p4runtime.ctl.codec;
/**
* Utility class that provides access to P4Runtime codec instances.
*/
public final class Codecs {
public static final Codecs CODECS = new Codecs();
private final ActionCodec action;
private final ActionProfileGroupCodec actionProfileGroup;
private final ActionProfileMemberCodec actionProfileMember;
private final CounterEntryCodec counterEntry;
private final DirectCounterEntryCodec directCounterEntry;
private final DirectMeterEntryCodec directMeterEntry;
private final EntityCodec entity;
private final FieldMatchCodec fieldMatch;
private final HandleCodec handle;
private final MeterEntryCodec meterEntry;
private final MulticastGroupEntryCodec multicastGroupEntry;
private final CloneSessionEntryCodec cloneSessionEntry;
private final PreReplicaCodec preReplica;
private final PacketInCodec packetIn;
private final PacketMetadataCodec packetMetadata;
private final PacketOutCodec packetOut;
private final TableEntryCodec tableEntry;
private Codecs() {
this.action = new ActionCodec();
this.actionProfileGroup = new ActionProfileGroupCodec();
this.actionProfileMember = new ActionProfileMemberCodec();
this.counterEntry = new CounterEntryCodec();
this.directCounterEntry = new DirectCounterEntryCodec();
this.directMeterEntry = new DirectMeterEntryCodec();
this.entity = new EntityCodec();
this.fieldMatch = new FieldMatchCodec();
this.handle = new HandleCodec();
this.meterEntry = new MeterEntryCodec();
this.multicastGroupEntry = new MulticastGroupEntryCodec();
this.cloneSessionEntry = new CloneSessionEntryCodec();
this.preReplica = new PreReplicaCodec();
this.packetIn = new PacketInCodec();
this.packetMetadata = new PacketMetadataCodec();
this.packetOut = new PacketOutCodec();
this.tableEntry = new TableEntryCodec();
}
public EntityCodec entity() {
return entity;
}
public HandleCodec handle() {
return handle;
}
public PacketOutCodec packetOut() {
return packetOut;
}
public PacketInCodec packetIn() {
return packetIn;
}
TableEntryCodec tableEntry() {
return tableEntry;
}
FieldMatchCodec fieldMatch() {
return fieldMatch;
}
ActionCodec action() {
return action;
}
ActionProfileMemberCodec actionProfileMember() {
return actionProfileMember;
}
ActionProfileGroupCodec actionProfileGroup() {
return actionProfileGroup;
}
PacketMetadataCodec packetMetadata() {
return packetMetadata;
}
MulticastGroupEntryCodec multicastGroupEntry() {
return multicastGroupEntry;
}
CloneSessionEntryCodec cloneSessionEntry() {
return cloneSessionEntry;
}
PreReplicaCodec preReplica() {
return preReplica;
}
DirectMeterEntryCodec directMeterEntry() {
return directMeterEntry;
}
MeterEntryCodec meterEntry() {
return meterEntry;
}
CounterEntryCodec counterEntry() {
return counterEntry;
}
DirectCounterEntryCodec directCounterEntry() {
return directCounterEntry;
}
}