Creating typekit results in compile error

Hi,

I'm trying to create a typekit for the KDL kinematics classes, I'm using the
documentation provided on
http://www.orocos.org/stable/documentation/rtt/v2.x/doc-xml/orocos-typekit-
plugin.html

I created the JointTypeInfo as follows:

template<class Archive>
  void serialize( Archive & a, KDL::Joint & joint, unsigned int) {
    using boost::serialization::make_nvp;
    a & make_nvp("type", joint.getTypeName());
    a & make_nvp("axis", joint.JointAxis());
    a & make_nvp("origin", joint.JointOrigin());
  }
 
  // The RTT helper class which uses the above function behind the scenes:                           
  struct JointTypeInfo
    : public RTT::types::StructTypeInfo<KDL::Joint>
  {
    JointTypeInfo()
      : RTT::types::StructTypeInfo<KDL::Joint>("Joint")
    {}
  };

But the compiler is complaining about:

In file included from /usr/include/boost/serialization/split_member.hpp:24,
from /usr/include/boost/serialization/nvp.hpp:34,
from /usr/include/boost/serialization/serialization.hpp:18,
from /home/rsmits/ros/kul-ros-
pkg/stacks/orocos_toolchain_ros/rtt/install/include/rtt/types/type_discovery.hpp:67,
from /home/rsmits/ros/kul-ros-
pkg/stacks/orocos_toolchain_ros/rtt/install/include/rtt/types/StructTypeInfo.hpp:44,
from /home/rsmits/ros/kul-ros-
pkg/stacks/orocos_kinematics_dynamics/kinfam_typekit/src/kinfam_plugin.hpp:3,
from /home/rsmits/ros/kul-ros-
pkg/stacks/orocos_kinematics_dynamics/kinfam_typekit/src/kinfam_plugin.cpp:3:
/usr/include/boost/serialization/access.hpp: In static member function ‘static
void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with
Archive = RTT::types::type_discovery, T = KDL::Joint]’:
/usr/include/boost/serialization/serialization.hpp:74: instantiated from
‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with
Archive = RTT::types::type_discovery, T = KDL::Joint]’
/usr/include/boost/serialization/serialization.hpp:133: instantiated from
‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with
Archive = RTT::types::type_discovery, T = KDL::Joint]’
/usr/include/boost/archive/detail/iserializer.hpp:342: instantiated from
‘static void boost::archive::detail::load_non_pointer_type<Archive,
T>::load_only::invoke(Archive&, T&) [with Archive =
RTT::types::type_discovery, T = KDL::Joint]’
/home/rsmits/ros/kul-ros-
pkg/stacks/orocos_toolchain_ros/rtt/install/include/rtt/types/type_discovery.hpp:151:
instantiated from ‘void RTT::types::type_discovery::discover(T&) [with T =
KDL::Joint]’
/home/rsmits/ros/kul-ros-
pkg/stacks/orocos_toolchain_ros/rtt/install/include/rtt/types/StructTypeInfo.hpp:72:
instantiated from ‘std::vector<std::basic_string std::allocator<char> >, std::allocator<std::basic_string std::char_traits RTT::types::StructTypeInfo<T, has_ostream>::getMemberNames() const [with T =
KDL::Joint, bool has_ostream = false]’
/home/rsmits/ros/kul-ros-
pkg/stacks/orocos_kinematics_dynamics/kinfam_typekit/src/kinfam_plugin.cpp:19:
instantiated from here
/usr/include/boost/serialization/access.hpp:109: error: ‘class KDL::Joint’ has
no member named ‘serialize’

Did I do something wrong, am I missing something?

Ruben