A class for managing the various field codecs. Here you can add and remove field codecs. The DCCL Codec and DefaultMessageCodec use the find() methods to locate the appropriate field codec.
More...
|
template<class Codec > |
static boost::enable_if< boost::mpl::and_< boost::is_base_of< google::protobuf::Message, typename Codec::wire_type >, boost::mpl::not_< boost::is_same< google::protobuf::Message, typename Codec::wire_type > > >, void >::type | add (const std::string &name, compiler::dummy_fcm< 0 > dummy_fcm=0) |
| Add a new field codec (used for codecs operating on statically generated Protobuf messages, that is, children of google::protobuf::Message but not google::protobuf::Message itself). More...
|
|
template<class Codec > |
static boost::disable_if< boost::mpl::and_< boost::is_base_of< google::protobuf::Message, typename Codec::wire_type >, boost::mpl::not_< boost::is_same< google::protobuf::Message, typename Codec::wire_type > > >, void >::type | add (const std::string &name, compiler::dummy_fcm< 1 > dummy_fcm=0) |
| Add a new field codec (used for codecs operating on all types except statically generated Protobuf messages). More...
|
|
template<class Codec , google::protobuf::FieldDescriptor::Type type> |
static void | add (const std::string &name) |
| Add a new field codec only valid for a specific google::protobuf::FieldDescriptor::Type. This is useful if a given codec is designed to work with only a specific Protobuf type that shares an underlying C++ type (e.g. Protobuf types bytes and string ) More...
|
|
template<class Codec > |
static boost::enable_if< boost::mpl::and_< boost::is_base_of< google::protobuf::Message, typename Codec::wire_type >, boost::mpl::not_< boost::is_same< google::protobuf::Message, typename Codec::wire_type > > >, void >::type | remove (const std::string &name, compiler::dummy_fcm< 0 > dummy_fcm=0) |
| Remove a new field codec (used for codecs operating on statically generated Protobuf messages, that is, children of google::protobuf::Message but not google::protobuf::Message itself). More...
|
|
template<class Codec > |
static boost::disable_if< boost::mpl::and_< boost::is_base_of< google::protobuf::Message, typename Codec::wire_type >, boost::mpl::not_< boost::is_same< google::protobuf::Message, typename Codec::wire_type > > >, void >::type | remove (const std::string &name, compiler::dummy_fcm< 1 > dummy_fcm=0) |
| Remove a new field codec (used for codecs operating on all types except statically generated Protobuf messages). More...
|
|
template<class Codec , google::protobuf::FieldDescriptor::Type type> |
static void | remove (const std::string &name) |
| Remove a new field codec only valid for a specific google::protobuf::FieldDescriptor::Type. This is useful if a given codec is designed to work with only a specific Protobuf type that shares an underlying C++ type (e.g. Protobuf types bytes and string ) More...
|
|
static boost::shared_ptr< FieldCodecBase > | find (const google::protobuf::FieldDescriptor *field, bool has_codec_group, const std::string &codec_group) |
| Find the codec for a given field. For embedded messages, prefers (dccl.field).codec (inside field) over (dccl.msg).codec (inside embedded message).
|
|
static boost::shared_ptr< FieldCodecBase > | find (const google::protobuf::Descriptor *desc, std::string name="") |
| Find the codec for a given base (or embedded) message. More...
|
|
static boost::shared_ptr< FieldCodecBase > | find (google::protobuf::FieldDescriptor::Type type, std::string name) |
|
static void | clear () |
|
A class for managing the various field codecs. Here you can add and remove field codecs. The DCCL Codec and DefaultMessageCodec use the find() methods to locate the appropriate field codec.
Definition at line 44 of file field_codec_manager.h.