DCCL v3
Classes | List of all members
dccl::v3::DefaultMessageCodec Class Reference

Provides the default codec for encoding a base Google Protobuf message or an embedded message by calling the appropriate field codecs for every field. More...

#include <dccl/codecs3/field_codec_default_message.h>

Inheritance diagram for dccl::v3::DefaultMessageCodec:
Inheritance graph
[legend]

Additional Inherited Members

- Public Member Functions inherited from dccl::FieldCodecBase
 FieldCodecBase ()
 
virtual ~FieldCodecBase ()
 
void base_encode (Bitset *bits, const google::protobuf::Message &msg, MessagePart part, bool strict)
 Encode this part (body or head) of the base message. More...
 
void base_size (unsigned *bit_size, const google::protobuf::Message &msg, MessagePart part)
 Calculate the size (in bits) of a part of the base message when it is encoded. More...
 
void base_decode (Bitset *bits, google::protobuf::Message *msg, MessagePart part)
 Decode part of a message. More...
 
void base_max_size (unsigned *bit_size, const google::protobuf::Descriptor *desc, MessagePart part)
 Calculate the maximum size of a message given its Descriptor alone (no data) More...
 
void base_min_size (unsigned *bit_size, const google::protobuf::Descriptor *desc, MessagePart part)
 Calculate the minimum size of a message given its Descriptor alone (no data) More...
 
void base_validate (const google::protobuf::Descriptor *desc, MessagePart part)
 Validate this part of the message to make sure all required extensions are set. More...
 
void base_info (std::ostream *os, const google::protobuf::Descriptor *desc, MessagePart part)
 Get human readable information (size of fields, etc.) about this part of the DCCL message. More...
 
void field_pre_encode (boost::any *wire_value, const boost::any &field_value)
 Pre-encodes a non-repeated (i.e. optional or required) field by converting the FieldType representation (the Google Protobuf representation) into the WireType representation (the type used in the encoded DCCL message). This allows for type-converting codecs. More...
 
void field_pre_encode_repeated (std::vector< boost::any > *wire_values, const std::vector< boost::any > &field_values)
 Pre-encodes a repeated field. More...
 
void field_encode (Bitset *bits, const boost::any &field_value, const google::protobuf::FieldDescriptor *field)
 Encode a non-repeated field. More...
 
void field_encode_repeated (Bitset *bits, const std::vector< boost::any > &field_values, const google::protobuf::FieldDescriptor *field)
 Encode a repeated field. More...
 
void field_size (unsigned *bit_size, const boost::any &field_value, const google::protobuf::FieldDescriptor *field)
 Calculate the size of a field. More...
 
void field_size_repeated (unsigned *bit_size, const std::vector< boost::any > &wire_values, const google::protobuf::FieldDescriptor *field)
 Calculate the size of a repeated field. More...
 
void field_decode (Bitset *bits, boost::any *field_value, const google::protobuf::FieldDescriptor *field)
 Decode a non-repeated field. More...
 
void field_decode_repeated (Bitset *bits, std::vector< boost::any > *field_values, const google::protobuf::FieldDescriptor *field)
 Decode a repeated field. More...
 
void field_post_decode (const boost::any &wire_value, boost::any *field_value)
 Post-decodes a non-repeated (i.e. optional or required) field by converting the WireType (the type used in the encoded DCCL message) representation into the FieldType representation (the Google Protobuf representation). This allows for type-converting codecs. More...
 
void field_post_decode_repeated (const std::vector< boost::any > &wire_values, std::vector< boost::any > *field_values)
 Post-decodes a repeated field. More...
 
void field_max_size (unsigned *bit_size, const google::protobuf::FieldDescriptor *field)
 Calculate the upper bound on this field's size (in bits) More...
 
void field_min_size (unsigned *bit_size, const google::protobuf::FieldDescriptor *field)
 Calculate the lower bound on this field's size (in bits) More...
 
void field_validate (bool *b, const google::protobuf::FieldDescriptor *field)
 Validate this field, checking that all required option extensions are set (e.g. (dccl.field).max and (dccl.field).min for arithmetic codecs) More...
 
void field_info (std::ostream *os, const google::protobuf::FieldDescriptor *field)
 Write human readable information about the field and its bounds to the provided stream. More...
 
std::string name () const
 the name of the codec used to identifier it in the .proto custom option extension
 
google::protobuf::FieldDescriptor::Type field_type () const
 the type exposed to the user in the original and decoded Protobuf messages More...
 
google::protobuf::FieldDescriptor::CppType wire_type () const
 the C++ type used "on the wire". This is the type visible after pre_encode and before post_decode functions are called. More...
 
const google::protobuf::FieldDescriptor * this_field () const
 Returns the FieldDescriptor (field schema meta-data) for this field. More...
 
- Static Public Member Functions inherited from dccl::FieldCodecBase
static const google::protobuf::Descriptor * this_descriptor ()
 Returns the Descriptor (message schema meta-data) for the immediate parent Message. More...
 
static const google::protobuf::Messageroot_message ()
 
static bool has_codec_group ()
 
static std::string codec_group (const google::protobuf::Descriptor *desc)
 
static std::string codec_group ()
 
static int codec_version ()
 
static MessagePart part ()
 the part of the message currently being encoded (head or body).
 
static bool strict ()
 
- Protected Member Functions inherited from dccl::FieldCodecBase
dccl::DCCLFieldOptions dccl_field_options () const
 Get the DCCL field option extension value for the current field. More...
 
void require (bool b, const std::string &description)
 Essentially an assertion to be used in the validate() virtual method. More...
 
bool use_required ()
 Whether to use the required or optional encoding.
 
virtual void any_pre_encode (boost::any *wire_value, const boost::any &field_value)
 Virtual method used to pre-encode (convert from FieldType to WireType). The default implementation of this method is for when WireType == FieldType and simply copies the field_value to the wire_value. More...
 
virtual void any_post_decode (const boost::any &wire_value, boost::any *field_value)
 Virtual method used to post-decode (convert from WireType to FieldType). The default implementation of this method is for when WireType == FieldType and simply copies the wire_value to the field_value. More...
 
virtual void any_encode_repeated (Bitset *bits, const std::vector< boost::any > &wire_values)
 
virtual void any_decode_repeated (Bitset *repeated_bits, std::vector< boost::any > *field_values)
 
virtual void any_pre_encode_repeated (std::vector< boost::any > *wire_values, const std::vector< boost::any > &field_values)
 
virtual void any_post_decode_repeated (const std::vector< boost::any > &wire_values, std::vector< boost::any > *field_values)
 
virtual unsigned any_size_repeated (const std::vector< boost::any > &wire_values)
 
virtual unsigned max_size_repeated ()
 
virtual unsigned min_size_repeated ()
 

Detailed Description

Provides the default codec for encoding a base Google Protobuf message or an embedded message by calling the appropriate field codecs for every field.

Definition at line 35 of file field_codec_default_message.h.


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