ESPHome 2025.5.0
Loading...
Searching...
No Matches
esphome::api::ProtoVarInt Class Reference

Representation of a VarInt - in ProtoBuf should be 64bit but we only use 32bit. More...

#include <proto.h>

Public Member Functions

 ProtoVarInt ()
 
 ProtoVarInt (uint64_t value)
 
uint32_t as_uint32 () const
 
uint64_t as_uint64 () const
 
bool as_bool () const
 
template<typename T >
as_enum () const
 
int32_t as_int32 () const
 
int64_t as_int64 () const
 
int32_t as_sint32 () const
 
int64_t as_sint64 () const
 
void encode_to_buffer_unchecked (uint8_t *buffer, size_t len)
 Encode the varint value to a pre-allocated buffer without bounds checking.
 
void encode (std::vector< uint8_t > &out)
 

Static Public Member Functions

static optional< ProtoVarIntparse (const uint8_t *buffer, uint32_t len, uint32_t *consumed)
 

Protected Attributes

uint64_t value_
 

Detailed Description

Representation of a VarInt - in ProtoBuf should be 64bit but we only use 32bit.

Definition at line 17 of file proto.h.

Constructor & Destructor Documentation

◆ ProtoVarInt() [1/2]

esphome::api::ProtoVarInt::ProtoVarInt ( )
inline

Definition at line 19 of file proto.h.

◆ ProtoVarInt() [2/2]

esphome::api::ProtoVarInt::ProtoVarInt ( uint64_t value)
inlineexplicit

Definition at line 20 of file proto.h.

Member Function Documentation

◆ as_bool()

bool esphome::api::ProtoVarInt::as_bool ( ) const
inline

Definition at line 60 of file proto.h.

◆ as_enum()

template<typename T >
T esphome::api::ProtoVarInt::as_enum ( ) const
inline

Definition at line 61 of file proto.h.

◆ as_int32()

int32_t esphome::api::ProtoVarInt::as_int32 ( ) const
inline

Definition at line 62 of file proto.h.

◆ as_int64()

int64_t esphome::api::ProtoVarInt::as_int64 ( ) const
inline

Definition at line 66 of file proto.h.

◆ as_sint32()

int32_t esphome::api::ProtoVarInt::as_sint32 ( ) const
inline

Definition at line 70 of file proto.h.

◆ as_sint64()

int64_t esphome::api::ProtoVarInt::as_sint64 ( ) const
inline

Definition at line 78 of file proto.h.

◆ as_uint32()

uint32_t esphome::api::ProtoVarInt::as_uint32 ( ) const
inline

Definition at line 58 of file proto.h.

◆ as_uint64()

uint64_t esphome::api::ProtoVarInt::as_uint64 ( ) const
inline

Definition at line 59 of file proto.h.

◆ encode()

void esphome::api::ProtoVarInt::encode ( std::vector< uint8_t > & out)
inline

Definition at line 114 of file proto.h.

◆ encode_to_buffer_unchecked()

void esphome::api::ProtoVarInt::encode_to_buffer_unchecked ( uint8_t * buffer,
size_t len )
inline

Encode the varint value to a pre-allocated buffer without bounds checking.

Parameters
bufferThe pre-allocated buffer to write the encoded varint to
lenThe size of the buffer in bytes
Note
The caller is responsible for ensuring the buffer is large enough to hold the encoded value. Use ProtoSize::varint() to calculate the exact size needed before calling this method.
No bounds checking is performed for performance reasons.

Definition at line 97 of file proto.h.

◆ parse()

static optional< ProtoVarInt > esphome::api::ProtoVarInt::parse ( const uint8_t * buffer,
uint32_t len,
uint32_t * consumed )
inlinestatic

Definition at line 22 of file proto.h.

Field Documentation

◆ value_

uint64_t esphome::api::ProtoVarInt::value_
protected

Definition at line 132 of file proto.h.


The documentation for this class was generated from the following file: