17#ifndef CONTROL_PLANE_P4RUNTIMESERIALIZER_H_
18#define CONTROL_PLANE_P4RUNTIMESERIALIZER_H_
20#pragma GCC diagnostic push
21#pragma GCC diagnostic ignored "-Wunused-parameter"
22#pragma GCC diagnostic ignored "-Wpedantic"
23#include <google/protobuf/util/json_util.h>
24#pragma GCC diagnostic pop
27#include <unordered_map>
29#include "lib/cstring.h"
30#include "p4RuntimeTypes.h"
63 const ::p4::config::v1::P4Info *
p4Info;
69 google::protobuf::util::JsonPrintOptions jsonPrintOptions;
73 jsonPrintOptions.add_whitespace =
true;
77 google::protobuf::util::JsonPrintOptions jsonPrintOptions)
81namespace ControlPlaneAPI {
82struct P4RuntimeArchHandlerBuilderIface;
90 void registerArch(
const cstring archName,
136 std::unordered_map<cstring, const ControlPlaneAPI::P4RuntimeArchHandlerBuilderIface *>
137 archHandlerBuilders{};
Public APIs to generate P4Info message. Uses the singleton pattern.
Definition p4RuntimeSerializer.h:86
static cstring resolveArch(const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1612
void serializeP4InfoTo(std::ostream *destination, P4RuntimeFormat format) const
Definition p4RuntimeSerializer.cpp:1452
P4RuntimeAPI generateP4Runtime(const IR::P4Program *program, cstring arch)
Definition p4RuntimeSerializer.cpp:1627
void serializeP4RuntimeIfRequired(const IR::P4Program *program, const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1534
P4RuntimeAPI generateP4Runtime(const IR::P4Program *program, cstring arch)
Definition p4RuntimeSerializer.cpp:1416
void serializeP4RuntimeIfRequired(const IR::P4Program *program, const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1631
void serializeEntriesTo(std::ostream *destination, P4RuntimeFormat format) const
Definition p4RuntimeSerializer.cpp:1472
Definition applyOptionsPragmas.cpp:24
P4RuntimeFormat
P4Runtime serialization formats.
Definition p4RuntimeTypes.h:23
Definition p4RuntimeArchHandler.h:201
Definition p4RuntimeSerializer.h:53
const ::p4::config::v1::P4Info * p4Info
Definition p4RuntimeSerializer.h:63
const ::p4::v1::WriteRequest * entries
Definition p4RuntimeSerializer.h:66