<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>chain_node.cpp</name>
    <path>/tmp/ws/src/ros_canopen/canopen_chain_node/src/</path>
    <filename>chain__node_8cpp</filename>
    <includes id="ros__chain_8h" name="ros_chain.h" local="no" imported="no">canopen_chain_node/ros_chain.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>chain__node_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ros_chain.cpp</name>
    <path>/tmp/ws/src/ros_canopen/canopen_chain_node/src/</path>
    <filename>ros__chain_8cpp</filename>
    <includes id="ros__chain_8h" name="ros_chain.h" local="no" imported="no">canopen_chain_node/ros_chain.h</includes>
    <namespace>canopen</namespace>
    <member kind="function">
      <type>bool</type>
      <name>addLoggerEntries</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a9cbd0e2f6670d99412e13559c0260d1a</anchor>
      <arglist>(XmlRpc::XmlRpcValue merged, const std::string param, uint8_t level, Logger &amp;logger)</arglist>
    </member>
    <member kind="function">
      <type>std::pair&lt; std::string, bool &gt;</type>
      <name>parseObjectName</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ae485924544f45c4f34178a19e06b70a4</anchor>
      <arglist>(std::string obj_name)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ros_chain.h</name>
    <path>/tmp/ws/src/ros_canopen/canopen_chain_node/include/canopen_chain_node/</path>
    <filename>ros__chain_8h</filename>
    <class kind="class">canopen::ClassAllocator</class>
    <class kind="class">canopen::GuardedClassLoader</class>
    <class kind="class">canopen::GuardedClassLoaderList</class>
    <class kind="struct">canopen::RosChain::HeartbeatSender</class>
    <class kind="class">canopen::Logger</class>
    <class kind="class">canopen::MergedXmlRpcStruct</class>
    <class kind="class">canopen::PublishFunc</class>
    <class kind="class">canopen::RosChain</class>
    <namespace>canopen</namespace>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; Logger &gt;</type>
      <name>LoggerSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a478375ea718688d92ac84b18d18a1e2b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sync_node.cpp</name>
    <path>/tmp/ws/src/ros_canopen/canopen_chain_node/src/</path>
    <filename>sync__node_8cpp</filename>
    <member kind="function">
      <type>std::string</type>
      <name>join</name>
      <anchorfile>sync__node_8cpp.html</anchorfile>
      <anchor>ae5db507f7d9d4394cf54e1df371651b7</anchor>
      <arglist>(const T &amp;container, const std::string &amp;delim)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>sync__node_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>report_diagnostics</name>
      <anchorfile>sync__node_8cpp.html</anchorfile>
      <anchor>a04fe385e38bcf077e9c0eb06a755dc81</anchor>
      <arglist>(canopen::LayerStack &amp;sync, diagnostic_updater::DiagnosticStatusWrapper &amp;stat)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::ClassAllocator</name>
    <filename>classcanopen_1_1ClassAllocator.html</filename>
    <templarg>T</templarg>
    <base>GuardedClassLoader&lt; T::Allocator &gt;</base>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; T &gt;</type>
      <name>ClassSharedPtr</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>ae66c0efe2f38847aa0ac1110e12ee6cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>allocateInstance</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>af1b11e4df7f5a33b74b49a048fc45a2d</anchor>
      <arglist>(const std::string &amp;lookup_name, const T1 &amp;t1)</arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>allocateInstance</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>ac02c1270336c54baa389395511e71c27</anchor>
      <arglist>(const std::string &amp;lookup_name, const T1 &amp;t1, const T2 &amp;t2)</arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>allocateInstance</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>a4fa1c780a90e22428225422ab11eaebc</anchor>
      <arglist>(const std::string &amp;lookup_name, const T1 &amp;t1, const T2 &amp;t2, const T3 &amp;t3)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ClassAllocator</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>afa19af7bcfc7fb90967c7601f39433d1</anchor>
      <arglist>(const std::string &amp;package, const std::string &amp;allocator_base_class)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ClassAllocator&lt; canopen::canopen::Master &gt;</name>
    <filename>classcanopen_1_1ClassAllocator.html</filename>
    <base>GuardedClassLoader&lt; canopen::canopen::Master::Allocator &gt;</base>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; canopen::canopen::Master &gt;</type>
      <name>ClassSharedPtr</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>ae66c0efe2f38847aa0ac1110e12ee6cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>allocateInstance</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>af1b11e4df7f5a33b74b49a048fc45a2d</anchor>
      <arglist>(const std::string &amp;lookup_name, const T1 &amp;t1)</arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>allocateInstance</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>ac02c1270336c54baa389395511e71c27</anchor>
      <arglist>(const std::string &amp;lookup_name, const T1 &amp;t1, const T2 &amp;t2)</arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>allocateInstance</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>a4fa1c780a90e22428225422ab11eaebc</anchor>
      <arglist>(const std::string &amp;lookup_name, const T1 &amp;t1, const T2 &amp;t2, const T3 &amp;t3)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ClassAllocator</name>
      <anchorfile>classcanopen_1_1ClassAllocator.html</anchorfile>
      <anchor>afa19af7bcfc7fb90967c7601f39433d1</anchor>
      <arglist>(const std::string &amp;package, const std::string &amp;allocator_base_class)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::GuardedClassLoader</name>
    <filename>classcanopen_1_1GuardedClassLoader.html</filename>
    <templarg>T</templarg>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; T &gt;</type>
      <name>ClassSharedPtr</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a9684b561943242fe6f3ae1c287f1cf07</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>createInstance</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a75df3f02c83100f23578718f6f716dfc</anchor>
      <arglist>(const std::string &amp;lookup_name)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GuardedClassLoader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a8951b1dd08f07ba8220c251561d0adce</anchor>
      <arglist>(const std::string &amp;package, const std::string &amp;allocator_base_class)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>pluginlib::ClassLoader&lt; T &gt;</type>
      <name>Loader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a6fefc48688845d0ebbd02c3f8ce954c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::shared_ptr&lt; Loader &gt;</type>
      <name>loader_</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a4df99918dec53c799502d2c1a9d024f2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GuardedClassLoader&lt; can::DriverInterface &gt;</name>
    <filename>classcanopen_1_1GuardedClassLoader.html</filename>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; can::DriverInterface &gt;</type>
      <name>ClassSharedPtr</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a9684b561943242fe6f3ae1c287f1cf07</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>createInstance</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a75df3f02c83100f23578718f6f716dfc</anchor>
      <arglist>(const std::string &amp;lookup_name)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GuardedClassLoader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a8951b1dd08f07ba8220c251561d0adce</anchor>
      <arglist>(const std::string &amp;package, const std::string &amp;allocator_base_class)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>pluginlib::ClassLoader&lt; can::DriverInterface &gt;</type>
      <name>Loader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a6fefc48688845d0ebbd02c3f8ce954c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::shared_ptr&lt; Loader &gt;</type>
      <name>loader_</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a4df99918dec53c799502d2c1a9d024f2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GuardedClassLoader&lt; canopen::canopen::Master::Allocator &gt;</name>
    <filename>classcanopen_1_1GuardedClassLoader.html</filename>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; canopen::canopen::Master::Allocator &gt;</type>
      <name>ClassSharedPtr</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a9684b561943242fe6f3ae1c287f1cf07</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>createInstance</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a75df3f02c83100f23578718f6f716dfc</anchor>
      <arglist>(const std::string &amp;lookup_name)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GuardedClassLoader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a8951b1dd08f07ba8220c251561d0adce</anchor>
      <arglist>(const std::string &amp;package, const std::string &amp;allocator_base_class)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>pluginlib::ClassLoader&lt; canopen::canopen::Master::Allocator &gt;</type>
      <name>Loader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a6fefc48688845d0ebbd02c3f8ce954c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::shared_ptr&lt; Loader &gt;</type>
      <name>loader_</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a4df99918dec53c799502d2c1a9d024f2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GuardedClassLoader&lt; T::Allocator &gt;</name>
    <filename>classcanopen_1_1GuardedClassLoader.html</filename>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; T &gt;</type>
      <name>ClassSharedPtr</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a9684b561943242fe6f3ae1c287f1cf07</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ClassSharedPtr</type>
      <name>createInstance</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a75df3f02c83100f23578718f6f716dfc</anchor>
      <arglist>(const std::string &amp;lookup_name)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GuardedClassLoader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a8951b1dd08f07ba8220c251561d0adce</anchor>
      <arglist>(const std::string &amp;package, const std::string &amp;allocator_base_class)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>pluginlib::ClassLoader&lt; T &gt;</type>
      <name>Loader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a6fefc48688845d0ebbd02c3f8ce954c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::shared_ptr&lt; Loader &gt;</type>
      <name>loader_</name>
      <anchorfile>classcanopen_1_1GuardedClassLoader.html</anchorfile>
      <anchor>a4df99918dec53c799502d2c1a9d024f2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::GuardedClassLoaderList</name>
    <filename>classcanopen_1_1GuardedClassLoaderList.html</filename>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; pluginlib::ClassLoaderBase &gt;</type>
      <name>ClassLoaderBaseSharedPtr</name>
      <anchorfile>classcanopen_1_1GuardedClassLoaderList.html</anchorfile>
      <anchor>a54ed7eed3f0efd432876c5e9475ccfbd</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~GuardedClassLoaderList</name>
      <anchorfile>classcanopen_1_1GuardedClassLoaderList.html</anchorfile>
      <anchor>a8253af601b68183441585578997c3e47</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>addLoader</name>
      <anchorfile>classcanopen_1_1GuardedClassLoaderList.html</anchorfile>
      <anchor>a5218d838e309166b4e139fb879ac1ef2</anchor>
      <arglist>(ClassLoaderBaseSharedPtr b)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static std::vector&lt; ClassLoaderBaseSharedPtr &gt; &amp;</type>
      <name>guarded_loaders</name>
      <anchorfile>classcanopen_1_1GuardedClassLoaderList.html</anchorfile>
      <anchor>af12a66d84608a320d65987cdc62fe7cc</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>canopen::RosChain::HeartbeatSender</name>
    <filename>structcanopen_1_1RosChain_1_1HeartbeatSender.html</filename>
    <member kind="function">
      <type>bool</type>
      <name>send</name>
      <anchorfile>structcanopen_1_1RosChain_1_1HeartbeatSender.html</anchorfile>
      <anchor>a7958c455f2b631de43a569d9a79e617b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>can::Frame</type>
      <name>frame</name>
      <anchorfile>structcanopen_1_1RosChain_1_1HeartbeatSender.html</anchorfile>
      <anchor>a232cd742d34f617fc6687cd88ed59fe2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>can::DriverInterfaceSharedPtr</type>
      <name>interface</name>
      <anchorfile>structcanopen_1_1RosChain_1_1HeartbeatSender.html</anchorfile>
      <anchor>a6d36847d5edee23a693ac5edbc8e5105</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::Logger</name>
    <filename>classcanopen_1_1Logger.html</filename>
    <base>DiagGroup&lt; canopen::Layer &gt;</base>
    <member kind="function">
      <type>bool</type>
      <name>add</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a29ec57676b93615337e4082b319fcd59</anchor>
      <arglist>(uint8_t level, const std::string &amp;key, bool forced)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>add</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a98c3cfe169ae6b13df63213b5e27476c</anchor>
      <arglist>(const boost::shared_ptr&lt; T &gt; &amp;n)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>log</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a6f33090b4e94e8fd9451d9c59a53de77</anchor>
      <arglist>(diagnostic_updater::DiagnosticStatusWrapper &amp;stat)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Logger</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a3afb2a5e5ffb9f3aed720ee4e0e40288</anchor>
      <arglist>(canopen::NodeSharedPtr node)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~Logger</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a6abd33a3124717d38f441e6f639e9e79</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static void</type>
      <name>log_entry</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>abdc9c76f06aba9076eb96d261957f5fd</anchor>
      <arglist>(diagnostic_updater::DiagnosticStatusWrapper &amp;stat, uint8_t level, const std::string &amp;name, boost::function&lt; std::string()&gt; getter)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; boost::function&lt; void(diagnostic_updater::DiagnosticStatusWrapper &amp;)&gt; &gt;</type>
      <name>entries_</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a1f1d3574a9d709b736abca487aad446d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const canopen::NodeSharedPtr</type>
      <name>node_</name>
      <anchorfile>classcanopen_1_1Logger.html</anchorfile>
      <anchor>a743eaf2cd71ed8eafc73fa10d269810b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::MergedXmlRpcStruct</name>
    <filename>classcanopen_1_1MergedXmlRpcStruct.html</filename>
    <base>XmlRpc::XmlRpcValue</base>
    <member kind="function">
      <type></type>
      <name>MergedXmlRpcStruct</name>
      <anchorfile>classcanopen_1_1MergedXmlRpcStruct.html</anchorfile>
      <anchor>a78c03e08a1740b8c789dfe338dd0b912</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MergedXmlRpcStruct</name>
      <anchorfile>classcanopen_1_1MergedXmlRpcStruct.html</anchorfile>
      <anchor>aceff18f287a204e479786c3d48514aed</anchor>
      <arglist>(const XmlRpc::XmlRpcValue &amp;a, const MergedXmlRpcStruct &amp;b, bool recursive=true)</arglist>
    </member>
    <member kind="function" protection="private">
      <type></type>
      <name>MergedXmlRpcStruct</name>
      <anchorfile>classcanopen_1_1MergedXmlRpcStruct.html</anchorfile>
      <anchor>ae18365a00d042ca35fa7e80b2f221b73</anchor>
      <arglist>(const XmlRpc::XmlRpcValue &amp;a)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::PublishFunc</name>
    <filename>classcanopen_1_1PublishFunc.html</filename>
    <member kind="typedef">
      <type>boost::function&lt; void()&gt;</type>
      <name>FuncType</name>
      <anchorfile>classcanopen_1_1PublishFunc.html</anchorfile>
      <anchor>afb2e8b3342300aa642ebed25d0f2bcc9</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::function&lt; void()&gt; func_type</type>
      <name>ROS_DEPRECATED</name>
      <anchorfile>classcanopen_1_1PublishFunc.html</anchorfile>
      <anchor>ad2d587961d9cb14351fd2b857a851856</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static FuncType</type>
      <name>create</name>
      <anchorfile>classcanopen_1_1PublishFunc.html</anchorfile>
      <anchor>aae7f77a4e79b2ba7b9cd6a0cc3b45a1e</anchor>
      <arglist>(ros::NodeHandle &amp;nh, const std::string &amp;name, canopen::NodeSharedPtr node, const std::string &amp;key, bool force)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static FuncType</type>
      <name>create</name>
      <anchorfile>classcanopen_1_1PublishFunc.html</anchorfile>
      <anchor>a55218f03dd9c6f62783bf953fddefeb4</anchor>
      <arglist>(ros::NodeHandle &amp;nh, const std::string &amp;name, ObjectStorage::Entry&lt; Tobj &gt; entry, bool force)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static void</type>
      <name>publish</name>
      <anchorfile>classcanopen_1_1PublishFunc.html</anchorfile>
      <anchor>a8eab3bb3de1062dae6bd6829339bae5d</anchor>
      <arglist>(ros::Publisher &amp;pub, ObjectStorage::Entry&lt; Tobj &gt; &amp;entry)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>canopen::RosChain</name>
    <filename>classcanopen_1_1RosChain.html</filename>
    <base protection="private">canopen::GuardedClassLoaderList</base>
    <base>canopen::LayerStack</base>
    <class kind="struct">canopen::RosChain::HeartbeatSender</class>
    <member kind="function">
      <type></type>
      <name>RosChain</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a7a915f5c795f8a4e8661767cff044b7e</anchor>
      <arglist>(const ros::NodeHandle &amp;nh, const ros::NodeHandle &amp;nh_priv)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>setup</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>acd670c955f0cb9fe2d7bccdd5c819504</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~RosChain</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a860f2e73e9b571a9d48e874036750fc0</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>handle_get_object</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ad3568bf4af63a65719efc7d11b7b39ff</anchor>
      <arglist>(canopen_chain_node::GetObject::Request &amp;req, canopen_chain_node::GetObject::Response &amp;res)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual bool</type>
      <name>handle_halt</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>aa1241a0f4560673e877c6e27eb7c41cf</anchor>
      <arglist>(std_srvs::Trigger::Request &amp;req, std_srvs::Trigger::Response &amp;res)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual bool</type>
      <name>handle_init</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>aa6617333aecdbcedb9af33c21f6f45a4</anchor>
      <arglist>(std_srvs::Trigger::Request &amp;req, std_srvs::Trigger::Response &amp;res)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual bool</type>
      <name>handle_recover</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a477a89bab8cab3028030317ce60785c7</anchor>
      <arglist>(std_srvs::Trigger::Request &amp;req, std_srvs::Trigger::Response &amp;res)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>handle_set_object</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a4924ba64c7fc903a0f9122d62615713f</anchor>
      <arglist>(canopen_chain_node::SetObject::Request &amp;req, canopen_chain_node::SetObject::Response &amp;res)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual bool</type>
      <name>handle_shutdown</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a8cbef309aa3ed2488b81d5944b8f0433</anchor>
      <arglist>(std_srvs::Trigger::Request &amp;req, std_srvs::Trigger::Response &amp;res)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>handleShutdown</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>aafcb32e770831535ca2c39e543cd9d68</anchor>
      <arglist>(LayerStatus &amp;status)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>handleWrite</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ae3cce1cbabb12ee86f690219eee109b1</anchor>
      <arglist>(LayerStatus &amp;status, const LayerState &amp;current_state)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>logState</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>af17c85a7e59ed35e941f9794d6e2c39f</anchor>
      <arglist>(const can::State &amp;s)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual bool</type>
      <name>nodeAdded</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a6454a3860170e64d1e73e9f62c943235</anchor>
      <arglist>(XmlRpc::XmlRpcValue &amp;params, const canopen::NodeSharedPtr &amp;node, const LoggerSharedPtr &amp;logger)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>report_diagnostics</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a53a069c5e856fbf5cd07d1914af8781b</anchor>
      <arglist>(diagnostic_updater::DiagnosticStatusWrapper &amp;stat)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>run</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a2ffaa0c7c391ebc5512b14421eb05327</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>setup_bus</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a7651dd29cb31d74250c67e12ebab2bf6</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual bool</type>
      <name>setup_chain</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a96a3d657a255bd48454631d56eba2438</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>setup_heartbeat</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a0e7128bb1b7d5500cc0b4df4718ff527</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>setup_nodes</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a3b9c6247a19f52d516dd3c91f2fba431</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>setup_sync</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a3eed60b106153054e331a78a7824b4bc</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::mutex</type>
      <name>diag_mutex_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ad9daadef8a5fe4e5e63871c4e7381271</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Timer</type>
      <name>diag_timer_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a5dee40a0ef977771ada9eff7230a5fc5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>diagnostic_updater::Updater</type>
      <name>diag_updater_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>aacbc1a4cf997f9a5428a83f648fdc9fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; canopen::LayerGroupNoDiag&lt; canopen::EMCYHandler &gt; &gt;</type>
      <name>emcy_handlers_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a9ecb74395e24929c39df31242eb6be06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>struct canopen::RosChain::HeartbeatSender</type>
      <name>hb_sender_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>afe268e0e0d2196b2744a2eba3add5226</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>Timer</type>
      <name>heartbeat_timer_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a904681324340d62196029043d743b236</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>can::DriverInterfaceSharedPtr</type>
      <name>interface_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a4c13fd5b0ead6bf3bf869419e9238813</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; LoggerSharedPtr &gt;</type>
      <name>loggers_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>afe1da06330aae6899ec39237b3c9cfe9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>MasterSharedPtr</type>
      <name>master_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a876059cba7513b845fce4bf73f9a7920</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::mutex</type>
      <name>mutex_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a0432ac4863953fe51d34fb0bfced16d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a555267e777d42ca2d1f3ec58067418ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_priv_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a6d3c1d281f84e3ada43a39c2339f8db7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; canopen::LayerGroupNoDiag&lt; canopen::Node &gt; &gt;</type>
      <name>nodes_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a6a05a6d7a6ffb2221e1c4c5e3cedb951</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::map&lt; std::string, canopen::NodeSharedPtr &gt;</type>
      <name>nodes_lookup_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a111ec9a99f5434dcdc217dc1b836e3e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; PublishFunc::FuncType &gt;</type>
      <name>publishers_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>afbd15073f32a7090b88d9fce50257b23</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>reset_errors_before_recover_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>af482d16c97778fd4907750bf936674a6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::atomic&lt; bool &gt;</type>
      <name>running_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>adb0a57efea37ebf15416a135a19a209d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>srv_get_object_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ac881056a976a55313f848aa974e15d0d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>srv_halt_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a63a5bb143935d68b2d32e3a0ed37c813</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>srv_init_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a803a832f9c9a12840099281725d89afa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>srv_recover_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ab94b99a40bde765e273766a1374f4198</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>srv_set_object_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ae7ec8835f2db868d6e2aa828e3a35a59</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>srv_shutdown_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a045b09ce13597b32f7267dc85f71b149</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>can::StateListenerConstSharedPtr</type>
      <name>state_listener_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a517297504ec0c6b1e7d236539d603b4e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>canopen::SyncLayerSharedPtr</type>
      <name>sync_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>ab14e2848a792127dc0e910292a46e632</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::scoped_ptr&lt; boost::thread &gt;</type>
      <name>thread_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a996f6a257ffc758f753e2c345f6d3466</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>time_duration</type>
      <name>update_duration_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a27a84e80fc5a5871bcac45ae7430e2b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>GuardedClassLoader&lt; can::DriverInterface &gt;</type>
      <name>driver_loader_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a7412f0083a81093642db3a152982a7d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ClassAllocator&lt; canopen::Master &gt;</type>
      <name>master_allocator_</name>
      <anchorfile>classcanopen_1_1RosChain.html</anchorfile>
      <anchor>a5f35c8e5d0b182afca0210e2375acb84</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>canopen</name>
    <filename>namespacecanopen.html</filename>
    <class kind="class">canopen::ClassAllocator</class>
    <class kind="class">canopen::GuardedClassLoader</class>
    <class kind="class">canopen::GuardedClassLoaderList</class>
    <class kind="class">canopen::Logger</class>
    <class kind="class">canopen::MergedXmlRpcStruct</class>
    <class kind="class">canopen::PublishFunc</class>
    <class kind="class">canopen::RosChain</class>
    <member kind="typedef">
      <type>WrapMaster&lt; ExternalSyncLayer &gt;</type>
      <name>ExternalMaster</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ae8f9463ad90ca7618a8d706721976e08</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; Logger &gt;</type>
      <name>LoggerSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a478375ea718688d92ac84b18d18a1e2b</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>Master::MasterSharedPtr</type>
      <name>MasterSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a7f2430da5c7b38f43edb7ac2a6968773</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; Node &gt;</type>
      <name>NodeSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>af08a3ac2c84b470e2205b27f8827161d</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; const ObjectDict &gt;</type>
      <name>ObjectDictConstSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a3d1b3b2ea2396d2f29b5c2847c037698</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>ObjectDict::ObjectDictSharedPtr</type>
      <name>ObjectDictSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ab853eea67abb0096a4d4015d8a5ca383</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>ObjectStorage::ObjectStorageSharedPtr</type>
      <name>ObjectStorageSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ab4e75c46aa0fefd848c950721016ee9b</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>WrapMaster&lt; SimpleSyncLayer &gt;</type>
      <name>SimpleMaster</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>af33bf2cf8a7f83b53716d76568385425</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; SyncCounter &gt;</type>
      <name>SyncCounterSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a4df4787f6d79fc69271ecc57d0af95c0</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; SyncLayer &gt;</type>
      <name>SyncLayerSharedPtr</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>aecea33ed8ecf4b3d9aa9067d1c92fea8</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::chrono::high_resolution_clock::duration</type>
      <name>time_duration</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a6ba2d15f009c4011a408a39663ea5264</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::chrono::high_resolution_clock::time_point</type>
      <name>time_point</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a871e89c0295e2ee21285ce7d2839a960</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>addLoggerEntries</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a9cbd0e2f6670d99412e13559c0260d1a</anchor>
      <arglist>(XmlRpc::XmlRpcValue merged, const std::string param, uint8_t level, Logger &amp;logger)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static R *</type>
      <name>branch_type</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a473bf28a8bbea2fadf5e3fa0d626c735</anchor>
      <arglist>(const uint16_t data_type)</arglist>
    </member>
    <member kind="function">
      <type>time_point</type>
      <name>get_abs_time</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ab84c59bc8a7f0ecb24c96b6d085fff98</anchor>
      <arglist>(const time_duration &amp;timeout)</arglist>
    </member>
    <member kind="function">
      <type>time_point</type>
      <name>get_abs_time</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a3e92c863290655b130984e6d9c780049</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::size_t</type>
      <name>hash_value</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ae4fee86136588479cccba0e1f0cb0aee</anchor>
      <arglist>(ObjectDict::Key const &amp;k)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>join</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>abb5414c13fde3e81d51f3d2cd51e9df6</anchor>
      <arglist>(const T &amp;container, const std::string &amp;delim)</arglist>
    </member>
    <member kind="function">
      <type>std::ostream &amp;</type>
      <name>operator&lt;&lt;</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a44ff1a4629298158ca8df4e6e516981b</anchor>
      <arglist>(std::ostream &amp;stream, const NodeIdOffset&lt; T &gt; &amp;n)</arglist>
    </member>
    <member kind="function">
      <type>std::ostream &amp;</type>
      <name>operator&lt;&lt;</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>a538b00f30d530ac25ad0fa8ca6bfe772</anchor>
      <arglist>(std::ostream &amp;stream, const ObjectDict::Key &amp;k)</arglist>
    </member>
    <member kind="function">
      <type>std::pair&lt; std::string, bool &gt;</type>
      <name>parseObjectName</name>
      <anchorfile>namespacecanopen.html</anchorfile>
      <anchor>ae485924544f45c4f34178a19e06b70a4</anchor>
      <arglist>(std::string obj_name)</arglist>
    </member>
  </compound>
</tagfile>
