8#ifndef CONTROL_PLANE_P4RUNTIMESERIALIZER_H_
9#define CONTROL_PLANE_P4RUNTIMESERIALIZER_H_
11#pragma GCC diagnostic push
12#pragma GCC diagnostic ignored "-Wunused-parameter"
13#pragma GCC diagnostic ignored "-Wpedantic"
14#include <google/protobuf/util/json_util.h>
15#pragma GCC diagnostic pop
18#include <unordered_map>
20#include "lib/cstring.h"
21#include "p4RuntimeTypes.h"
58 const ::p4::config::v1::P4Info *
p4Info;
64 google::protobuf::util::JsonPrintOptions jsonPrintOptions;
66 P4RuntimeAPI(const ::p4::config::v1::P4Info *
p4Info, const ::p4::v1::WriteRequest *
entries)
68 jsonPrintOptions.add_whitespace =
true;
72 google::protobuf::util::JsonPrintOptions jsonPrintOptions)
81class P4RuntimeSerializer {
83 static P4RuntimeSerializer *get();
85 void registerArch(
const cstring archName,
129 P4RuntimeSerializer();
131 std::unordered_map<cstring, const ControlPlaneAPI::P4RuntimeArchHandlerBuilderIface *>
132 archHandlerBuilders{};
Definition frontends/common/options.h:31
static cstring resolveArch(const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1649
void serializeP4InfoTo(std::ostream *destination, P4RuntimeFormat format) const
Definition p4RuntimeSerializer.cpp:1495
P4RuntimeAPI generateP4Runtime(const IR::P4Program *program, cstring arch)
Definition p4RuntimeSerializer.cpp:1664
void serializeP4RuntimeIfRequired(const IR::P4Program *program, const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1572
P4RuntimeAPI generateP4Runtime(const IR::P4Program *program, cstring arch)
Definition p4RuntimeSerializer.cpp:1459
void serializeP4RuntimeIfRequired(const IR::P4Program *program, const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1668
void serializeEntriesTo(std::ostream *destination, P4RuntimeFormat format) const
Definition p4RuntimeSerializer.cpp:1516
TODO(antonin): High level goals of the generator go here!!
Definition dpdk/control-plane/bfruntime_arch_handler.h:44
Definition constantParsing.h:22
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13
P4RuntimeFormat
P4Runtime serialization formats.
Definition p4RuntimeTypes.h:14
Definition p4RuntimeArchHandler.h:195
Definition p4RuntimeSerializer.h:48
const ::p4::config::v1::P4Info * p4Info
Definition p4RuntimeSerializer.h:58
const ::p4::v1::WriteRequest * entries
Definition p4RuntimeSerializer.h:61