Flutter Engine
 
Loading...
Searching...
No Matches
flutter::StandardMessageCodec Class Reference

#include <standard_message_codec.h>

Inheritance diagram for flutter::StandardMessageCodec:
flutter::MessageCodec< EncodableValue >

Public Member Functions

 ~StandardMessageCodec ()
 
 StandardMessageCodec (StandardMessageCodec const &)=delete
 
StandardMessageCodecoperator= (StandardMessageCodec const &)=delete
 
- Public Member Functions inherited from flutter::MessageCodec< EncodableValue >
 MessageCodec ()=default
 
 MessageCodec (MessageCodec< EncodableValue > const &)=delete
 
virtual ~MessageCodec ()=default
 
MessageCodecoperator= (MessageCodec< EncodableValue > const &)=delete
 
std::unique_ptr< EncodableValueDecodeMessage (const uint8_t *binary_message, const size_t message_size) const
 
std::unique_ptr< EncodableValueDecodeMessage (const std::vector< uint8_t > &binary_message) const
 
std::unique_ptr< std::vector< uint8_t > > EncodeMessage (const EncodableValue &message) const
 

Static Public Member Functions

static const StandardMessageCodecGetInstance (const StandardCodecSerializer *serializer=nullptr)
 

Protected Member Functions

std::unique_ptr< EncodableValueDecodeMessageInternal (const uint8_t *binary_message, const size_t message_size) const override
 
std::unique_ptr< std::vector< uint8_t > > EncodeMessageInternal (const EncodableValue &message) const override
 

Detailed Description

Definition at line 18 of file standard_message_codec.h.

Constructor & Destructor Documentation

◆ ~StandardMessageCodec()

flutter::StandardMessageCodec::~StandardMessageCodec ( )
default

◆ StandardMessageCodec()

flutter::StandardMessageCodec::StandardMessageCodec ( StandardMessageCodec const &  )
delete

Member Function Documentation

◆ DecodeMessageInternal()

std::unique_ptr< EncodableValue > flutter::StandardMessageCodec::DecodeMessageInternal ( const uint8_t *  binary_message,
const size_t  message_size 
) const
overrideprotectedvirtual

Implements flutter::MessageCodec< EncodableValue >.

Definition at line 319 of file standard_codec.cc.

321 {
322 if (!binary_message) {
323 return std::make_unique<EncodableValue>();
324 }
325 ByteBufferStreamReader stream(binary_message, message_size);
326 return std::make_unique<EncodableValue>(serializer_->ReadValue(&stream));
327}
EncodableValue ReadValue(ByteStreamReader *stream) const

References flutter::StandardCodecSerializer::ReadValue().

◆ EncodeMessageInternal()

std::unique_ptr< std::vector< uint8_t > > flutter::StandardMessageCodec::EncodeMessageInternal ( const EncodableValue message) const
overrideprotectedvirtual

Implements flutter::MessageCodec< EncodableValue >.

Definition at line 330 of file standard_codec.cc.

331 {
332 auto encoded = std::make_unique<std::vector<uint8_t>>();
333 ByteBufferStreamWriter stream(encoded.get());
334 serializer_->WriteValue(message, &stream);
335 return encoded;
336}
virtual void WriteValue(const EncodableValue &value, ByteStreamWriter *stream) const
G_BEGIN_DECLS GBytes * message

References message, and flutter::StandardCodecSerializer::WriteValue().

◆ GetInstance()

const StandardMessageCodec & flutter::StandardMessageCodec::GetInstance ( const StandardCodecSerializer serializer = nullptr)
static

Definition at line 293 of file standard_codec.cc.

294 {
295 if (!serializer) {
297 }
298 static auto* sInstances = new std::map<const StandardCodecSerializer*,
299 std::unique_ptr<StandardMessageCodec>>;
300 auto it = sInstances->find(serializer);
301 if (it == sInstances->end()) {
302 // Uses new due to private constructor (to prevent API clients from
303 // accidentally passing temporary codec instances to channels).
304 // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks)
305 auto emplace_result = sInstances->emplace(
306 serializer, std::unique_ptr<StandardMessageCodec>(
307 new StandardMessageCodec(serializer)));
308 it = emplace_result.first;
309 }
310 return *(it->second);
311}
static const StandardCodecSerializer & GetInstance()
StandardMessageCodec(StandardMessageCodec const &)=delete

References flutter::StandardCodecSerializer::GetInstance().

Referenced by flutter::CheckEncodeDecode(), flutter::CheckEncodeDecodeWithEncodePrefix(), flutter::AccessibilityPlugin::SetUp(), flutter::TEST(), flutter::TEST(), flutter::TEST(), flutter::TEST(), flutter::TEST(), and flutter::TEST().

◆ operator=()

StandardMessageCodec & flutter::StandardMessageCodec::operator= ( StandardMessageCodec const &  )
delete

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