WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
OpMode.h
Go to the documentation of this file.
1// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
4
5#pragma once
6
7#include <stdint.h>
8
9#include <vector>
10
11#include "MrcComm.npb.h"
12#include "mrc/NetComm.h"
14
15template <>
17 using MessageStruct = mrc_proto_ProtobufOpMode;
20 static std::optional<mrc::OpMode> Unpack(InputStream& Stream);
21 static bool Pack(OutputStream& Stream, const mrc::OpMode& Value);
22};
23
24template <>
25struct wpi::util::Protobuf<std::vector<mrc::OpMode>> {
26 using MessageStruct = mrc_proto_ProtobufAvailableOpModes;
29 static std::optional<std::vector<mrc::OpMode>> Unpack(InputStream& Stream);
30 static bool Pack(OutputStream& Stream, const std::vector<mrc::OpMode>& Value);
31};
Top-level interface for opmode classes.
Definition OpMode.hpp:16
Class for wrapping a nanopb istream.
Definition Protobuf.hpp:55
Class for wrapping a nanopb ostream.
Definition Protobuf.hpp:119
Definition NetComm.h:19
Definition StringMap.hpp:773
Definition NetComm.h:519
static std::optional< mrc::OpMode > Unpack(InputStream &Stream)
mrc_proto_ProtobufOpMode MessageStruct
Definition OpMode.h:17
wpi::util::ProtoOutputStream< mrc::OpMode > OutputStream
Definition OpMode.h:19
static bool Pack(OutputStream &Stream, const mrc::OpMode &Value)
wpi::util::ProtoInputStream< mrc::OpMode > InputStream
Definition OpMode.h:18
static std::optional< std::vector< mrc::OpMode > > Unpack(InputStream &Stream)
static bool Pack(OutputStream &Stream, const std::vector< mrc::OpMode > &Value)
wpi::util::ProtoOutputStream< std::vector< mrc::OpMode > > OutputStream
Definition OpMode.h:28
mrc_proto_ProtobufAvailableOpModes MessageStruct
Definition OpMode.h:26
wpi::util::ProtoInputStream< std::vector< mrc::OpMode > > InputStream
Definition OpMode.h:27
Protobuf serialization template.
Definition Protobuf.hpp:36