libzeep

PrevUpHomeNext

Struct template deserializer

zeep::json::deserializer

Synopsis

// In header: <zeep/json/serializer.hpp>

template<typename E> 
struct deserializer {
  // types
  typedef E element_type;

  // member classes/structs/unions
  template<typename T, typename  = void> 
  struct deserializer_impl {
  };
  template<typename T> 
  struct deserializer_impl<T, std::enable_if_t< detail::is_compatible_type_v< T > and not is_serializable_array_type_v< T, deserializer > and not detail::is_serializable_map_type_v< T, deserializer > >> {

    // public static functions
    static void deserialize(T &, const element_type &);
  };
  template<typename T> 
  struct deserializer_impl<T, std::enable_if_t< detail::is_serializable_map_type_v< T, deserializer > >> {

    // public static functions
    static void deserialize(T &, const element_type &);
  };
  template<typename T> 
  struct deserializer_impl<T, std::enable_if_t< detail::is_serializable_optional_type_v< T, deserializer > >> {

    // public static functions
    static void deserialize(T &, element_type &);
  };
  template<typename T> 
  struct deserializer_impl<T, std::enable_if_t< has_serialize_v< T, deserializer > >> {

    // public static functions
    static void deserialize(T &, const element_type &);
  };
  template<typename T> 
  struct deserializer_impl<T, std::enable_if_t< is_serializable_array_type_v< T, deserializer > >> {

    // public static functions
    static void deserialize(T &, const element_type &);
  };
  template<typename T> 
  struct deserializer_impl<T, std::enable_if_t< not detail::is_compatible_type_v< T > and is_type_with_value_serializer_v< T > >> {
    // types
    typedef zeep::value_serializer< T > value_serializer;

    // public static functions
    static void deserialize(T &, const element_type &);
  };

  // construct/copy/destruct
  deserializer(const element_type &);

  // public member functions
  template<typename T> deserializer & operator&(name_value_pair< T >);
  template<typename T> void deserialize(const char *, T &);

  // public static functions
  template<typename T> static void deserialize(const E &, T &);

  // public data members
  const element_type & m_elem;
};

Description

deserializer public construct/copy/destruct

  1. deserializer(const element_type & elem);

deserializer public member functions

  1. template<typename T> deserializer & operator&(name_value_pair< T > nvp);
  2. template<typename T> void deserialize(const char * name, T & data);

deserializer public static functions

  1. template<typename T> static void deserialize(const E & e, T & v);

PrevUpHomeNext