From a7b61b1061c9280ce015a255ce81ec623e7a2ee4 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 3 Mar 2026 18:22:23 -1000 Subject: [PATCH] twea --- esphome/components/api/api_connection.cpp | 8 +- esphome/components/api/api_connection.h | 10 +- esphome/components/api/api_pb2.cpp | 360 +++++++++++++----- esphome/components/api/api_pb2.h | 185 ++++----- esphome/components/api/proto.h | 14 +- .../bluetooth_proxy/bluetooth_connection.cpp | 9 +- script/api_protobuf/api_protobuf.py | 16 +- 7 files changed, 389 insertions(+), 213 deletions(-) diff --git a/esphome/components/api/api_connection.cpp b/esphome/components/api/api_connection.cpp index 94bf71e00d..c90aee5087 100644 --- a/esphome/components/api/api_connection.cpp +++ b/esphome/components/api/api_connection.cpp @@ -350,9 +350,7 @@ uint16_t APIConnection::fill_and_encode_entity_state_(EntityBase *entity, StateR #ifdef USE_DEVICES msg.device_id = entity->get_device_id(); #endif - ProtoSize proto_size; - size_fn(&msg, proto_size); - return encode_to_buffer_(proto_size.get_size(), encode_fn, &msg, conn, remaining_size); + return encode_to_buffer_(size_fn(&msg), encode_fn, &msg, conn, remaining_size); } uint16_t APIConnection::fill_and_encode_entity_info_(EntityBase *entity, InfoResponseProtoMessage &msg, @@ -382,9 +380,7 @@ uint16_t APIConnection::fill_and_encode_entity_info_(EntityBase *entity, InfoRes #ifdef USE_DEVICES msg.device_id = entity->get_device_id(); #endif - ProtoSize proto_size; - size_fn(&msg, proto_size); - return encode_to_buffer_(proto_size.get_size(), encode_fn, &msg, conn, remaining_size); + return encode_to_buffer_(size_fn(&msg), encode_fn, &msg, conn, remaining_size); } uint16_t APIConnection::fill_and_encode_entity_info_with_device_class_( diff --git a/esphome/components/api/api_connection.h b/esphome/components/api/api_connection.h index c7421f3458..0a5c11ca32 100644 --- a/esphome/components/api/api_connection.h +++ b/esphome/components/api/api_connection.h @@ -261,7 +261,7 @@ class APIConnection final : public APIServerConnectionBase { // Function pointer type for type-erased message encoding using MessageEncodeFn = void (*)(const void *, ProtoWriteBuffer &); // Function pointer type for type-erased size calculation - using CalculateSizeFn = void (*)(const void *, ProtoSize &); + using CalculateSizeFn = uint32_t (*)(const void *); template bool send_message(const T &msg) { #ifdef HAS_PROTO_MESSAGE_DUMP @@ -271,7 +271,7 @@ class APIConnection final : public APIServerConnectionBase { if constexpr (T::ESTIMATED_SIZE == 0) { return this->send_message_(0, T::MESSAGE_TYPE, &encode_msg_noop_, &msg); } else { - return this->send_message_(calculated_size_of(msg), T::MESSAGE_TYPE, &encode_msg_, &msg); + return this->send_message_(msg.calculate_size(), T::MESSAGE_TYPE, &encode_msg_, &msg); } } @@ -334,8 +334,8 @@ class APIConnection final : public APIServerConnectionBase { } // Size thunk — converts void* back to concrete type for direct calculate_size() call - template static void calc_size_(const void *msg, ProtoSize &size) { - static_cast(msg)->calculate_size(size); + template static uint32_t calc_size_(const void *msg) { + return static_cast(msg)->calculate_size(); } // Shared no-op encode thunk for empty messages (ESTIMATED_SIZE == 0) @@ -360,7 +360,7 @@ class APIConnection final : public APIServerConnectionBase { if constexpr (T::ESTIMATED_SIZE == 0) { return encode_to_buffer_(0, &encode_msg_noop_, &msg, conn, remaining_size); } else { - return encode_to_buffer_(calculated_size_of(msg), &encode_msg_, &msg, conn, remaining_size); + return encode_to_buffer_(msg.calculate_size(), &encode_msg_, &msg, conn, remaining_size); } } diff --git a/esphome/components/api/api_pb2.cpp b/esphome/components/api/api_pb2.cpp index 9e74d5ddc7..ed8c3e7bde 100644 --- a/esphome/components/api/api_pb2.cpp +++ b/esphome/components/api/api_pb2.cpp @@ -37,20 +37,24 @@ void HelloResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(3, this->server_info); buffer.encode_string(4, this->name); } -void HelloResponse::calculate_size(ProtoSize &size) const { +uint32_t HelloResponse::calculate_size() const { + ProtoSize size; size.add_uint32(1, this->api_version_major); size.add_uint32(1, this->api_version_minor); size.add_length(1, this->server_info.size()); size.add_length(1, this->name.size()); + return size.get_size(); } #ifdef USE_AREAS void AreaInfo::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(1, this->area_id); buffer.encode_string(2, this->name); } -void AreaInfo::calculate_size(ProtoSize &size) const { +uint32_t AreaInfo::calculate_size() const { + ProtoSize size; size.add_uint32(1, this->area_id); size.add_length(1, this->name.size()); + return size.get_size(); } #endif #ifdef USE_DEVICES @@ -59,10 +63,12 @@ void DeviceInfo::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(2, this->name); buffer.encode_uint32(3, this->area_id); } -void DeviceInfo::calculate_size(ProtoSize &size) const { +uint32_t DeviceInfo::calculate_size() const { + ProtoSize size; size.add_uint32(1, this->device_id); size.add_length(1, this->name.size()); size.add_uint32(1, this->area_id); + return size.get_size(); } #endif void DeviceInfoResponse::encode(ProtoWriteBuffer &buffer) const { @@ -120,7 +126,8 @@ void DeviceInfoResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(24, this->zwave_home_id); #endif } -void DeviceInfoResponse::calculate_size(ProtoSize &size) const { +uint32_t DeviceInfoResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->name.size()); size.add_length(1, this->mac_address.size()); size.add_length(1, this->esphome_version.size()); @@ -174,6 +181,7 @@ void DeviceInfoResponse::calculate_size(ProtoSize &size) const { #ifdef USE_ZWAVE_PROXY size.add_uint32(2, this->zwave_home_id); #endif + return size.get_size(); } #ifdef USE_BINARY_SENSOR void ListEntitiesBinarySensorResponse::encode(ProtoWriteBuffer &buffer) const { @@ -191,7 +199,8 @@ void ListEntitiesBinarySensorResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(10, this->device_id); #endif } -void ListEntitiesBinarySensorResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesBinarySensorResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -205,6 +214,7 @@ void ListEntitiesBinarySensorResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void BinarySensorStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -214,13 +224,15 @@ void BinarySensorStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void BinarySensorStateResponse::calculate_size(ProtoSize &size) const { +uint32_t BinarySensorStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->state); size.add_bool(1, this->missing_state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } #endif #ifdef USE_COVER @@ -242,7 +254,8 @@ void ListEntitiesCoverResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(13, this->device_id); #endif } -void ListEntitiesCoverResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesCoverResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -259,6 +272,7 @@ void ListEntitiesCoverResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void CoverStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -269,7 +283,8 @@ void CoverStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(6, this->device_id); #endif } -void CoverStateResponse::calculate_size(ProtoSize &size) const { +uint32_t CoverStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_float(1, this->position); size.add_float(1, this->tilt); @@ -277,6 +292,7 @@ void CoverStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool CoverCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -337,7 +353,8 @@ void ListEntitiesFanResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(13, this->device_id); #endif } -void ListEntitiesFanResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesFanResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -358,6 +375,7 @@ void ListEntitiesFanResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void FanStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -370,7 +388,8 @@ void FanStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(8, this->device_id); #endif } -void FanStateResponse::calculate_size(ProtoSize &size) const { +uint32_t FanStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->state); size.add_bool(1, this->oscillating); @@ -380,6 +399,7 @@ void FanStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool FanCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -464,7 +484,8 @@ void ListEntitiesLightResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(16, this->device_id); #endif } -void ListEntitiesLightResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesLightResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -488,6 +509,7 @@ void ListEntitiesLightResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(2, this->device_id); #endif + return size.get_size(); } void LightStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -507,7 +529,8 @@ void LightStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(14, this->device_id); #endif } -void LightStateResponse::calculate_size(ProtoSize &size) const { +uint32_t LightStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->state); size.add_float(1, this->brightness); @@ -524,6 +547,7 @@ void LightStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool LightCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -653,7 +677,8 @@ void ListEntitiesSensorResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(14, this->device_id); #endif } -void ListEntitiesSensorResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesSensorResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -670,6 +695,7 @@ void ListEntitiesSensorResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void SensorStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -679,13 +705,15 @@ void SensorStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void SensorStateResponse::calculate_size(ProtoSize &size) const { +uint32_t SensorStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_float(1, this->state); size.add_bool(1, this->missing_state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } #endif #ifdef USE_SWITCH @@ -704,7 +732,8 @@ void ListEntitiesSwitchResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(10, this->device_id); #endif } -void ListEntitiesSwitchResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesSwitchResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -718,6 +747,7 @@ void ListEntitiesSwitchResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void SwitchStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -726,12 +756,14 @@ void SwitchStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->device_id); #endif } -void SwitchStateResponse::calculate_size(ProtoSize &size) const { +uint32_t SwitchStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool SwitchCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -774,7 +806,8 @@ void ListEntitiesTextSensorResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(9, this->device_id); #endif } -void ListEntitiesTextSensorResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesTextSensorResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -787,6 +820,7 @@ void ListEntitiesTextSensorResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void TextSensorStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -796,13 +830,15 @@ void TextSensorStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void TextSensorStateResponse::calculate_size(ProtoSize &size) const { +uint32_t TextSensorStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_length(1, this->state.size()); size.add_bool(1, this->missing_state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } #endif bool SubscribeLogsRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { @@ -822,9 +858,11 @@ void SubscribeLogsResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(1, static_cast(this->level)); buffer.encode_bytes(3, this->message_ptr_, this->message_len_); } -void SubscribeLogsResponse::calculate_size(ProtoSize &size) const { +uint32_t SubscribeLogsResponse::calculate_size() const { + ProtoSize size; size.add_uint32(1, static_cast(this->level)); size.add_length(1, this->message_len_); + return size.get_size(); } #ifdef USE_API_NOISE bool NoiseEncryptionSetKeyRequest::decode_length(uint32_t field_id, ProtoLengthDelimited value) { @@ -840,16 +878,22 @@ bool NoiseEncryptionSetKeyRequest::decode_length(uint32_t field_id, ProtoLengthD return true; } void NoiseEncryptionSetKeyResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bool(1, this->success); } -void NoiseEncryptionSetKeyResponse::calculate_size(ProtoSize &size) const { size.add_bool(1, this->success); } +uint32_t NoiseEncryptionSetKeyResponse::calculate_size() const { + ProtoSize size; + size.add_bool(1, this->success); + return size.get_size(); +} #endif #ifdef USE_API_HOMEASSISTANT_SERVICES void HomeassistantServiceMap::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(1, this->key); buffer.encode_string(2, this->value); } -void HomeassistantServiceMap::calculate_size(ProtoSize &size) const { +uint32_t HomeassistantServiceMap::calculate_size() const { + ProtoSize size; size.add_length(1, this->key.size()); size.add_length(1, this->value.size()); + return size.get_size(); } void HomeassistantActionRequest::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(1, this->service); @@ -873,7 +917,8 @@ void HomeassistantActionRequest::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(8, this->response_template); #endif } -void HomeassistantActionRequest::calculate_size(ProtoSize &size) const { +uint32_t HomeassistantActionRequest::calculate_size() const { + ProtoSize size; size.add_length(1, this->service.size()); size.add_repeated_message(1, this->data); size.add_repeated_message(1, this->data_template); @@ -888,6 +933,7 @@ void HomeassistantActionRequest::calculate_size(ProtoSize &size) const { #ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON size.add_length(1, this->response_template.size()); #endif + return size.get_size(); } #endif #ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES @@ -929,10 +975,12 @@ void SubscribeHomeAssistantStateResponse::encode(ProtoWriteBuffer &buffer) const buffer.encode_string(2, this->attribute); buffer.encode_bool(3, this->once); } -void SubscribeHomeAssistantStateResponse::calculate_size(ProtoSize &size) const { +uint32_t SubscribeHomeAssistantStateResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->entity_id.size()); size.add_length(1, this->attribute.size()); size.add_bool(1, this->once); + return size.get_size(); } bool HomeAssistantStateResponse::decode_length(uint32_t field_id, ProtoLengthDelimited value) { switch (field_id) { @@ -1034,9 +1082,11 @@ void ListEntitiesServicesArgument::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(1, this->name); buffer.encode_uint32(2, static_cast(this->type)); } -void ListEntitiesServicesArgument::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesServicesArgument::calculate_size() const { + ProtoSize size; size.add_length(1, this->name.size()); size.add_uint32(1, static_cast(this->type)); + return size.get_size(); } void ListEntitiesServicesResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(1, this->name); @@ -1046,11 +1096,13 @@ void ListEntitiesServicesResponse::encode(ProtoWriteBuffer &buffer) const { } buffer.encode_uint32(4, static_cast(this->supports_response)); } -void ListEntitiesServicesResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesServicesResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->name.size()); size.add_fixed32(1, this->key); size.add_repeated_message(1, this->args); size.add_uint32(1, static_cast(this->supports_response)); + return size.get_size(); } bool ExecuteServiceArgument::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1165,13 +1217,15 @@ void ExecuteServiceResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bytes(4, this->response_data, this->response_data_len); #endif } -void ExecuteServiceResponse::calculate_size(ProtoSize &size) const { +uint32_t ExecuteServiceResponse::calculate_size() const { + ProtoSize size; size.add_uint32(1, this->call_id); size.add_bool(1, this->success); size.add_length(1, this->error_message.size()); #ifdef USE_API_USER_DEFINED_ACTION_RESPONSES_JSON size.add_length(1, this->response_data_len); #endif + return size.get_size(); } #endif #ifdef USE_CAMERA @@ -1188,7 +1242,8 @@ void ListEntitiesCameraResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(8, this->device_id); #endif } -void ListEntitiesCameraResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesCameraResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1200,6 +1255,7 @@ void ListEntitiesCameraResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void CameraImageResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1209,13 +1265,15 @@ void CameraImageResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void CameraImageResponse::calculate_size(ProtoSize &size) const { +uint32_t CameraImageResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_length(1, this->data_len_); size.add_bool(1, this->done); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool CameraImageRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1275,7 +1333,8 @@ void ListEntitiesClimateResponse::encode(ProtoWriteBuffer &buffer) const { #endif buffer.encode_uint32(27, this->feature_flags); } -void ListEntitiesClimateResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesClimateResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1329,6 +1388,7 @@ void ListEntitiesClimateResponse::calculate_size(ProtoSize &size) const { size.add_uint32(2, this->device_id); #endif size.add_uint32(2, this->feature_flags); + return size.get_size(); } void ClimateStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1349,7 +1409,8 @@ void ClimateStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(16, this->device_id); #endif } -void ClimateStateResponse::calculate_size(ProtoSize &size) const { +uint32_t ClimateStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_uint32(1, static_cast(this->mode)); size.add_float(1, this->current_temperature); @@ -1367,6 +1428,7 @@ void ClimateStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(2, this->device_id); #endif + return size.get_size(); } bool ClimateCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1481,7 +1543,8 @@ void ListEntitiesWaterHeaterResponse::encode(ProtoWriteBuffer &buffer) const { } buffer.encode_uint32(12, this->supported_features); } -void ListEntitiesWaterHeaterResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesWaterHeaterResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1502,6 +1565,7 @@ void ListEntitiesWaterHeaterResponse::calculate_size(ProtoSize &size) const { } } size.add_uint32(1, this->supported_features); + return size.get_size(); } void WaterHeaterStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1515,7 +1579,8 @@ void WaterHeaterStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_float(7, this->target_temperature_low); buffer.encode_float(8, this->target_temperature_high); } -void WaterHeaterStateResponse::calculate_size(ProtoSize &size) const { +uint32_t WaterHeaterStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_float(1, this->current_temperature); size.add_float(1, this->target_temperature); @@ -1526,6 +1591,7 @@ void WaterHeaterStateResponse::calculate_size(ProtoSize &size) const { size.add_uint32(1, this->state); size.add_float(1, this->target_temperature_low); size.add_float(1, this->target_temperature_high); + return size.get_size(); } bool WaterHeaterCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1588,7 +1654,8 @@ void ListEntitiesNumberResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(14, this->device_id); #endif } -void ListEntitiesNumberResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesNumberResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1606,6 +1673,7 @@ void ListEntitiesNumberResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void NumberStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1615,13 +1683,15 @@ void NumberStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void NumberStateResponse::calculate_size(ProtoSize &size) const { +uint32_t NumberStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_float(1, this->state); size.add_bool(1, this->missing_state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool NumberCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1666,7 +1736,8 @@ void ListEntitiesSelectResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(9, this->device_id); #endif } -void ListEntitiesSelectResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesSelectResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1683,6 +1754,7 @@ void ListEntitiesSelectResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void SelectStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1692,13 +1764,15 @@ void SelectStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void SelectStateResponse::calculate_size(ProtoSize &size) const { +uint32_t SelectStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_length(1, this->state.size()); size.add_bool(1, this->missing_state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool SelectCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1753,7 +1827,8 @@ void ListEntitiesSirenResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(11, this->device_id); #endif } -void ListEntitiesSirenResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesSirenResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1772,6 +1847,7 @@ void ListEntitiesSirenResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void SirenStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1780,12 +1856,14 @@ void SirenStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->device_id); #endif } -void SirenStateResponse::calculate_size(ProtoSize &size) const { +uint32_t SirenStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool SirenCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1860,7 +1938,8 @@ void ListEntitiesLockResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(12, this->device_id); #endif } -void ListEntitiesLockResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesLockResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1876,6 +1955,7 @@ void ListEntitiesLockResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void LockStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -1884,12 +1964,14 @@ void LockStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->device_id); #endif } -void LockStateResponse::calculate_size(ProtoSize &size) const { +uint32_t LockStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_uint32(1, static_cast(this->state)); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool LockCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1946,7 +2028,8 @@ void ListEntitiesButtonResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(9, this->device_id); #endif } -void ListEntitiesButtonResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesButtonResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -1959,6 +2042,7 @@ void ListEntitiesButtonResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool ButtonCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -1991,12 +2075,14 @@ void MediaPlayerSupportedFormat::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, static_cast(this->purpose)); buffer.encode_uint32(5, this->sample_bytes); } -void MediaPlayerSupportedFormat::calculate_size(ProtoSize &size) const { +uint32_t MediaPlayerSupportedFormat::calculate_size() const { + ProtoSize size; size.add_length(1, this->format.size()); size.add_uint32(1, this->sample_rate); size.add_uint32(1, this->num_channels); size.add_uint32(1, static_cast(this->purpose)); size.add_uint32(1, this->sample_bytes); + return size.get_size(); } void ListEntitiesMediaPlayerResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(1, this->object_id); @@ -2016,7 +2102,8 @@ void ListEntitiesMediaPlayerResponse::encode(ProtoWriteBuffer &buffer) const { #endif buffer.encode_uint32(11, this->feature_flags); } -void ListEntitiesMediaPlayerResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesMediaPlayerResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -2031,6 +2118,7 @@ void ListEntitiesMediaPlayerResponse::calculate_size(ProtoSize &size) const { size.add_uint32(1, this->device_id); #endif size.add_uint32(1, this->feature_flags); + return size.get_size(); } void MediaPlayerStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -2041,7 +2129,8 @@ void MediaPlayerStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(5, this->device_id); #endif } -void MediaPlayerStateResponse::calculate_size(ProtoSize &size) const { +uint32_t MediaPlayerStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_uint32(1, static_cast(this->state)); size.add_float(1, this->volume); @@ -2049,6 +2138,7 @@ void MediaPlayerStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool MediaPlayerCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2122,21 +2212,25 @@ void BluetoothLERawAdvertisement::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->address_type); buffer.encode_bytes(4, this->data, this->data_len); } -void BluetoothLERawAdvertisement::calculate_size(ProtoSize &size) const { +uint32_t BluetoothLERawAdvertisement::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_sint32(1, this->rssi); size.add_uint32(1, this->address_type); size.add_length(1, this->data_len); + return size.get_size(); } void BluetoothLERawAdvertisementsResponse::encode(ProtoWriteBuffer &buffer) const { for (uint16_t i = 0; i < this->advertisements_len; i++) { buffer.encode_message(1, this->advertisements[i]); } } -void BluetoothLERawAdvertisementsResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothLERawAdvertisementsResponse::calculate_size() const { + ProtoSize size; for (uint16_t i = 0; i < this->advertisements_len; i++) { size.add_message_object_force(1, this->advertisements[i]); } + return size.get_size(); } bool BluetoothDeviceRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2163,11 +2257,13 @@ void BluetoothDeviceConnectionResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->mtu); buffer.encode_int32(4, this->error); } -void BluetoothDeviceConnectionResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothDeviceConnectionResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_bool(1, this->connected); size.add_uint32(1, this->mtu); size.add_int32(1, this->error); + return size.get_size(); } bool BluetoothGATTGetServicesRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2187,13 +2283,15 @@ void BluetoothGATTDescriptor::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(2, this->handle); buffer.encode_uint32(3, this->short_uuid); } -void BluetoothGATTDescriptor::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTDescriptor::calculate_size() const { + ProtoSize size; if (this->uuid[0] != 0 || this->uuid[1] != 0) { size.add_uint64_force(1, this->uuid[0]); size.add_uint64_force(1, this->uuid[1]); } size.add_uint32(1, this->handle); size.add_uint32(1, this->short_uuid); + return size.get_size(); } void BluetoothGATTCharacteristic::encode(ProtoWriteBuffer &buffer) const { if (this->uuid[0] != 0 || this->uuid[1] != 0) { @@ -2207,7 +2305,8 @@ void BluetoothGATTCharacteristic::encode(ProtoWriteBuffer &buffer) const { } buffer.encode_uint32(5, this->short_uuid); } -void BluetoothGATTCharacteristic::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTCharacteristic::calculate_size() const { + ProtoSize size; if (this->uuid[0] != 0 || this->uuid[1] != 0) { size.add_uint64_force(1, this->uuid[0]); size.add_uint64_force(1, this->uuid[1]); @@ -2216,6 +2315,7 @@ void BluetoothGATTCharacteristic::calculate_size(ProtoSize &size) const { size.add_uint32(1, this->properties); size.add_repeated_message(1, this->descriptors); size.add_uint32(1, this->short_uuid); + return size.get_size(); } void BluetoothGATTService::encode(ProtoWriteBuffer &buffer) const { if (this->uuid[0] != 0 || this->uuid[1] != 0) { @@ -2228,7 +2328,8 @@ void BluetoothGATTService::encode(ProtoWriteBuffer &buffer) const { } buffer.encode_uint32(4, this->short_uuid); } -void BluetoothGATTService::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTService::calculate_size() const { + ProtoSize size; if (this->uuid[0] != 0 || this->uuid[1] != 0) { size.add_uint64_force(1, this->uuid[0]); size.add_uint64_force(1, this->uuid[1]); @@ -2236,6 +2337,7 @@ void BluetoothGATTService::calculate_size(ProtoSize &size) const { size.add_uint32(1, this->handle); size.add_repeated_message(1, this->characteristics); size.add_uint32(1, this->short_uuid); + return size.get_size(); } void BluetoothGATTGetServicesResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); @@ -2243,14 +2345,20 @@ void BluetoothGATTGetServicesResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_message(2, it); } } -void BluetoothGATTGetServicesResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTGetServicesResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_repeated_message(1, this->services); + return size.get_size(); } void BluetoothGATTGetServicesDoneResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); } -void BluetoothGATTGetServicesDoneResponse::calculate_size(ProtoSize &size) const { size.add_uint64(1, this->address); } +uint32_t BluetoothGATTGetServicesDoneResponse::calculate_size() const { + ProtoSize size; + size.add_uint64(1, this->address); + return size.get_size(); +} bool BluetoothGATTReadRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { case 1: @@ -2269,10 +2377,12 @@ void BluetoothGATTReadResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(2, this->handle); buffer.encode_bytes(3, this->data_ptr_, this->data_len_); } -void BluetoothGATTReadResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTReadResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_uint32(1, this->handle); size.add_length(1, this->data_len_); + return size.get_size(); } bool BluetoothGATTWriteRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2361,10 +2471,12 @@ void BluetoothGATTNotifyDataResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(2, this->handle); buffer.encode_bytes(3, this->data_ptr_, this->data_len_); } -void BluetoothGATTNotifyDataResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTNotifyDataResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_uint32(1, this->handle); size.add_length(1, this->data_len_); + return size.get_size(); } void BluetoothConnectionsFreeResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(1, this->free); @@ -2375,7 +2487,8 @@ void BluetoothConnectionsFreeResponse::encode(ProtoWriteBuffer &buffer) const { } } } -void BluetoothConnectionsFreeResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothConnectionsFreeResponse::calculate_size() const { + ProtoSize size; size.add_uint32(1, this->free); size.add_uint32(1, this->limit); for (const auto &it : this->allocated) { @@ -2383,72 +2496,87 @@ void BluetoothConnectionsFreeResponse::calculate_size(ProtoSize &size) const { size.add_uint64_force(1, it); } } + return size.get_size(); } void BluetoothGATTErrorResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); buffer.encode_uint32(2, this->handle); buffer.encode_int32(3, this->error); } -void BluetoothGATTErrorResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTErrorResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_uint32(1, this->handle); size.add_int32(1, this->error); + return size.get_size(); } void BluetoothGATTWriteResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); buffer.encode_uint32(2, this->handle); } -void BluetoothGATTWriteResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTWriteResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_uint32(1, this->handle); + return size.get_size(); } void BluetoothGATTNotifyResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); buffer.encode_uint32(2, this->handle); } -void BluetoothGATTNotifyResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothGATTNotifyResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_uint32(1, this->handle); + return size.get_size(); } void BluetoothDevicePairingResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); buffer.encode_bool(2, this->paired); buffer.encode_int32(3, this->error); } -void BluetoothDevicePairingResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothDevicePairingResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_bool(1, this->paired); size.add_int32(1, this->error); + return size.get_size(); } void BluetoothDeviceUnpairingResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); buffer.encode_bool(2, this->success); buffer.encode_int32(3, this->error); } -void BluetoothDeviceUnpairingResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothDeviceUnpairingResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_bool(1, this->success); size.add_int32(1, this->error); + return size.get_size(); } void BluetoothDeviceClearCacheResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint64(1, this->address); buffer.encode_bool(2, this->success); buffer.encode_int32(3, this->error); } -void BluetoothDeviceClearCacheResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothDeviceClearCacheResponse::calculate_size() const { + ProtoSize size; size.add_uint64(1, this->address); size.add_bool(1, this->success); size.add_int32(1, this->error); + return size.get_size(); } void BluetoothScannerStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(1, static_cast(this->state)); buffer.encode_uint32(2, static_cast(this->mode)); buffer.encode_uint32(3, static_cast(this->configured_mode)); } -void BluetoothScannerStateResponse::calculate_size(ProtoSize &size) const { +uint32_t BluetoothScannerStateResponse::calculate_size() const { + ProtoSize size; size.add_uint32(1, static_cast(this->state)); size.add_uint32(1, static_cast(this->mode)); size.add_uint32(1, static_cast(this->configured_mode)); + return size.get_size(); } bool BluetoothScannerSetModeRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2480,10 +2608,12 @@ void VoiceAssistantAudioSettings::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(2, this->auto_gain); buffer.encode_float(3, this->volume_multiplier); } -void VoiceAssistantAudioSettings::calculate_size(ProtoSize &size) const { +uint32_t VoiceAssistantAudioSettings::calculate_size() const { + ProtoSize size; size.add_uint32(1, this->noise_suppression_level); size.add_uint32(1, this->auto_gain); size.add_float(1, this->volume_multiplier); + return size.get_size(); } void VoiceAssistantRequest::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bool(1, this->start); @@ -2492,12 +2622,14 @@ void VoiceAssistantRequest::encode(ProtoWriteBuffer &buffer) const { buffer.encode_message(4, this->audio_settings, false); buffer.encode_string(5, this->wake_word_phrase); } -void VoiceAssistantRequest::calculate_size(ProtoSize &size) const { +uint32_t VoiceAssistantRequest::calculate_size() const { + ProtoSize size; size.add_bool(1, this->start); size.add_length(1, this->conversation_id.size()); size.add_uint32(1, this->flags); size.add_message_object(1, this->audio_settings); size.add_length(1, this->wake_word_phrase.size()); + return size.get_size(); } bool VoiceAssistantResponse::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2574,9 +2706,11 @@ void VoiceAssistantAudio::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bytes(1, this->data, this->data_len); buffer.encode_bool(2, this->end); } -void VoiceAssistantAudio::calculate_size(ProtoSize &size) const { +uint32_t VoiceAssistantAudio::calculate_size() const { + ProtoSize size; size.add_length(1, this->data_len); size.add_bool(1, this->end); + return size.get_size(); } bool VoiceAssistantTimerEventResponse::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2642,7 +2776,11 @@ bool VoiceAssistantAnnounceRequest::decode_length(uint32_t field_id, ProtoLength return true; } void VoiceAssistantAnnounceFinished::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bool(1, this->success); } -void VoiceAssistantAnnounceFinished::calculate_size(ProtoSize &size) const { size.add_bool(1, this->success); } +uint32_t VoiceAssistantAnnounceFinished::calculate_size() const { + ProtoSize size; + size.add_bool(1, this->success); + return size.get_size(); +} void VoiceAssistantWakeWord::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(1, this->id); buffer.encode_string(2, this->wake_word); @@ -2650,7 +2788,8 @@ void VoiceAssistantWakeWord::encode(ProtoWriteBuffer &buffer) const { buffer.encode_string(3, it, true); } } -void VoiceAssistantWakeWord::calculate_size(ProtoSize &size) const { +uint32_t VoiceAssistantWakeWord::calculate_size() const { + ProtoSize size; size.add_length(1, this->id.size()); size.add_length(1, this->wake_word.size()); if (!this->trained_languages.empty()) { @@ -2658,6 +2797,7 @@ void VoiceAssistantWakeWord::calculate_size(ProtoSize &size) const { size.add_length_force(1, it.size()); } } + return size.get_size(); } bool VoiceAssistantExternalWakeWord::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2719,7 +2859,8 @@ void VoiceAssistantConfigurationResponse::encode(ProtoWriteBuffer &buffer) const } buffer.encode_uint32(3, this->max_active_wake_words); } -void VoiceAssistantConfigurationResponse::calculate_size(ProtoSize &size) const { +uint32_t VoiceAssistantConfigurationResponse::calculate_size() const { + ProtoSize size; size.add_repeated_message(1, this->available_wake_words); if (!this->active_wake_words->empty()) { for (const auto &it : *this->active_wake_words) { @@ -2727,6 +2868,7 @@ void VoiceAssistantConfigurationResponse::calculate_size(ProtoSize &size) const } } size.add_uint32(1, this->max_active_wake_words); + return size.get_size(); } bool VoiceAssistantSetConfiguration::decode_length(uint32_t field_id, ProtoLengthDelimited value) { switch (field_id) { @@ -2756,7 +2898,8 @@ void ListEntitiesAlarmControlPanelResponse::encode(ProtoWriteBuffer &buffer) con buffer.encode_uint32(11, this->device_id); #endif } -void ListEntitiesAlarmControlPanelResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesAlarmControlPanelResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -2771,6 +2914,7 @@ void ListEntitiesAlarmControlPanelResponse::calculate_size(ProtoSize &size) cons #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void AlarmControlPanelStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -2779,12 +2923,14 @@ void AlarmControlPanelStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->device_id); #endif } -void AlarmControlPanelStateResponse::calculate_size(ProtoSize &size) const { +uint32_t AlarmControlPanelStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_uint32(1, static_cast(this->state)); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool AlarmControlPanelCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2841,7 +2987,8 @@ void ListEntitiesTextResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(12, this->device_id); #endif } -void ListEntitiesTextResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesTextResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -2857,6 +3004,7 @@ void ListEntitiesTextResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void TextStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -2866,13 +3014,15 @@ void TextStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void TextStateResponse::calculate_size(ProtoSize &size) const { +uint32_t TextStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_length(1, this->state.size()); size.add_bool(1, this->missing_state); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool TextCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -2922,7 +3072,8 @@ void ListEntitiesDateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(8, this->device_id); #endif } -void ListEntitiesDateResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesDateResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -2934,6 +3085,7 @@ void ListEntitiesDateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void DateStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -2945,7 +3097,8 @@ void DateStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(6, this->device_id); #endif } -void DateStateResponse::calculate_size(ProtoSize &size) const { +uint32_t DateStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->missing_state); size.add_uint32(1, this->year); @@ -2954,6 +3107,7 @@ void DateStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool DateCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -3001,7 +3155,8 @@ void ListEntitiesTimeResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(8, this->device_id); #endif } -void ListEntitiesTimeResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesTimeResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -3013,6 +3168,7 @@ void ListEntitiesTimeResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void TimeStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -3024,7 +3180,8 @@ void TimeStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(6, this->device_id); #endif } -void TimeStateResponse::calculate_size(ProtoSize &size) const { +uint32_t TimeStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->missing_state); size.add_uint32(1, this->hour); @@ -3033,6 +3190,7 @@ void TimeStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool TimeCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -3084,7 +3242,8 @@ void ListEntitiesEventResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(10, this->device_id); #endif } -void ListEntitiesEventResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesEventResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -3102,6 +3261,7 @@ void ListEntitiesEventResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void EventResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -3110,12 +3270,14 @@ void EventResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(3, this->device_id); #endif } -void EventResponse::calculate_size(ProtoSize &size) const { +uint32_t EventResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_length(1, this->event_type.size()); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } #endif #ifdef USE_VALVE @@ -3136,7 +3298,8 @@ void ListEntitiesValveResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(12, this->device_id); #endif } -void ListEntitiesValveResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesValveResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -3152,6 +3315,7 @@ void ListEntitiesValveResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void ValveStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -3161,13 +3325,15 @@ void ValveStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void ValveStateResponse::calculate_size(ProtoSize &size) const { +uint32_t ValveStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_float(1, this->position); size.add_uint32(1, static_cast(this->current_operation)); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool ValveCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -3215,7 +3381,8 @@ void ListEntitiesDateTimeResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(8, this->device_id); #endif } -void ListEntitiesDateTimeResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesDateTimeResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -3227,6 +3394,7 @@ void ListEntitiesDateTimeResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void DateTimeStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -3236,13 +3404,15 @@ void DateTimeStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(4, this->device_id); #endif } -void DateTimeStateResponse::calculate_size(ProtoSize &size) const { +uint32_t DateTimeStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->missing_state); size.add_fixed32(1, this->epoch_seconds); #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool DateTimeCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -3285,7 +3455,8 @@ void ListEntitiesUpdateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(9, this->device_id); #endif } -void ListEntitiesUpdateResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesUpdateResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -3298,6 +3469,7 @@ void ListEntitiesUpdateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } void UpdateStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_fixed32(1, this->key); @@ -3314,7 +3486,8 @@ void UpdateStateResponse::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(11, this->device_id); #endif } -void UpdateStateResponse::calculate_size(ProtoSize &size) const { +uint32_t UpdateStateResponse::calculate_size() const { + ProtoSize size; size.add_fixed32(1, this->key); size.add_bool(1, this->missing_state); size.add_bool(1, this->in_progress); @@ -3328,6 +3501,7 @@ void UpdateStateResponse::calculate_size(ProtoSize &size) const { #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif + return size.get_size(); } bool UpdateCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { @@ -3369,7 +3543,11 @@ bool ZWaveProxyFrame::decode_length(uint32_t field_id, ProtoLengthDelimited valu return true; } void ZWaveProxyFrame::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bytes(1, this->data, this->data_len); } -void ZWaveProxyFrame::calculate_size(ProtoSize &size) const { size.add_length(1, this->data_len); } +uint32_t ZWaveProxyFrame::calculate_size() const { + ProtoSize size; + size.add_length(1, this->data_len); + return size.get_size(); +} bool ZWaveProxyRequest::decode_varint(uint32_t field_id, ProtoVarInt value) { switch (field_id) { case 1: @@ -3396,9 +3574,11 @@ void ZWaveProxyRequest::encode(ProtoWriteBuffer &buffer) const { buffer.encode_uint32(1, static_cast(this->type)); buffer.encode_bytes(2, this->data, this->data_len); } -void ZWaveProxyRequest::calculate_size(ProtoSize &size) const { +uint32_t ZWaveProxyRequest::calculate_size() const { + ProtoSize size; size.add_uint32(1, static_cast(this->type)); size.add_length(1, this->data_len); + return size.get_size(); } #endif #ifdef USE_INFRARED @@ -3416,7 +3596,8 @@ void ListEntitiesInfraredResponse::encode(ProtoWriteBuffer &buffer) const { #endif buffer.encode_uint32(8, this->capabilities); } -void ListEntitiesInfraredResponse::calculate_size(ProtoSize &size) const { +uint32_t ListEntitiesInfraredResponse::calculate_size() const { + ProtoSize size; size.add_length(1, this->object_id.size()); size.add_fixed32(1, this->key); size.add_length(1, this->name.size()); @@ -3429,6 +3610,7 @@ void ListEntitiesInfraredResponse::calculate_size(ProtoSize &size) const { size.add_uint32(1, this->device_id); #endif size.add_uint32(1, this->capabilities); + return size.get_size(); } #endif #ifdef USE_IR_RF @@ -3482,7 +3664,8 @@ void InfraredRFReceiveEvent::encode(ProtoWriteBuffer &buffer) const { buffer.encode_sint32(3, it, true); } } -void InfraredRFReceiveEvent::calculate_size(ProtoSize &size) const { +uint32_t InfraredRFReceiveEvent::calculate_size() const { + ProtoSize size; #ifdef USE_DEVICES size.add_uint32(1, this->device_id); #endif @@ -3492,6 +3675,7 @@ void InfraredRFReceiveEvent::calculate_size(ProtoSize &size) const { size.add_sint32_force(1, it); } } + return size.get_size(); } #endif diff --git a/esphome/components/api/api_pb2.h b/esphome/components/api/api_pb2.h index 84f9baa5a5..89cb1158f3 100644 --- a/esphome/components/api/api_pb2.h +++ b/esphome/components/api/api_pb2.h @@ -333,6 +333,9 @@ class InfoResponseProtoMessage : public ProtoMessage { #ifdef USE_DEVICES uint32_t device_id{0}; #endif + + protected: + ~InfoResponseProtoMessage() = default; }; class StateResponseProtoMessage : public ProtoMessage { @@ -341,6 +344,9 @@ class StateResponseProtoMessage : public ProtoMessage { #ifdef USE_DEVICES uint32_t device_id{0}; #endif + + protected: + ~StateResponseProtoMessage() = default; }; class CommandProtoMessage : public ProtoDecodableMessage { @@ -349,6 +355,9 @@ class CommandProtoMessage : public ProtoDecodableMessage { #ifdef USE_DEVICES uint32_t device_id{0}; #endif + + protected: + ~CommandProtoMessage() = default; }; class HelloRequest final : public ProtoDecodableMessage { public: @@ -380,7 +389,7 @@ class HelloResponse final : public ProtoMessage { StringRef server_info{}; StringRef name{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -445,7 +454,7 @@ class AreaInfo final : public ProtoMessage { uint32_t area_id{0}; StringRef name{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -460,7 +469,7 @@ class DeviceInfo final : public ProtoMessage { StringRef name{}; uint32_t area_id{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -525,7 +534,7 @@ class DeviceInfoResponse final : public ProtoMessage { uint32_t zwave_home_id{0}; #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -556,7 +565,7 @@ class ListEntitiesBinarySensorResponse final : public InfoResponseProtoMessage { StringRef device_class{}; bool is_status_binary_sensor{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -573,7 +582,7 @@ class BinarySensorStateResponse final : public StateResponseProtoMessage { bool state{false}; bool missing_state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -595,7 +604,7 @@ class ListEntitiesCoverResponse final : public InfoResponseProtoMessage { StringRef device_class{}; bool supports_stop{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -613,7 +622,7 @@ class CoverStateResponse final : public StateResponseProtoMessage { float tilt{0.0f}; enums::CoverOperation current_operation{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -655,7 +664,7 @@ class ListEntitiesFanResponse final : public InfoResponseProtoMessage { int32_t supported_speed_count{0}; const std::vector *supported_preset_modes{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -675,7 +684,7 @@ class FanStateResponse final : public StateResponseProtoMessage { int32_t speed_level{0}; StringRef preset_mode{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -722,7 +731,7 @@ class ListEntitiesLightResponse final : public InfoResponseProtoMessage { float max_mireds{0.0f}; const FixedVector *effects{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -749,7 +758,7 @@ class LightStateResponse final : public StateResponseProtoMessage { float warm_white{0.0f}; StringRef effect{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -813,7 +822,7 @@ class ListEntitiesSensorResponse final : public InfoResponseProtoMessage { StringRef device_class{}; enums::SensorStateClass state_class{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -830,7 +839,7 @@ class SensorStateResponse final : public StateResponseProtoMessage { float state{0.0f}; bool missing_state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -849,7 +858,7 @@ class ListEntitiesSwitchResponse final : public InfoResponseProtoMessage { bool assumed_state{false}; StringRef device_class{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -865,7 +874,7 @@ class SwitchStateResponse final : public StateResponseProtoMessage { #endif bool state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -899,7 +908,7 @@ class ListEntitiesTextSensorResponse final : public InfoResponseProtoMessage { #endif StringRef device_class{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -916,7 +925,7 @@ class TextSensorStateResponse final : public StateResponseProtoMessage { StringRef state{}; bool missing_state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -955,7 +964,7 @@ class SubscribeLogsResponse final : public ProtoMessage { this->message_len_ = len; } void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -988,7 +997,7 @@ class NoiseEncryptionSetKeyResponse final : public ProtoMessage { #endif bool success{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1002,7 +1011,7 @@ class HomeassistantServiceMap final : public ProtoMessage { StringRef key{}; StringRef value{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1031,7 +1040,7 @@ class HomeassistantActionRequest final : public ProtoMessage { StringRef response_template{}; #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1075,7 +1084,7 @@ class SubscribeHomeAssistantStateResponse final : public ProtoMessage { StringRef attribute{}; bool once{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1166,7 +1175,7 @@ class ListEntitiesServicesArgument final : public ProtoMessage { StringRef name{}; enums::ServiceArgType type{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1185,7 +1194,7 @@ class ListEntitiesServicesResponse final : public ProtoMessage { FixedVector args{}; enums::SupportsResponseType supports_response{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1255,7 +1264,7 @@ class ExecuteServiceResponse final : public ProtoMessage { uint16_t response_data_len{0}; #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1272,7 +1281,7 @@ class ListEntitiesCameraResponse final : public InfoResponseProtoMessage { const char *message_name() const override { return "list_entities_camera_response"; } #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1294,7 +1303,7 @@ class CameraImageResponse final : public StateResponseProtoMessage { } bool done{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1345,7 +1354,7 @@ class ListEntitiesClimateResponse final : public InfoResponseProtoMessage { float visual_max_humidity{0.0f}; uint32_t feature_flags{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1373,7 +1382,7 @@ class ClimateStateResponse final : public StateResponseProtoMessage { float current_humidity{0.0f}; float target_humidity{0.0f}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1431,7 +1440,7 @@ class ListEntitiesWaterHeaterResponse final : public InfoResponseProtoMessage { const water_heater::WaterHeaterModeMask *supported_modes{}; uint32_t supported_features{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1452,7 +1461,7 @@ class WaterHeaterStateResponse final : public StateResponseProtoMessage { float target_temperature_low{0.0f}; float target_temperature_high{0.0f}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1496,7 +1505,7 @@ class ListEntitiesNumberResponse final : public InfoResponseProtoMessage { enums::NumberMode mode{}; StringRef device_class{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1513,7 +1522,7 @@ class NumberStateResponse final : public StateResponseProtoMessage { float state{0.0f}; bool missing_state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1547,7 +1556,7 @@ class ListEntitiesSelectResponse final : public InfoResponseProtoMessage { #endif const FixedVector *options{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1564,7 +1573,7 @@ class SelectStateResponse final : public StateResponseProtoMessage { StringRef state{}; bool missing_state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1601,7 +1610,7 @@ class ListEntitiesSirenResponse final : public InfoResponseProtoMessage { bool supports_duration{false}; bool supports_volume{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1617,7 +1626,7 @@ class SirenStateResponse final : public StateResponseProtoMessage { #endif bool state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1662,7 +1671,7 @@ class ListEntitiesLockResponse final : public InfoResponseProtoMessage { bool requires_code{false}; StringRef code_format{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1678,7 +1687,7 @@ class LockStateResponse final : public StateResponseProtoMessage { #endif enums::LockState state{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1715,7 +1724,7 @@ class ListEntitiesButtonResponse final : public InfoResponseProtoMessage { #endif StringRef device_class{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1747,7 +1756,7 @@ class MediaPlayerSupportedFormat final : public ProtoMessage { enums::MediaPlayerFormatPurpose purpose{}; uint32_t sample_bytes{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1765,7 +1774,7 @@ class ListEntitiesMediaPlayerResponse final : public InfoResponseProtoMessage { std::vector supported_formats{}; uint32_t feature_flags{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1783,7 +1792,7 @@ class MediaPlayerStateResponse final : public StateResponseProtoMessage { float volume{0.0f}; bool muted{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1839,7 +1848,7 @@ class BluetoothLERawAdvertisement final : public ProtoMessage { uint8_t data[62]{}; uint8_t data_len{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1856,7 +1865,7 @@ class BluetoothLERawAdvertisementsResponse final : public ProtoMessage { std::array advertisements{}; uint16_t advertisements_len{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1893,7 +1902,7 @@ class BluetoothDeviceConnectionResponse final : public ProtoMessage { uint32_t mtu{0}; int32_t error{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1921,7 +1930,7 @@ class BluetoothGATTDescriptor final : public ProtoMessage { uint32_t handle{0}; uint32_t short_uuid{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1936,7 +1945,7 @@ class BluetoothGATTCharacteristic final : public ProtoMessage { FixedVector descriptors{}; uint32_t short_uuid{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1950,7 +1959,7 @@ class BluetoothGATTService final : public ProtoMessage { FixedVector characteristics{}; uint32_t short_uuid{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1967,7 +1976,7 @@ class BluetoothGATTGetServicesResponse final : public ProtoMessage { uint64_t address{0}; std::vector services{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -1983,7 +1992,7 @@ class BluetoothGATTGetServicesDoneResponse final : public ProtoMessage { #endif uint64_t address{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2022,7 +2031,7 @@ class BluetoothGATTReadResponse final : public ProtoMessage { this->data_len_ = len; } void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2117,7 +2126,7 @@ class BluetoothGATTNotifyDataResponse final : public ProtoMessage { this->data_len_ = len; } void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2135,7 +2144,7 @@ class BluetoothConnectionsFreeResponse final : public ProtoMessage { uint32_t limit{0}; std::array allocated{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2153,7 +2162,7 @@ class BluetoothGATTErrorResponse final : public ProtoMessage { uint32_t handle{0}; int32_t error{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2170,7 +2179,7 @@ class BluetoothGATTWriteResponse final : public ProtoMessage { uint64_t address{0}; uint32_t handle{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2187,7 +2196,7 @@ class BluetoothGATTNotifyResponse final : public ProtoMessage { uint64_t address{0}; uint32_t handle{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2205,7 +2214,7 @@ class BluetoothDevicePairingResponse final : public ProtoMessage { bool paired{false}; int32_t error{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2223,7 +2232,7 @@ class BluetoothDeviceUnpairingResponse final : public ProtoMessage { bool success{false}; int32_t error{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2241,7 +2250,7 @@ class BluetoothDeviceClearCacheResponse final : public ProtoMessage { bool success{false}; int32_t error{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2259,7 +2268,7 @@ class BluetoothScannerStateResponse final : public ProtoMessage { enums::BluetoothScannerMode mode{}; enums::BluetoothScannerMode configured_mode{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2305,7 +2314,7 @@ class VoiceAssistantAudioSettings final : public ProtoMessage { uint32_t auto_gain{0}; float volume_multiplier{0.0f}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2325,7 +2334,7 @@ class VoiceAssistantRequest final : public ProtoMessage { VoiceAssistantAudioSettings audio_settings{}; StringRef wake_word_phrase{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2387,7 +2396,7 @@ class VoiceAssistantAudio final : public ProtoDecodableMessage { uint16_t data_len{0}; bool end{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2445,7 +2454,7 @@ class VoiceAssistantAnnounceFinished final : public ProtoMessage { #endif bool success{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2458,7 +2467,7 @@ class VoiceAssistantWakeWord final : public ProtoMessage { StringRef wake_word{}; std::vector trained_languages{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2508,7 +2517,7 @@ class VoiceAssistantConfigurationResponse final : public ProtoMessage { const std::vector *active_wake_words{}; uint32_t max_active_wake_words{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2543,7 +2552,7 @@ class ListEntitiesAlarmControlPanelResponse final : public InfoResponseProtoMess bool requires_code{false}; bool requires_code_to_arm{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2559,7 +2568,7 @@ class AlarmControlPanelStateResponse final : public StateResponseProtoMessage { #endif enums::AlarmControlPanelState state{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2598,7 +2607,7 @@ class ListEntitiesTextResponse final : public InfoResponseProtoMessage { StringRef pattern{}; enums::TextMode mode{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2615,7 +2624,7 @@ class TextStateResponse final : public StateResponseProtoMessage { StringRef state{}; bool missing_state{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2649,7 +2658,7 @@ class ListEntitiesDateResponse final : public InfoResponseProtoMessage { const char *message_name() const override { return "list_entities_date_response"; } #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2668,7 +2677,7 @@ class DateStateResponse final : public StateResponseProtoMessage { uint32_t month{0}; uint32_t day{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2703,7 +2712,7 @@ class ListEntitiesTimeResponse final : public InfoResponseProtoMessage { const char *message_name() const override { return "list_entities_time_response"; } #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2722,7 +2731,7 @@ class TimeStateResponse final : public StateResponseProtoMessage { uint32_t minute{0}; uint32_t second{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2759,7 +2768,7 @@ class ListEntitiesEventResponse final : public InfoResponseProtoMessage { StringRef device_class{}; const FixedVector *event_types{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2775,7 +2784,7 @@ class EventResponse final : public StateResponseProtoMessage { #endif StringRef event_type{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2796,7 +2805,7 @@ class ListEntitiesValveResponse final : public InfoResponseProtoMessage { bool supports_position{false}; bool supports_stop{false}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2813,7 +2822,7 @@ class ValveStateResponse final : public StateResponseProtoMessage { float position{0.0f}; enums::ValveOperation current_operation{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2848,7 +2857,7 @@ class ListEntitiesDateTimeResponse final : public InfoResponseProtoMessage { const char *message_name() const override { return "list_entities_date_time_response"; } #endif void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2865,7 +2874,7 @@ class DateTimeStateResponse final : public StateResponseProtoMessage { bool missing_state{false}; uint32_t epoch_seconds{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2899,7 +2908,7 @@ class ListEntitiesUpdateResponse final : public InfoResponseProtoMessage { #endif StringRef device_class{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2923,7 +2932,7 @@ class UpdateStateResponse final : public StateResponseProtoMessage { StringRef release_summary{}; StringRef release_url{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2958,7 +2967,7 @@ class ZWaveProxyFrame final : public ProtoDecodableMessage { const uint8_t *data{nullptr}; uint16_t data_len{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2977,7 +2986,7 @@ class ZWaveProxyRequest final : public ProtoDecodableMessage { const uint8_t *data{nullptr}; uint16_t data_len{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -2997,7 +3006,7 @@ class ListEntitiesInfraredResponse final : public InfoResponseProtoMessage { #endif uint32_t capabilities{0}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif @@ -3044,7 +3053,7 @@ class InfraredRFReceiveEvent final : public ProtoMessage { uint32_t key{0}; const std::vector *timings{}; void encode(ProtoWriteBuffer &buffer) const; - void calculate_size(ProtoSize &size) const; + uint32_t calculate_size() const; #ifdef HAS_PROTO_MESSAGE_DUMP const char *dump_to(DumpBuffer &out) const override; #endif diff --git a/esphome/components/api/proto.h b/esphome/components/api/proto.h index b0e38cf721..58820ca659 100644 --- a/esphome/components/api/proto.h +++ b/esphome/components/api/proto.h @@ -462,7 +462,7 @@ class ProtoMessage { // dispatch is not needed. This eliminates per-message vtable entries for // encode/calculate_size, saving ~1.3 KB of flash across all message types. void encode(ProtoWriteBuffer &buffer) const {} - void calculate_size(ProtoSize &size) const {} + uint32_t calculate_size() const { return 0; } #ifdef HAS_PROTO_MESSAGE_DUMP virtual const char *dump_to(DumpBuffer &out) const = 0; virtual const char *message_name() const { return "unknown"; } @@ -846,11 +846,11 @@ class ProtoSize { * @param message The nested message object */ template inline void add_message_object(uint32_t field_id_size, const T &message) { - add_message_field(field_id_size, calculated_size_of(message)); + add_message_field(field_id_size, message.calculate_size()); } template inline void add_message_object_force(uint32_t field_id_size, const T &message) { - add_message_field_force(field_id_size, calculated_size_of(message)); + add_message_field_force(field_id_size, message.calculate_size()); } /** @@ -912,11 +912,7 @@ class ProtoSize { // Free template to calculate encoded size of any message type. // Replaces the former virtual ProtoMessage::calculated_size() member. -template inline uint32_t calculated_size_of(const T &msg) { - ProtoSize size; - msg.calculate_size(size); - return size.get_size(); -} +template inline uint32_t calculated_size_of(const T &msg) { return msg.calculate_size(); } // Implementation of encode_packed_sint32 - must be after ProtoSize is defined inline void ProtoWriteBuffer::encode_packed_sint32(uint32_t field_id, const std::vector &values) { @@ -939,7 +935,7 @@ inline void ProtoWriteBuffer::encode_packed_sint32(uint32_t field_id, const std: // Implementation of encode_message - must be after ProtoMessage is defined template inline void ProtoWriteBuffer::encode_message(uint32_t field_id, const T &value, bool force) { - uint32_t msg_length_bytes = calculated_size_of(value); + uint32_t msg_length_bytes = value.calculate_size(); this->encode_message_( field_id, msg_length_bytes, &value, [](const void *msg, ProtoWriteBuffer &buf) { static_cast(msg)->encode(buf); }, force); diff --git a/esphome/components/bluetooth_proxy/bluetooth_connection.cpp b/esphome/components/bluetooth_proxy/bluetooth_connection.cpp index 981898f240..967a96a08c 100644 --- a/esphome/components/bluetooth_proxy/bluetooth_connection.cpp +++ b/esphome/components/bluetooth_proxy/bluetooth_connection.cpp @@ -183,10 +183,7 @@ void BluetoothConnection::send_service_for_discovery_() { static constexpr size_t MAX_PACKET_SIZE = 1360; // Keep running total of actual message size - size_t current_size = 0; - api::ProtoSize size; - resp.calculate_size(size); - current_size = size.get_size(); + size_t current_size = resp.calculate_size(); while (this->send_service_ < this->service_count_) { esp_gattc_service_elem_t service_result; @@ -302,9 +299,7 @@ void BluetoothConnection::send_service_for_discovery_() { } // end if (total_char_count > 0) // Calculate the actual size of just this service - api::ProtoSize service_sizer; - service_resp.calculate_size(service_sizer); - size_t service_size = service_sizer.get_size() + 1; // +1 for field tag + size_t service_size = service_resp.calculate_size() + 1; // +1 for field tag // Check if adding this service would exceed the limit if (current_size + service_size > MAX_PACKET_SIZE) { diff --git a/script/api_protobuf/api_protobuf.py b/script/api_protobuf/api_protobuf.py index 9f4d19cadc..9906982c7f 100755 --- a/script/api_protobuf/api_protobuf.py +++ b/script/api_protobuf/api_protobuf.py @@ -2239,17 +2239,13 @@ def build_message_type( # Add calculate_size method only if this message needs encoding and has fields if needs_encode and size_calc: - o = f"void {desc.name}::calculate_size(ProtoSize &size) const {{" - # For a single field, just inline it for simplicity - if len(size_calc) == 1 and len(size_calc[0]) + len(o) + 3 < 120: - o += f" {size_calc[0]} }}\n" - else: - # For multiple fields - o += "\n" - o += indent("\n".join(size_calc)) + "\n" - o += "}\n" + o = f"uint32_t {desc.name}::calculate_size() const {{\n" + o += " ProtoSize size;\n" + o += indent("\n".join(size_calc)) + "\n" + o += " return size.get_size();\n" + o += "}\n" cpp += o - prot = "void calculate_size(ProtoSize &size) const;" + prot = "uint32_t calculate_size() const;" public_content.append(prot) # If no fields to calculate size for or message doesn't need encoding, the default implementation in ProtoMessage will be used