mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	[api] Optimize APIFrameHelper virtual methods and mark implementations as final
This commit is contained in:
		| @@ -104,9 +104,9 @@ class APIFrameHelper { | |||||||
|   // The buffer contains all messages with appropriate padding before each |   // The buffer contains all messages with appropriate padding before each | ||||||
|   virtual APIError write_protobuf_packets(ProtoWriteBuffer buffer, std::span<const PacketInfo> packets) = 0; |   virtual APIError write_protobuf_packets(ProtoWriteBuffer buffer, std::span<const PacketInfo> packets) = 0; | ||||||
|   // Get the frame header padding required by this protocol |   // Get the frame header padding required by this protocol | ||||||
|   virtual uint8_t frame_header_padding() = 0; |   uint8_t frame_header_padding() const { return frame_header_padding_; } | ||||||
|   // Get the frame footer size required by this protocol |   // Get the frame footer size required by this protocol | ||||||
|   virtual uint8_t frame_footer_size() = 0; |   uint8_t frame_footer_size() const { return frame_footer_size_; } | ||||||
|   // Check if socket has data ready to read |   // Check if socket has data ready to read | ||||||
|   bool is_socket_ready() const { return socket_ != nullptr && socket_->ready(); } |   bool is_socket_ready() const { return socket_ != nullptr && socket_->ready(); } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|  |  | ||||||
| namespace esphome::api { | namespace esphome::api { | ||||||
|  |  | ||||||
| class APINoiseFrameHelper : public APIFrameHelper { | class APINoiseFrameHelper final : public APIFrameHelper { | ||||||
|  public: |  public: | ||||||
|   APINoiseFrameHelper(std::unique_ptr<socket::Socket> socket, std::shared_ptr<APINoiseContext> ctx, |   APINoiseFrameHelper(std::unique_ptr<socket::Socket> socket, std::shared_ptr<APINoiseContext> ctx, | ||||||
|                       const ClientInfo *client_info) |                       const ClientInfo *client_info) | ||||||
| @@ -25,10 +25,6 @@ class APINoiseFrameHelper : public APIFrameHelper { | |||||||
|   APIError read_packet(ReadPacketBuffer *buffer) override; |   APIError read_packet(ReadPacketBuffer *buffer) override; | ||||||
|   APIError write_protobuf_packet(uint8_t type, ProtoWriteBuffer buffer) override; |   APIError write_protobuf_packet(uint8_t type, ProtoWriteBuffer buffer) override; | ||||||
|   APIError write_protobuf_packets(ProtoWriteBuffer buffer, std::span<const PacketInfo> packets) override; |   APIError write_protobuf_packets(ProtoWriteBuffer buffer, std::span<const PacketInfo> packets) override; | ||||||
|   // Get the frame header padding required by this protocol |  | ||||||
|   uint8_t frame_header_padding() override { return frame_header_padding_; } |  | ||||||
|   // Get the frame footer size required by this protocol |  | ||||||
|   uint8_t frame_footer_size() override { return frame_footer_size_; } |  | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
|   APIError state_action_(); |   APIError state_action_(); | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
|  |  | ||||||
| namespace esphome::api { | namespace esphome::api { | ||||||
|  |  | ||||||
| class APIPlaintextFrameHelper : public APIFrameHelper { | class APIPlaintextFrameHelper final : public APIFrameHelper { | ||||||
|  public: |  public: | ||||||
|   APIPlaintextFrameHelper(std::unique_ptr<socket::Socket> socket, const ClientInfo *client_info) |   APIPlaintextFrameHelper(std::unique_ptr<socket::Socket> socket, const ClientInfo *client_info) | ||||||
|       : APIFrameHelper(std::move(socket), client_info) { |       : APIFrameHelper(std::move(socket), client_info) { | ||||||
| @@ -22,9 +22,6 @@ class APIPlaintextFrameHelper : public APIFrameHelper { | |||||||
|   APIError read_packet(ReadPacketBuffer *buffer) override; |   APIError read_packet(ReadPacketBuffer *buffer) override; | ||||||
|   APIError write_protobuf_packet(uint8_t type, ProtoWriteBuffer buffer) override; |   APIError write_protobuf_packet(uint8_t type, ProtoWriteBuffer buffer) override; | ||||||
|   APIError write_protobuf_packets(ProtoWriteBuffer buffer, std::span<const PacketInfo> packets) override; |   APIError write_protobuf_packets(ProtoWriteBuffer buffer, std::span<const PacketInfo> packets) override; | ||||||
|   uint8_t frame_header_padding() override { return frame_header_padding_; } |  | ||||||
|   // Get the frame footer size required by this protocol |  | ||||||
|   uint8_t frame_footer_size() override { return frame_footer_size_; } |  | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
|   APIError try_read_frame_(std::vector<uint8_t> *frame); |   APIError try_read_frame_(std::vector<uint8_t> *frame); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user