<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>atomicops.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/queue/</path>
    <filename>atomicops_8h.html</filename>
    <class kind="class">moodycamel::spsc_sema::LightweightSemaphore</class>
    <class kind="class">moodycamel::weak_atomic</class>
    <namespace>moodycamel</namespace>
    <namespace>moodycamel::spsc_sema</namespace>
    <member kind="define">
      <type>#define</type>
      <name>AE_ALIGN</name>
      <anchorfile>atomicops_8h.html</anchorfile>
      <anchor>af63e6ce30c0d2f9e38cf5f06602f6be3</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>AE_ARCH_UNKNOWN</name>
      <anchorfile>atomicops_8h.html</anchorfile>
      <anchor>a00f9fbc55b384eb68ffd6dd74f92f0d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>AE_FORCEINLINE</name>
      <anchorfile>atomicops_8h.html</anchorfile>
      <anchor>ac24f99758da6ec5dab70259e807a64f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>AE_NO_TSAN</name>
      <anchorfile>atomicops_8h.html</anchorfile>
      <anchor>ad8a039b7e87d99b4f0d0f65fad2980c4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>AE_UNUSED</name>
      <anchorfile>atomicops_8h.html</anchorfile>
      <anchor>a2bad82b95eaedfff9d6a8d0deba1a076</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC</name>
      <anchorfile>atomicops_8h.html</anchorfile>
      <anchor>a71f281d51426c6f3db2bd8e981e63cc0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>memory_order</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_relaxed</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4abe717d02114c81e1c1ac90630f2d6c2e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_acquire</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4a9055bf7845dcb2a49462d5b927d00efd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_release</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4aea1d8de8e7fe1ddedfaa152028c2c14f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_acq_rel</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4a311904bec8be06ae1f3ede1d1149699e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_seq_cst</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4a5c944411244df89c625f11baeac23c98</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_sync</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4ae6ec223561035d97d356504029ac188c</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE void</type>
      <name>compiler_fence</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a555837a041dea3c552891ff81139b397</anchor>
      <arglist>(memory_order order) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE void</type>
      <name>fence</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>aa870de5edd62c5323b8ff5d411b41ecb</anchor>
      <arglist>(memory_order order) AE_NO_TSAN</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>curl_resource.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/http_helpers/</path>
    <filename>curl__resource_8cpp.html</filename>
    <includes id="curl__resource_8h" name="curl_resource.h" local="yes" imported="no">pf_driver/pf/http_helpers/curl_resource.h</includes>
  </compound>
  <compound kind="file">
    <name>curl_resource.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/http_helpers/</path>
    <filename>curl__resource_8h.html</filename>
    <includes id="param__map__type_8h" name="param_map_type.h" local="yes" imported="no">pf_driver/pf/http_helpers/param_map_type.h</includes>
    <includes id="param__type_8h" name="param_type.h" local="yes" imported="no">pf_driver/pf/http_helpers/param_type.h</includes>
    <class kind="class">CurlResource</class>
  </compound>
  <compound kind="file">
    <name>handle_info.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>handle__info_8h.html</filename>
    <class kind="struct">HandleInfo</class>
  </compound>
  <compound kind="file">
    <name>http_helpers.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/http_helpers/</path>
    <filename>http__helpers_8cpp.html</filename>
    <includes id="http__helpers_8h" name="http_helpers.h" local="yes" imported="no">pf_driver/pf/http_helpers/http_helpers.h</includes>
  </compound>
  <compound kind="file">
    <name>http_helpers.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/http_helpers/</path>
    <filename>http__helpers_8h.html</filename>
    <namespace>http_helpers</namespace>
    <member kind="function">
      <type>std::string</type>
      <name>from_array</name>
      <anchorfile>namespacehttp__helpers.html</anchorfile>
      <anchor>aaae1d57db1df3a96ead5e8f104a48f02</anchor>
      <arglist>(const Json::Value &amp;val)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>http_interface.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/http_helpers/</path>
    <filename>http__interface_8cpp.html</filename>
    <includes id="http__interface_8h" name="http_interface.h" local="yes" imported="no">pf_driver/pf/http_helpers/http_interface.h</includes>
    <includes id="curl__resource_8h" name="curl_resource.h" local="yes" imported="no">pf_driver/pf/http_helpers/curl_resource.h</includes>
    <includes id="http__helpers_8h" name="http_helpers.h" local="yes" imported="no">pf_driver/pf/http_helpers/http_helpers.h</includes>
  </compound>
  <compound kind="file">
    <name>http_interface.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/http_helpers/</path>
    <filename>http__interface_8h.html</filename>
    <includes id="param__type_8h" name="param_type.h" local="yes" imported="no">pf_driver/pf/http_helpers/param_type.h</includes>
    <includes id="param__map__type_8h" name="param_map_type.h" local="yes" imported="no">pf_driver/pf/http_helpers/param_map_type.h</includes>
    <class kind="class">HTTPInterface</class>
  </compound>
  <compound kind="file">
    <name>http_request.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/tests/</path>
    <filename>http__request_8cpp.html</filename>
  </compound>
  <compound kind="file">
    <name>kv.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>kv_8h.html</filename>
    <class kind="class">KV</class>
  </compound>
  <compound kind="file">
    <name>laser_scan_publisher.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/ros/</path>
    <filename>laser__scan__publisher_8cpp.html</filename>
    <includes id="laser__scan__publisher_8h" name="laser_scan_publisher.h" local="yes" imported="no">pf_driver/ros/laser_scan_publisher.h</includes>
  </compound>
  <compound kind="file">
    <name>laser_scan_publisher.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/ros/</path>
    <filename>laser__scan__publisher_8h.html</filename>
    <includes id="pf__data__publisher_8h" name="pf_data_publisher.h" local="yes" imported="no">pf_driver/ros/pf_data_publisher.h</includes>
    <class kind="class">LaserscanPublisher</class>
  </compound>
  <compound kind="file">
    <name>main.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/tests/</path>
    <filename>main_8cpp.html</filename>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>main_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>param_map_type.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/http_helpers/</path>
    <filename>param__map__type_8h.html</filename>
    <member kind="typedef">
      <type>std::map&lt; std::string, std::string &gt;</type>
      <name>param_map_type</name>
      <anchorfile>param__map__type_8h.html</anchorfile>
      <anchor>a648feca3f75fba792ec2d539075598e5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>param_type.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/http_helpers/</path>
    <filename>param__type_8h.html</filename>
    <member kind="typedef">
      <type>std::pair&lt; std::string, std::string &gt;</type>
      <name>param_type</name>
      <anchorfile>param__type_8h.html</anchorfile>
      <anchor>a47b6ffbb3f6b27102ace391defac0e70</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>parser.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>parser_8h.html</filename>
    <class kind="class">Parser</class>
  </compound>
  <compound kind="file">
    <name>parser_utils.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/</path>
    <filename>parser__utils_8cpp.html</filename>
    <includes id="parser__utils_8h" name="parser_utils.h" local="yes" imported="no">pf_driver/pf/parser_utils.h</includes>
  </compound>
  <compound kind="file">
    <name>parser_utils.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>parser__utils_8h.html</filename>
    <namespace>parser_utils</namespace>
    <member kind="function">
      <type>const std::vector&lt; std::string &gt;</type>
      <name>split</name>
      <anchorfile>namespaceparser__utils.html</anchorfile>
      <anchor>aeb538975d823b9e5f99bb936f47e4a41</anchor>
      <arglist>(const std::string &amp;str, const char delim=&apos;;&apos;)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>to_float</name>
      <anchorfile>namespaceparser__utils.html</anchorfile>
      <anchor>ae012a5aae5ba0562894769e37cbbce9a</anchor>
      <arglist>(const std::string &amp;s)</arglist>
    </member>
    <member kind="function">
      <type>std::int64_t</type>
      <name>to_long</name>
      <anchorfile>namespaceparser__utils.html</anchorfile>
      <anchor>a0a611fc265c7b9a2719779d999eb3137</anchor>
      <arglist>(const std::string &amp;s)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>pf_data_publisher.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/ros/</path>
    <filename>pf__data__publisher_8cpp.html</filename>
    <includes id="pf__data__publisher_8h" name="pf_data_publisher.h" local="yes" imported="no">pf_driver/ros/pf_data_publisher.h</includes>
    <includes id="pf__r2000__packet__a_8h" name="pf_r2000_packet_a.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_a.h</includes>
    <includes id="pf__r2000__packet__b_8h" name="pf_r2000_packet_b.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_b.h</includes>
    <includes id="pf__r2000__packet__c_8h" name="pf_r2000_packet_c.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_c.h</includes>
    <includes id="pf__r2300__packet__c1_8h" name="pf_r2300_packet_c1.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2300_packet_c1.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_data_publisher.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/ros/</path>
    <filename>pf__data__publisher_8h.html</filename>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
    <class kind="class">PFDataPublisher</class>
  </compound>
  <compound kind="file">
    <name>pf_interface.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/</path>
    <filename>pf__interface_8cpp.html</filename>
    <includes id="pf__interface_8h" name="pf_interface.h" local="yes" imported="no">pf_driver/pf/pf_interface.h</includes>
    <includes id="laser__scan__publisher_8h" name="laser_scan_publisher.h" local="yes" imported="no">pf_driver/ros/laser_scan_publisher.h</includes>
    <includes id="point__cloud__publisher_8h" name="point_cloud_publisher.h" local="yes" imported="no">pf_driver/ros/point_cloud_publisher.h</includes>
    <includes id="udp__transport_8h" name="udp_transport.h" local="yes" imported="no">pf_driver/communication/udp_transport.h</includes>
    <includes id="tcp__transport_8h" name="tcp_transport.h" local="yes" imported="no">pf_driver/communication/tcp_transport.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_interface.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>pf__interface_8h.html</filename>
    <includes id="pf__parser_8h" name="pf_parser.h" local="yes" imported="no">pf_driver/pf/pf_parser.h</includes>
    <includes id="pf__writer_8h" name="pf_writer.h" local="yes" imported="no">pf_driver/pf/pf_writer.h</includes>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
    <includes id="pipeline_8h" name="pipeline.h" local="yes" imported="no">pf_driver/pf/pipeline.h</includes>
    <includes id="transport_8h" name="transport.h" local="yes" imported="no">pf_driver/communication/transport.h</includes>
    <includes id="pfsdp__2000_8h" name="pfsdp_2000.h" local="yes" imported="no">pf_driver/pf/r2000/pfsdp_2000.h</includes>
    <includes id="pfsdp__2300_8h" name="pfsdp_2300.h" local="yes" imported="no">pf_driver/pf/r2300/pfsdp_2300.h</includes>
    <class kind="class">PFInterface</class>
  </compound>
  <compound kind="file">
    <name>pf_packet.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__packet_8cpp.html</filename>
    <includes id="pf__packet_8h" name="pf_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_packet.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_packet.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__packet_8h.html</filename>
    <class kind="class">PFPacket</class>
  </compound>
  <compound kind="file">
    <name>pf_packet_reader.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/</path>
    <filename>pf__packet__reader_8cpp.html</filename>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_packet_reader.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>pf__packet__reader_8h.html</filename>
    <includes id="reader_8h" name="reader.h" local="yes" imported="no">pf_driver/pf/reader.h</includes>
    <includes id="pf__packet_8h" name="pf_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_packet.h</includes>
    <class kind="class">PFPacketReader</class>
  </compound>
  <compound kind="file">
    <name>pf_parser.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>pf__parser_8h.html</filename>
    <includes id="parser_8h" name="parser.h" local="yes" imported="no">pf_driver/pf/parser.h</includes>
    <includes id="pf__r2000__packet__a_8h" name="pf_r2000_packet_a.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_a.h</includes>
    <includes id="pf__r2000__packet__b_8h" name="pf_r2000_packet_b.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_b.h</includes>
    <includes id="pf__r2000__packet__c_8h" name="pf_r2000_packet_c.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_c.h</includes>
    <includes id="pf__r2300__packet__c1_8h" name="pf_r2300_packet_c1.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2300_packet_c1.h</includes>
    <class kind="class">PFParser</class>
    <member kind="typedef">
      <type>PFParser&lt; PFR2000Packet_A &gt;</type>
      <name>PFR2000_A_Parser</name>
      <anchorfile>pf__parser_8h.html</anchorfile>
      <anchor>a10f8df14ff41e7d8970a542d21e71e8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>PFParser&lt; PFR2000Packet_B &gt;</type>
      <name>PFR2000_B_Parser</name>
      <anchorfile>pf__parser_8h.html</anchorfile>
      <anchor>adada58bdc40126a7e78ac42e59bc86d4</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>PFParser&lt; PFR2000Packet_C &gt;</type>
      <name>PFR2000_C_Parser</name>
      <anchorfile>pf__parser_8h.html</anchorfile>
      <anchor>aa751ef61946d2dbb4984d6b3548795e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>PFParser&lt; PFR2300Packet_C1 &gt;</type>
      <name>PFR2300_C1_Parser</name>
      <anchorfile>pf__parser_8h.html</anchorfile>
      <anchor>af9cbc4385b8da11c02e81e89f5e7d435</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__r2000__packet_8cpp.html</filename>
    <includes id="pf__r2000__packet_8h" name="pf_r2000_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__r2000__packet_8h.html</filename>
    <includes id="pf__packet_8h" name="pf_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_packet.h</includes>
    <class kind="class">PFR2000Packet</class>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet_a.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__r2000__packet__a_8cpp.html</filename>
    <includes id="pf__r2000__packet__a_8h" name="pf_r2000_packet_a.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_a.h</includes>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet_a.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__r2000__packet__a_8h.html</filename>
    <includes id="pf__r2000__packet_8h" name="pf_r2000_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet.h</includes>
    <class kind="struct">PFR2000Packet_A::Data</class>
    <class kind="class">PFR2000Packet_A</class>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet_b.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__r2000__packet__b_8cpp.html</filename>
    <includes id="pf__r2000__packet__b_8h" name="pf_r2000_packet_b.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_b.h</includes>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet_b.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__r2000__packet__b_8h.html</filename>
    <includes id="pf__r2000__packet_8h" name="pf_r2000_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet.h</includes>
    <class kind="struct">PFR2000Packet_B::Data</class>
    <class kind="class">PFR2000Packet_B</class>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet_c.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__r2000__packet__c_8cpp.html</filename>
    <includes id="pf__r2000__packet__c_8h" name="pf_r2000_packet_c.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet_c.h</includes>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_r2000_packet_c.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__r2000__packet__c_8h.html</filename>
    <includes id="pf__r2000__packet_8h" name="pf_r2000_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2000_packet.h</includes>
    <class kind="struct">PFR2000Packet_C::Data</class>
    <class kind="class">PFR2000Packet_C</class>
  </compound>
  <compound kind="file">
    <name>pf_r2300_packet.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__r2300__packet_8cpp.html</filename>
    <includes id="pf__r2300__packet_8h" name="pf_r2300_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2300_packet.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_r2300_packet.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__r2300__packet_8h.html</filename>
    <includes id="pf__packet_8h" name="pf_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_packet.h</includes>
    <class kind="class">PFR2300Packet</class>
  </compound>
  <compound kind="file">
    <name>pf_r2300_packet_c1.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/pf_packet/</path>
    <filename>pf__r2300__packet__c1_8cpp.html</filename>
    <includes id="pf__r2300__packet__c1_8h" name="pf_r2300_packet_c1.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2300_packet_c1.h</includes>
    <includes id="pf__packet__reader_8h" name="pf_packet_reader.h" local="yes" imported="no">pf_driver/pf/pf_packet_reader.h</includes>
  </compound>
  <compound kind="file">
    <name>pf_r2300_packet_c1.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/pf_packet/</path>
    <filename>pf__r2300__packet__c1_8h.html</filename>
    <includes id="pf__r2300__packet_8h" name="pf_r2300_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_r2300_packet.h</includes>
    <class kind="struct">PFR2300Packet_C1::Data</class>
    <class kind="class">PFR2300Packet_C1</class>
  </compound>
  <compound kind="file">
    <name>pf_writer.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>pf__writer_8h.html</filename>
    <includes id="writer_8h" name="writer.h" local="yes" imported="no">pf_driver/pf/writer.h</includes>
    <includes id="pf__parser_8h" name="pf_parser.h" local="yes" imported="no">pf_driver/pf/pf_parser.h</includes>
    <includes id="transport_8h" name="transport.h" local="yes" imported="no">pf_driver/communication/transport.h</includes>
    <class kind="class">PFWriter</class>
  </compound>
  <compound kind="file">
    <name>pfsdp_2000.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/r2000/</path>
    <filename>pfsdp__2000_8cpp.html</filename>
    <includes id="pfsdp__2000_8h" name="pfsdp_2000.h" local="yes" imported="no">pf_driver/pf/r2000/pfsdp_2000.h</includes>
    <includes id="parser__utils_8h" name="parser_utils.h" local="yes" imported="no">pf_driver/pf/parser_utils.h</includes>
  </compound>
  <compound kind="file">
    <name>pfsdp_2000.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/r2000/</path>
    <filename>pfsdp__2000_8h.html</filename>
    <includes id="pfsdp__base_8h" name="pfsdp_base.h" local="yes" imported="no">pf_driver/pf/pfsdp_base.h</includes>
    <class kind="class">PFSDP_2000</class>
  </compound>
  <compound kind="file">
    <name>pfsdp_2300.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/r2300/</path>
    <filename>pfsdp__2300_8cpp.html</filename>
    <includes id="pfsdp__2300_8h" name="pfsdp_2300.h" local="yes" imported="no">pf_driver/pf/r2300/pfsdp_2300.h</includes>
    <includes id="parser__utils_8h" name="parser_utils.h" local="yes" imported="no">pf_driver/pf/parser_utils.h</includes>
  </compound>
  <compound kind="file">
    <name>pfsdp_2300.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/r2300/</path>
    <filename>pfsdp__2300_8h.html</filename>
    <includes id="pfsdp__base_8h" name="pfsdp_base.h" local="yes" imported="no">pf_driver/pf/pfsdp_base.h</includes>
    <class kind="class">PFSDP_2300</class>
  </compound>
  <compound kind="file">
    <name>pfsdp_base.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/</path>
    <filename>pfsdp__base_8cpp.html</filename>
    <includes id="pfsdp__base_8h" name="pfsdp_base.h" local="yes" imported="no">pf_driver/pf/pfsdp_base.h</includes>
    <includes id="parser__utils_8h" name="parser_utils.h" local="yes" imported="no">pf_driver/pf/parser_utils.h</includes>
  </compound>
  <compound kind="file">
    <name>pfsdp_base.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>pfsdp__base_8h.html</filename>
    <includes id="http__interface_8h" name="http_interface.h" local="yes" imported="no">pf_driver/pf/http_helpers/http_interface.h</includes>
    <includes id="param__type_8h" name="param_type.h" local="yes" imported="no">pf_driver/pf/http_helpers/param_type.h</includes>
    <includes id="param__map__type_8h" name="param_map_type.h" local="yes" imported="no">pf_driver/pf/http_helpers/param_map_type.h</includes>
    <includes id="handle__info_8h" name="handle_info.h" local="yes" imported="no">pf_driver/pf/handle_info.h</includes>
    <includes id="scan__config_8h" name="scan_config.h" local="yes" imported="no">pf_driver/pf/scan_config.h</includes>
    <includes id="scan__parameters_8h" name="scan_parameters.h" local="yes" imported="no">pf_driver/pf/scan_parameters.h</includes>
    <includes id="protocol__info_8h" name="protocol_info.h" local="yes" imported="no">pf_driver/pf/protocol_info.h</includes>
    <includes id="kv_8h" name="kv.h" local="yes" imported="no">pf_driver/pf/kv.h</includes>
    <class kind="class">PFSDPBase</class>
  </compound>
  <compound kind="file">
    <name>pfsdp_protocol.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/tests/</path>
    <filename>pfsdp__protocol_8cpp.html</filename>
  </compound>
  <compound kind="file">
    <name>pipeline.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/pf/</path>
    <filename>pipeline_8cpp.html</filename>
    <includes id="pipeline_8h" name="pipeline.h" local="yes" imported="no">pf_driver/pf/pipeline.h</includes>
    <includes id="pf__packet_8h" name="pf_packet.h" local="yes" imported="no">pf_driver/pf/pf_packet/pf_packet.h</includes>
  </compound>
  <compound kind="file">
    <name>pipeline.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>pipeline_8h.html</filename>
    <includes id="readerwriterqueue_8h" name="readerwriterqueue.h" local="yes" imported="no">pf_driver/queue/readerwriterqueue.h</includes>
    <includes id="writer_8h" name="writer.h" local="yes" imported="no">pf_driver/pf/writer.h</includes>
    <includes id="reader_8h" name="reader.h" local="yes" imported="no">pf_driver/pf/reader.h</includes>
    <class kind="class">Pipeline</class>
  </compound>
  <compound kind="file">
    <name>point_cloud_publisher.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/ros/</path>
    <filename>point__cloud__publisher_8cpp.html</filename>
    <includes id="point__cloud__publisher_8h" name="point_cloud_publisher.h" local="yes" imported="no">pf_driver/ros/point_cloud_publisher.h</includes>
  </compound>
  <compound kind="file">
    <name>point_cloud_publisher.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/ros/</path>
    <filename>point__cloud__publisher_8h.html</filename>
    <includes id="pf__data__publisher_8h" name="pf_data_publisher.h" local="yes" imported="no">pf_driver/ros/pf_data_publisher.h</includes>
    <class kind="class">PointcloudPublisher</class>
  </compound>
  <compound kind="file">
    <name>protocol_info.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>protocol__info_8h.html</filename>
    <class kind="struct">ProtocolInfo</class>
  </compound>
  <compound kind="file">
    <name>reader.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>reader_8h.html</filename>
    <includes id="scan__config_8h" name="scan_config.h" local="yes" imported="no">pf_driver/pf/scan_config.h</includes>
    <includes id="scan__parameters_8h" name="scan_parameters.h" local="yes" imported="no">pf_driver/pf/scan_parameters.h</includes>
    <class kind="class">Reader</class>
  </compound>
  <compound kind="file">
    <name>readerwriterqueue.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/queue/</path>
    <filename>readerwriterqueue_8h.html</filename>
    <includes id="atomicops_8h" name="atomicops.h" local="yes" imported="no">atomicops.h</includes>
    <class kind="struct">moodycamel::ReaderWriterQueue::Block</class>
    <class kind="class">moodycamel::BlockingReaderWriterQueue</class>
    <class kind="class">moodycamel::ReaderWriterQueue</class>
    <class kind="struct">moodycamel::ReaderWriterQueue::ReentrantGuard</class>
    <namespace>moodycamel</namespace>
    <member kind="define">
      <type>#define</type>
      <name>MOODYCAMEL_CACHE_LINE_SIZE</name>
      <anchorfile>readerwriterqueue_8h.html</anchorfile>
      <anchor>a99b7aea919ebc38c496e79c0b78cb910</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>MOODYCAMEL_EXCEPTIONS_ENABLED</name>
      <anchorfile>readerwriterqueue_8h.html</anchorfile>
      <anchor>a1226d95caca076ed7139cf21547ebf9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>MOODYCAMEL_HAS_EMPLACE</name>
      <anchorfile>readerwriterqueue_8h.html</anchorfile>
      <anchor>ad98fba1833190439c3beee809e708359</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ros_main.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/ros/</path>
    <filename>ros__main_8cpp.html</filename>
    <includes id="pf__interface_8h" name="pf_interface.h" local="yes" imported="no">pf_driver/pf/pf_interface.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ros__main_8cpp.html</anchorfile>
      <anchor>a0ddf1224851353fc92bfbff6f499fa97</anchor>
      <arglist>(int argc, char *argv[])</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>scan_config.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>scan__config_8h.html</filename>
    <class kind="struct">ScanConfig</class>
  </compound>
  <compound kind="file">
    <name>scan_parameters.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>scan__parameters_8h.html</filename>
    <class kind="struct">ScanParameters</class>
  </compound>
  <compound kind="file">
    <name>tcp_transport.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/communication/</path>
    <filename>tcp__transport_8cpp.html</filename>
    <includes id="tcp__transport_8h" name="tcp_transport.h" local="yes" imported="no">pf_driver/communication/tcp_transport.h</includes>
  </compound>
  <compound kind="file">
    <name>tcp_transport.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/communication/</path>
    <filename>tcp__transport_8h.html</filename>
    <includes id="transport_8h" name="transport.h" local="yes" imported="no">pf_driver/communication/transport.h</includes>
    <class kind="class">TCPTransport</class>
  </compound>
  <compound kind="file">
    <name>transport.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/communication/</path>
    <filename>transport_8h.html</filename>
    <includes id="transport__type_8h" name="transport_type.h" local="yes" imported="no">pf_driver/communication/transport_type.h</includes>
    <class kind="class">Transport</class>
  </compound>
  <compound kind="file">
    <name>transport_type.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/communication/</path>
    <filename>transport__type_8h.html</filename>
    <member kind="enumeration">
      <type></type>
      <name>transport_type</name>
      <anchorfile>transport__type_8h.html</anchorfile>
      <anchor>a86cdaffc49feb3f5e3f1ffacfc054427</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>tcp</name>
      <anchorfile>transport__type_8h.html</anchorfile>
      <anchor>a86cdaffc49feb3f5e3f1ffacfc054427a5036938696cb1fd991a6aa47cc514cf7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>udp</name>
      <anchorfile>transport__type_8h.html</anchorfile>
      <anchor>a86cdaffc49feb3f5e3f1ffacfc054427a95459274fe26bcd24bc34e1f47fb24e9</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>udp_transport.cpp</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/src/communication/</path>
    <filename>udp__transport_8cpp.html</filename>
    <includes id="udp__transport_8h" name="udp_transport.h" local="yes" imported="no">pf_driver/communication/udp_transport.h</includes>
  </compound>
  <compound kind="file">
    <name>udp_transport.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/communication/</path>
    <filename>udp__transport_8h.html</filename>
    <includes id="transport_8h" name="transport.h" local="yes" imported="no">pf_driver/communication/transport.h</includes>
    <class kind="class">UDPTransport</class>
  </compound>
  <compound kind="file">
    <name>writer.h</name>
    <path>/tmp/ws/src/pf_lidar_ros_driver/src/pf_driver/include/pf_driver/pf/</path>
    <filename>writer_8h.html</filename>
    <class kind="class">Writer</class>
  </compound>
  <compound kind="struct">
    <name>moodycamel::ReaderWriterQueue::Block</name>
    <filename>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</filename>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>Block</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>aa18ea63cafd5ca6c676a3203350e5440</anchor>
      <arglist>(size_t const &amp;_size, char *_rawThis, char *_data)</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>cachelineFiller0</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>ad30f394952507cdd6d322c8c27bd5931</anchor>
      <arglist>[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic&lt; size_t &gt;) - sizeof(size_t)]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>cachelineFiller1</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>abc3f3391168e0cf7b2718f120f310d4c</anchor>
      <arglist>[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic&lt; size_t &gt;) - sizeof(size_t)]</arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>data</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>ad6e0b072170ed5a47e34f4a9f861fc17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>weak_atomic&lt; size_t &gt;</type>
      <name>front</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>a4feaae10ce277e359a16919fa7f788a2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>localFront</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>a976d02636c9e9fd3ae84a32b2a3ef95e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>localTail</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>a79ac6b4737169dccdea1639ee70696f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>next</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>a7edb2c65edaa018c77647153882fab73</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>rawThis</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>a7d2cc6fc500d3485b9275ca080d429ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const size_t</type>
      <name>sizeMask</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>affecd71666d7e66ace62bc1ed5496937</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>weak_atomic&lt; size_t &gt;</type>
      <name>tail</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>aad4cc070cc44c666604ab4d2e33bec85</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>Block &amp;</type>
      <name>operator=</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1Block.html</anchorfile>
      <anchor>a7d9986a0165d0ab889d3a1e2870d2897</anchor>
      <arglist>(Block const &amp;)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>moodycamel::BlockingReaderWriterQueue</name>
    <filename>classmoodycamel_1_1BlockingReaderWriterQueue.html</filename>
    <templarg></templarg>
    <templarg>MAX_BLOCK_SIZE</templarg>
    <member kind="function">
      <type></type>
      <name>BlockingReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a9d9ac85749331b2d56bbeb3a49fdd739</anchor>
      <arglist>(BlockingReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>BlockingReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>ae9b473c7735992da103506501922adc9</anchor>
      <arglist>(size_t size=15) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a7703623946b8c089f4ec5776557053cf</anchor>
      <arglist>(T &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a382d8340e6e766d1d0d7573128e45cb3</anchor>
      <arglist>(T const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>max_capacity</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a497b9b22fa615a73d0231f3b162328f3</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>BlockingReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a7191e30ca327b008e150a9931ed16268</anchor>
      <arglist>(BlockingReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE T *</type>
      <name>peek</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a21afcd26328a20eb43283a6cc9401368</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>pop</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a9bd779b546f5bf9356488abcadd7f699</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>size_approx</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>afdb0c491dbf0a48400367954b980d585</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>try_dequeue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>aa22215269fbe7a8e4dd205775c1eff2c</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a05fd9a057646a1354a4ad3362a837058</anchor>
      <arglist>(T &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>afb0c99f0f1f292b5e7c3a55c65c114a5</anchor>
      <arglist>(T const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>wait_dequeue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a933ea93957ef45f4a9f175a60f340914</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>wait_dequeue_timed</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a38a3ebbed3fdb475d69f83db66ec670a</anchor>
      <arglist>(U &amp;result, std::int64_t timeout_usecs) AE_NO_TSAN</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>::moodycamel::ReaderWriterQueue&lt; T, MAX_BLOCK_SIZE &gt;</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a1fe80a07f5ea17cb461aa6e56fcaeb03</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type></type>
      <name>BlockingReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a2ab48f3e7483cc4c743a42a1d45b94f9</anchor>
      <arglist>(BlockingReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>BlockingReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a7d0c06a518f4f70efcb47907187c45bd</anchor>
      <arglist>(BlockingReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ReaderWriterQueue</type>
      <name>inner</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a0079f9733ad53edc8387d8d3550256f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; spsc_sema::LightweightSemaphore &gt;</type>
      <name>sema</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a4e4b72aa6594516d3e0718ea3533b0b3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>BlockingReaderWriterQueue&lt; std::unique_ptr&lt; PFPacket &gt; &gt;</name>
    <filename>classmoodycamel_1_1BlockingReaderWriterQueue.html</filename>
    <member kind="function">
      <type></type>
      <name>BlockingReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a9d9ac85749331b2d56bbeb3a49fdd739</anchor>
      <arglist>(BlockingReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>BlockingReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>ae9b473c7735992da103506501922adc9</anchor>
      <arglist>(size_t size=15) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a7703623946b8c089f4ec5776557053cf</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a382d8340e6e766d1d0d7573128e45cb3</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>max_capacity</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a497b9b22fa615a73d0231f3b162328f3</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>BlockingReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a7191e30ca327b008e150a9931ed16268</anchor>
      <arglist>(BlockingReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE std::unique_ptr&lt; PFPacket &gt; *</type>
      <name>peek</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a21afcd26328a20eb43283a6cc9401368</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>pop</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a9bd779b546f5bf9356488abcadd7f699</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>size_approx</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>afdb0c491dbf0a48400367954b980d585</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>try_dequeue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>aa22215269fbe7a8e4dd205775c1eff2c</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a05fd9a057646a1354a4ad3362a837058</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>afb0c99f0f1f292b5e7c3a55c65c114a5</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>wait_dequeue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a933ea93957ef45f4a9f175a60f340914</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>wait_dequeue_timed</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a38a3ebbed3fdb475d69f83db66ec670a</anchor>
      <arglist>(U &amp;result, std::int64_t timeout_usecs) AE_NO_TSAN</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>::moodycamel::ReaderWriterQueue&lt; std::unique_ptr&lt; PFPacket &gt;, 512 &gt;</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a1fe80a07f5ea17cb461aa6e56fcaeb03</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type></type>
      <name>BlockingReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a2ab48f3e7483cc4c743a42a1d45b94f9</anchor>
      <arglist>(BlockingReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>BlockingReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a7d0c06a518f4f70efcb47907187c45bd</anchor>
      <arglist>(BlockingReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ReaderWriterQueue</type>
      <name>inner</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a0079f9733ad53edc8387d8d3550256f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; spsc_sema::LightweightSemaphore &gt;</type>
      <name>sema</name>
      <anchorfile>classmoodycamel_1_1BlockingReaderWriterQueue.html</anchorfile>
      <anchor>a4e4b72aa6594516d3e0718ea3533b0b3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>CurlResource</name>
    <filename>classCurlResource.html</filename>
    <member kind="function">
      <type>void</type>
      <name>append_path</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a943a1e2889a332221c54b0f866fe0b11</anchor>
      <arglist>(const std::string &amp;path)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>append_query</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a88a109d90198f80af53f48b3207c8fc7</anchor>
      <arglist>(const param_map_type &amp;params, bool do_encoding=false)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>append_query</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a910dd1dcdf49df2d5eba0dc5cd8d5203</anchor>
      <arglist>(const std::initializer_list&lt; param_type &gt; &amp;list, bool do_encoding=false)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>CurlResource</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>ae1e02eb23ecfbd36a15b66d6f5f5acf2</anchor>
      <arglist>(const std::string &amp;host)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>get</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>aea1e62b643a809538b5f2b6edc3255a6</anchor>
      <arglist>(Json::Value &amp;json_resp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>print</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a4592951125c69d37f133ac661b121eaa</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>curlpp::Cleanup</type>
      <name>cleaner</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a80dff137b63188a82328aa98ef7e6a33</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::list&lt; std::string &gt;</type>
      <name>header_</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a8749f1f865fb4fb9965e548b9c81052e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>curlpp::Easy</type>
      <name>request_</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a6ee110a0ad3961a7975abae219e3ac48</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::stringstream</type>
      <name>response_</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a1a77b13aa0505c8e77fd82f5db1dc7c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>url_</name>
      <anchorfile>classCurlResource.html</anchorfile>
      <anchor>a77bceac8713fc085e6f54a6304788e84</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>PFR2000Packet_A::Data</name>
    <filename>structPFR2000Packet__A_1_1Data.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>distance</name>
      <anchorfile>structPFR2000Packet__A_1_1Data.html</anchorfile>
      <anchor>af8a25bc94ec15364c635520f048e7bdc</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>PFR2000Packet_B::Data</name>
    <filename>structPFR2000Packet__B_1_1Data.html</filename>
    <member kind="variable">
      <type>uint16_t</type>
      <name>amplitude</name>
      <anchorfile>structPFR2000Packet__B_1_1Data.html</anchorfile>
      <anchor>a6d562a34278d16fc4c5146f0de9fea1a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>distance</name>
      <anchorfile>structPFR2000Packet__B_1_1Data.html</anchorfile>
      <anchor>a0f96ab61858f6ceae622cfd176e95132</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>PFR2000Packet_C::Data</name>
    <filename>structPFR2000Packet__C_1_1Data.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>dist_amp</name>
      <anchorfile>structPFR2000Packet__C_1_1Data.html</anchorfile>
      <anchor>aeea5679e312c0a7a1478013e60090536</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>PFR2300Packet_C1::Data</name>
    <filename>structPFR2300Packet__C1_1_1Data.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>dist_amp</name>
      <anchorfile>structPFR2300Packet__C1_1_1Data.html</anchorfile>
      <anchor>a88ad78c8ba66fb620fedce5854e8e5a6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>HandleInfo</name>
    <filename>structHandleInfo.html</filename>
    <member kind="variable">
      <type>std::string</type>
      <name>endpoint</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>acf58b7b4905b571d20c3aeb7d81bfe77</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>handle</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>a50884e6bdec43a0ce87a7db58c67236d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>handle_type</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>aaff17d2f6374d5f525138046bde983a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>hostname</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>a8c36bc54580daddcc43fc57927660e17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>port</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>a781b271030f0260117dc73ae06277708</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const int</type>
      <name>HANDLE_TYPE_TCP</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>ac7a671464de5678d7f4a88ccb5a741e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const int</type>
      <name>HANDLE_TYPE_UDP</name>
      <anchorfile>structHandleInfo.html</anchorfile>
      <anchor>aa6193a9c25e69232ea2ac11e66dba1f4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>HTTPInterface</name>
    <filename>classHTTPInterface.html</filename>
    <member kind="function">
      <type>const std::map&lt; std::string, std::string &gt;</type>
      <name>get</name>
      <anchorfile>classHTTPInterface.html</anchorfile>
      <anchor>a08b1417470be3bf9dc0a435b2a49f7a0</anchor>
      <arglist>(const std::vector&lt; std::string &gt; &amp;json_keys, const std::string &amp;command, const param_map_type &amp;params=param_map_type())</arglist>
    </member>
    <member kind="function">
      <type>const std::map&lt; std::string, std::string &gt;</type>
      <name>get</name>
      <anchorfile>classHTTPInterface.html</anchorfile>
      <anchor>a3dafd903bdb9d9c95635db92d7a6777d</anchor>
      <arglist>(const std::vector&lt; std::string &gt; &amp;json_keys, const std::string &amp;command, const std::initializer_list&lt; param_type &gt; &amp;list=std::initializer_list&lt; param_type &gt;())</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>HTTPInterface</name>
      <anchorfile>classHTTPInterface.html</anchorfile>
      <anchor>a4c3b8933d475999be1c3df6e9b3201ad</anchor>
      <arglist>(std::string host, std::string path=&quot;&quot;)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>const std::map&lt; std::string, std::string &gt;</type>
      <name>get_</name>
      <anchorfile>classHTTPInterface.html</anchorfile>
      <anchor>a123e3f945a1beeb71563ddbb609c8e06</anchor>
      <arglist>(const std::vector&lt; std::string &gt; &amp;json_keys, CurlResource &amp;res)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const std::string</type>
      <name>base_path</name>
      <anchorfile>classHTTPInterface.html</anchorfile>
      <anchor>a2e67cf453c2dbcccaaaa546ef2c58d47</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const std::string</type>
      <name>host</name>
      <anchorfile>classHTTPInterface.html</anchorfile>
      <anchor>a11b8e9594c128b41a89f4fb26d22f1a8</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>KV</name>
    <filename>classKV.html</filename>
    <member kind="function">
      <type></type>
      <name>KV</name>
      <anchorfile>classKV.html</anchorfile>
      <anchor>a4662713d298e8cb7de3b9f60c5231ce1</anchor>
      <arglist>(const std::string &amp;k, const Ts &amp;... list)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static std::string</type>
      <name>make_list</name>
      <anchorfile>classKV.html</anchorfile>
      <anchor>a2a43a3030f8a904c50c08b24309c3838</anchor>
      <arglist>(bool first, const T &amp;t)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static std::string</type>
      <name>make_list</name>
      <anchorfile>classKV.html</anchorfile>
      <anchor>a768c4308b975857bde97080c5c83857d</anchor>
      <arglist>(bool first, const T &amp;t, Ts &amp;&amp;... list)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static std::string</type>
      <name>make_list</name>
      <anchorfile>classKV.html</anchorfile>
      <anchor>a357ecb419f67c8e626d4a078185ceecc</anchor>
      <arglist>(bool first, std::vector&lt; std::string &gt; list)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>LaserscanPublisher</name>
    <filename>classLaserscanPublisher.html</filename>
    <base>PFDataPublisher</base>
    <member kind="function">
      <type></type>
      <name>LaserscanPublisher</name>
      <anchorfile>classLaserscanPublisher.html</anchorfile>
      <anchor>a576703a915a3b1cf04952aa1ed5df401</anchor>
      <arglist>(std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params, const std::string &amp;scan_topic, const std::string &amp;frame_id)</arglist>
    </member>
    <member kind="function" protection="private" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_scan</name>
      <anchorfile>classLaserscanPublisher.html</anchorfile>
      <anchor>a29c0636d5e0458be8f6613488c7d1a4e</anchor>
      <arglist>(sensor_msgs::LaserScanPtr msg, uint16_t layer_idx, int layer_inclination, bool apply_correction)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>publish_scan</name>
      <anchorfile>classLaserscanPublisher.html</anchorfile>
      <anchor>a288e96f3863b7cd25cbf887b6bc1ff24</anchor>
      <arglist>(sensor_msgs::LaserScanPtr msg)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>scan_publisher_</name>
      <anchorfile>classLaserscanPublisher.html</anchorfile>
      <anchor>a4e56f767b6c3f46a2dcc4fa2c1cfc98f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>moodycamel::spsc_sema::LightweightSemaphore</name>
    <filename>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</filename>
    <member kind="typedef">
      <type>std::make_signed&lt; std::size_t &gt;::type</type>
      <name>ssize_t</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>a7fc0970347fa73024544a1b03b06f275</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ssize_t</type>
      <name>availableApprox</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>ad2167590fb21fa46109bbe2c2445ee68</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>LightweightSemaphore</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>a833100d00f5b67ed874ce48e713b0276</anchor>
      <arglist>(ssize_t initialCount=0)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>signal</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>a4f6ac02af433e5a097d266aa9d27eceb</anchor>
      <arglist>(ssize_t count=1) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>tryWait</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>ac9705d28d2493140483112a1ac899f31</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>wait</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>ac26eb31ae596d2ca72f470c643641c7b</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>wait</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>a00003253988c9368df080951b37ffa1c</anchor>
      <arglist>(std::int64_t timeout_usecs) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>waitWithPartialSpinning</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>af0401166110d242b573fe197f6673af9</anchor>
      <arglist>(std::int64_t timeout_usecs=-1) AE_NO_TSAN</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; ssize_t &gt;</type>
      <name>m_count</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>a538359e61ce96b41fcd03a8151a29956</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Semaphore</type>
      <name>m_sema</name>
      <anchorfile>classmoodycamel_1_1spsc__sema_1_1LightweightSemaphore.html</anchorfile>
      <anchor>ad0289200cccf1bac17048b47c6f5bd45</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Parser</name>
    <filename>classParser.html</filename>
    <templarg></templarg>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>parse</name>
      <anchorfile>classParser.html</anchorfile>
      <anchor>a70c8cd49339969585cd9d5c5fa083198</anchor>
      <arglist>(uint8_t *buf, size_t buf_len, std::vector&lt; std::unique_ptr&lt; T &gt;&gt; &amp;results, size_t &amp;used)=0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Parser&lt; PFPacket &gt;</name>
    <filename>classParser.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>parse</name>
      <anchorfile>classParser.html</anchorfile>
      <anchor>a70c8cd49339969585cd9d5c5fa083198</anchor>
      <arglist>(uint8_t *buf, size_t buf_len, std::vector&lt; std::unique_ptr&lt; PFPacket &gt;&gt; &amp;results, size_t &amp;used)=0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFDataPublisher</name>
    <filename>classPFDataPublisher.html</filename>
    <base>PFPacketReader</base>
    <member kind="function">
      <type></type>
      <name>PFDataPublisher</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a5a678b35cc4cca743b7bc5c381131708</anchor>
      <arglist>(std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>afee51246f2fc7eb6d15b3b17c59a5616</anchor>
      <arglist>(PFR2000Packet_A &amp;packet)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>acbc98849be8b04a2a3cb9db22ad58833</anchor>
      <arglist>(PFR2000Packet_B &amp;packet)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a8e6dd78bb44439e5b7c51cc4b1bfc2c2</anchor>
      <arglist>(PFR2000Packet_C &amp;packet)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a8941004e1141a18bccd1e1ecf431736a</anchor>
      <arglist>(PFR2300Packet_C1 &amp;packet)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>start</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a939d8cc1e04bc8a6d6918f81f76d267a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>stop</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a11adf56dd619841383f9caeb28bb7a82</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>check_status</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a472831663763912c2eca9770fb053463</anchor>
      <arglist>(uint32_t status_flags)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>handle_scan</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a41bfac68cf32c065268cb8f023eef88f</anchor>
      <arglist>(sensor_msgs::LaserScanPtr msg, uint16_t layer_idx, int layer_inclination, bool apply_correction=true)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>resetCurrentScans</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a4cfb1b19d9043729ca47188b5ef05592</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>to_msg_queue</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a5c74c4514092df410fbeb6e5c6931934</anchor>
      <arglist>(T &amp;packet, uint16_t layer_idx=0, int layer_inclination=0)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; ScanConfig &gt;</type>
      <name>config_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a1917e3db1a7b691e72614c247a517aad</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::deque&lt; sensor_msgs::LaserScanPtr &gt;</type>
      <name>d_queue_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>ac32a0eee13563136400d40593981f97b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>frame_id_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a8a134ac7663db182dc51c0bed2d5d869</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Publisher</type>
      <name>header_publisher_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a5bd492e1cfd995fc790add2f07371f41</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a24f97e667ead9f8af3b4e97cbefd52f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; ScanParameters &gt;</type>
      <name>params_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>a2b0999aa46a89c539fb133667fed0248</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::mutex</type>
      <name>q_mutex_</name>
      <anchorfile>classPFDataPublisher.html</anchorfile>
      <anchor>ae94c2a2dd0f06f1ca1676b6ab1a5ec95</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFInterface</name>
    <filename>classPFInterface.html</filename>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a01ca1e92fcadf643d199348a56c0e6a9</anchor>
      <arglist>(std::shared_ptr&lt; HandleInfo &gt; info, std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params, const std::string &amp;topic, const std::string &amp;frame_id, const uint16_t num_layers)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>PFInterface</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>ac444b8b3098ca5a6177f66f9462784cf</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>start_transmission</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>adfdf3a8511962cb0145b2447cd787817</anchor>
      <arglist>(std::shared_ptr&lt; std::mutex &gt; net_mtx, std::shared_ptr&lt; std::condition_variable &gt; net_cv, bool &amp;net_fail)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>stop_transmission</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>ae4b4aadf8cb0f576776e903ac2fdcc5b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>terminate</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a89499867a93df9c612148664d3ee13f3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="enumeration" protection="private">
      <type></type>
      <name>PFState</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>abfc4446f53c338d951bc802e8dcb0d9b</anchor>
      <arglist></arglist>
      <enumvalue file="classPFInterface.html" anchor="abfc4446f53c338d951bc802e8dcb0d9ba0bb2c0f400808f8752d404f5c921d1df">UNINIT</enumvalue>
      <enumvalue file="classPFInterface.html" anchor="abfc4446f53c338d951bc802e8dcb0d9bafaee4ca3c30ee18148ce3ada37466498">INIT</enumvalue>
      <enumvalue file="classPFInterface.html" anchor="abfc4446f53c338d951bc802e8dcb0d9ba43491564ebcfd38568918efbd6e840fd">RUNNING</enumvalue>
      <enumvalue file="classPFInterface.html" anchor="abfc4446f53c338d951bc802e8dcb0d9bab9984206799a7f9fe4bd1b6c18db8112">SHUTDOWN</enumvalue>
      <enumvalue file="classPFInterface.html" anchor="abfc4446f53c338d951bc802e8dcb0d9babb1ca97ec761fc37101737ba0aa2e7c5">ERROR</enumvalue>
    </member>
    <member kind="typedef" protection="private">
      <type>std::unique_ptr&lt; Pipeline &gt;</type>
      <name>PipelinePtr</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>ab76e28aa1f506e3a5c53e788de42b222</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>can_change_state</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>acfe2fcaf2eca2536f487e1dbc5971a0a</anchor>
      <arglist>(PFState state)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>change_state</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>ad8319adc0ed1da6d702bf2c71c8372f6</anchor>
      <arglist>(PFState state)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>connection_failure_cb</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a87ced181ec5e022d02f1a64b6d77ef63</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>feed_watchdog</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a011dc8ff21c33d02558ff433f852a500</anchor>
      <arglist>(const ros::TimerEvent &amp;e)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>PipelinePtr</type>
      <name>get_pipeline</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a3c6a56b7181722964b07603d6b437825</anchor>
      <arglist>(const std::string &amp;packet_type, std::shared_ptr&lt; std::mutex &gt; net_mtx, std::shared_ptr&lt; std::condition_variable &gt; net_cv, bool &amp;net_fail)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>handle_version</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a42e5f5552e4250864be783b4f65046cf</anchor>
      <arglist>(int major_version, int minor_version, int device_family, const std::string &amp;topic, const std::string &amp;frame_id, const uint16_t num_layers)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a87832eca8794b598cd5d34490b685f59</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>on_shutdown</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a573c0c3dc0af268b6ba05b24a933ffa5</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>start_watchdog_timer</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a36e41ad7b8c8017d5363b1ea196b3f47</anchor>
      <arglist>(float duration)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; ScanConfig &gt;</type>
      <name>config_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>adcce6c42d1ef8b40af72442ce80cecc4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>frame_id_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a76d8ae5820ba5b1263144685269a3405</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; HandleInfo &gt;</type>
      <name>info_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a4a6ad86035ddf88269c39615dcf2ca99</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a4efa3f54d6889dd41e0c3211cefca56e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>uint16_t</type>
      <name>num_layers_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a4319825a64929cc30009a7274a5f9b36</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; ScanParameters &gt;</type>
      <name>params_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a97d9a8208469c69e6be2b21e025e3ce1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>PipelinePtr</type>
      <name>pipeline_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>af061c6410ce4cbe0533c66c7a1efb41b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>prev_handle_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>ac42279ca87744b3c794f0ac376e0b904</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>product_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a122395b29ab23e53b85a1e422251fe84</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; PFSDPBase &gt;</type>
      <name>protocol_interface_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a8330dda26617da2774b741fe4cb5afcd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; Reader&lt; PFPacket &gt; &gt;</type>
      <name>reader_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a0a8ac2e928bcf0674e3ec94fc614d3db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>PFState</type>
      <name>state_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>aae398e86ee553bb6b1e2cba76a38b589</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>topic_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a5a9ed2235178676981dc4e2b63680474</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; Transport &gt;</type>
      <name>transport_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>ab631b43772aa1f1cef25e5d5fe2e0d7f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Timer</type>
      <name>watchdog_timer_</name>
      <anchorfile>classPFInterface.html</anchorfile>
      <anchor>a4d61f85be36ce2aeecc460c35317ac87</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFPacket</name>
    <filename>classPFPacket.html</filename>
    <member kind="function">
      <type>int</type>
      <name>find_packet_start</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>ae8ebaaa6a1d6323dcc4f9eda6b0e857c</anchor>
      <arglist>(uint8_t *buf, size_t buf_len)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>parse_buf</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>aca1b4fa6de6e60aaf51687dedbedf7f9</anchor>
      <arglist>(uint8_t *buf, size_t buf_len, size_t &amp;remainder, size_t &amp;p_size)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>read_with</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>a72adbe657846730775cd26dad32f3247</anchor>
      <arglist>(PFPacketReader &amp;reader)</arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; uint16_t &gt;</type>
      <name>amplitude</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>ab9ad6b528202fb0e0804c08091178c31</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; uint32_t &gt;</type>
      <name>distance</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>ae47de8ae9167c4eb643e6688810f9c9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>pf_driver::PFHeader</type>
      <name>header</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>a0f1fa082383cd6fafe45be1129da45a6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Time</type>
      <name>last_acquired_point_stamp</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>aded29d69d9d108a4257546268118c6d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual size_t</type>
      <name>get_size</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>a561a023e762da658a9f03b22a1ba3f5c</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>get_type</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>a65c10183bad0d2d1dc3fce9b1b9ebab9</anchor>
      <arglist>(char *p_type)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>read_data</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>adcdeb7888e8850248143da6fc59d4782</anchor>
      <arglist>(uint8_t *buf, size_t num)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual std::tuple&lt; uint16_t, uint32_t, uint16_t &gt;</type>
      <name>read_header</name>
      <anchorfile>classPFPacket.html</anchorfile>
      <anchor>ad049768c7dcbf5b8fd5908ee69a4d3db</anchor>
      <arglist>(ros::serialization::IStream &amp;stream)=0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFPacketReader</name>
    <filename>classPFPacketReader.html</filename>
    <base>Reader&lt; PFPacket &gt;</base>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>ac4f9e3d82509ec9e8dedff79b3e8fa72</anchor>
      <arglist>(PFR2000Packet_A &amp;packet)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>a06d8dc3ccfd5a4ad980747d231292cf0</anchor>
      <arglist>(PFR2000Packet_B &amp;packet)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>a0ed10b780db76311eaf0845c9e2bd78b</anchor>
      <arglist>(PFR2000Packet_C &amp;packet)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>aa0f31b2d9e2544c15d5f87aeddca674b</anchor>
      <arglist>(PFR2300Packet_C1 &amp;packet)=0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>abbe33d73bd0040c3735e8010a503e827</anchor>
      <arglist>(std::shared_ptr&lt; PFPacket &gt; packet)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>start</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>a2863fa3e0a380fc9514b126181664a94</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>stop</name>
      <anchorfile>classPFPacketReader.html</anchorfile>
      <anchor>a4d1a7808587bb0b3f74b2161473e7afc</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFParser</name>
    <filename>classPFParser.html</filename>
    <templarg></templarg>
    <base>Parser&lt; PFPacket &gt;</base>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>parse</name>
      <anchorfile>classPFParser.html</anchorfile>
      <anchor>a6ce8023d8b5885593d5aaf0f85f71a34</anchor>
      <arglist>(uint8_t *buf, size_t buf_len, std::vector&lt; std::unique_ptr&lt; PFPacket &gt;&gt; &amp;results, size_t &amp;used)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFR2000Packet</name>
    <filename>classPFR2000Packet.html</filename>
    <base>PFPacket</base>
    <member kind="function" virtualness="virtual">
      <type>virtual size_t</type>
      <name>get_size</name>
      <anchorfile>classPFR2000Packet.html</anchorfile>
      <anchor>a798d8547a6f2725edba62ca64737b4be</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::tuple&lt; uint16_t, uint32_t, uint16_t &gt;</type>
      <name>read_header</name>
      <anchorfile>classPFR2000Packet.html</anchorfile>
      <anchor>a76d50b53a7d06656d73a1d37d36fd328</anchor>
      <arglist>(ros::serialization::IStream &amp;stream)</arglist>
    </member>
    <member kind="variable">
      <type>pf_driver::PFR2000Header</type>
      <name>header</name>
      <anchorfile>classPFR2000Packet.html</anchorfile>
      <anchor>abdc2203970479b95460c5ad07557b0fd</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFR2000Packet_A</name>
    <filename>classPFR2000Packet__A.html</filename>
    <base>PFR2000Packet</base>
    <class kind="struct">PFR2000Packet_A::Data</class>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>get_type</name>
      <anchorfile>classPFR2000Packet__A.html</anchorfile>
      <anchor>a2c8bfc2905deff997c546e011eb1a894</anchor>
      <arglist>(char *c)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_data</name>
      <anchorfile>classPFR2000Packet__A.html</anchorfile>
      <anchor>adf466f23e81b4af5a53b1a839be189e0</anchor>
      <arglist>(uint8_t *buf, size_t num)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_with</name>
      <anchorfile>classPFR2000Packet__A.html</anchorfile>
      <anchor>a999d961a34623107571537a59ffde38a</anchor>
      <arglist>(PFPacketReader &amp;reader)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFR2000Packet_B</name>
    <filename>classPFR2000Packet__B.html</filename>
    <base>PFR2000Packet</base>
    <class kind="struct">PFR2000Packet_B::Data</class>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>get_type</name>
      <anchorfile>classPFR2000Packet__B.html</anchorfile>
      <anchor>a85861bac6ff5047c8185ee0c064e10e3</anchor>
      <arglist>(char *c)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_data</name>
      <anchorfile>classPFR2000Packet__B.html</anchorfile>
      <anchor>a0828bbef2f33eb96ee35272855701b24</anchor>
      <arglist>(uint8_t *buf, size_t num)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_with</name>
      <anchorfile>classPFR2000Packet__B.html</anchorfile>
      <anchor>a56e0b3c5513c512b324846c6bbbf160d</anchor>
      <arglist>(PFPacketReader &amp;reader)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFR2000Packet_C</name>
    <filename>classPFR2000Packet__C.html</filename>
    <base>PFR2000Packet</base>
    <class kind="struct">PFR2000Packet_C::Data</class>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>get_type</name>
      <anchorfile>classPFR2000Packet__C.html</anchorfile>
      <anchor>afc5070d6932eb45b85980744bfd09d00</anchor>
      <arglist>(char *c)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_data</name>
      <anchorfile>classPFR2000Packet__C.html</anchorfile>
      <anchor>a4627576acf95d7e35917d33c40ef4f9c</anchor>
      <arglist>(uint8_t *buf, size_t num)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_with</name>
      <anchorfile>classPFR2000Packet__C.html</anchorfile>
      <anchor>afdb908657f2e63cd86d361882b0bd8c7</anchor>
      <arglist>(PFPacketReader &amp;reader)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFR2300Packet</name>
    <filename>classPFR2300Packet.html</filename>
    <base>PFPacket</base>
    <member kind="function" virtualness="virtual">
      <type>virtual size_t</type>
      <name>get_size</name>
      <anchorfile>classPFR2300Packet.html</anchorfile>
      <anchor>a008c2be07e4fe1d00ba435719158b29b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::tuple&lt; uint16_t, uint32_t, uint16_t &gt;</type>
      <name>read_header</name>
      <anchorfile>classPFR2300Packet.html</anchorfile>
      <anchor>a690f5c9e97ac4a4c01dc0a0c953fc82b</anchor>
      <arglist>(ros::serialization::IStream &amp;stream)</arglist>
    </member>
    <member kind="variable">
      <type>pf_driver::PFR2300Header</type>
      <name>header</name>
      <anchorfile>classPFR2300Packet.html</anchorfile>
      <anchor>a8e4f083d53b38c811354cbabd672c3b7</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFR2300Packet_C1</name>
    <filename>classPFR2300Packet__C1.html</filename>
    <base>PFR2300Packet</base>
    <class kind="struct">PFR2300Packet_C1::Data</class>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>get_type</name>
      <anchorfile>classPFR2300Packet__C1.html</anchorfile>
      <anchor>a20d3f64d238f4ee69b02f5490224e70d</anchor>
      <arglist>(char *c)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_data</name>
      <anchorfile>classPFR2300Packet__C1.html</anchorfile>
      <anchor>a4bcfc505b53d35dd4677662d7e6ed784</anchor>
      <arglist>(uint8_t *buf, size_t num)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>read_with</name>
      <anchorfile>classPFR2300Packet__C1.html</anchorfile>
      <anchor>a33c1bee06f037d28f203cd244187dbc6</anchor>
      <arglist>(PFPacketReader &amp;reader)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFSDP_2000</name>
    <filename>classPFSDP__2000.html</filename>
    <base>PFSDPBase</base>
    <member kind="function" virtualness="virtual">
      <type>virtual std::string</type>
      <name>get_product</name>
      <anchorfile>classPFSDP__2000.html</anchorfile>
      <anchor>a4c11b30638c3c6a66f8ee54727ec89be</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>get_scan_parameters</name>
      <anchorfile>classPFSDP__2000.html</anchorfile>
      <anchor>a8db980ebaf2ae4478c637ccaf260e01a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>PFSDP_2000</name>
      <anchorfile>classPFSDP__2000.html</anchorfile>
      <anchor>a0d94dbcefb8bacb6c7a1d453d04908d6</anchor>
      <arglist>(std::shared_ptr&lt; HandleInfo &gt; info, std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>reconfig_callback</name>
      <anchorfile>classPFSDP__2000.html</anchorfile>
      <anchor>a0bf15a84b9c459f699d7a140fd1a6c8a</anchor>
      <arglist>(pf_driver::PFDriverR2000Config &amp;config, uint32_t level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setup_param_server</name>
      <anchorfile>classPFSDP__2000.html</anchorfile>
      <anchor>af7111788dd942374dffc3aa2e8778ab7</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; dynamic_reconfigure::Server&lt; pf_driver::PFDriverR2000Config &gt; &gt;</type>
      <name>param_server_R2000_</name>
      <anchorfile>classPFSDP__2000.html</anchorfile>
      <anchor>a0034f2fca6d29453d943ca0f3e7b9b06</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFSDP_2300</name>
    <filename>classPFSDP__2300.html</filename>
    <base>PFSDPBase</base>
    <member kind="function" virtualness="virtual">
      <type>virtual std::string</type>
      <name>get_part</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a785b5b07fb8a8c684274259776df95a0</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::string</type>
      <name>get_product</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>ae282e69996c280b81e90b6ed9d2c56c3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>get_scan_parameters</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>ae39ac4fc5e2f9e82f6abe57f0961ca6a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>PFSDP_2300</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a5e03902293a143cea08503f481dff469</anchor>
      <arglist>(std::shared_ptr&lt; HandleInfo &gt; info, std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setup_param_server</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a8cc089a122d7b285092b2bf9731e9e54</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private" virtualness="virtual">
      <type>virtual std::pair&lt; float, float &gt;</type>
      <name>get_angle_start_stop</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a40ce4e342a74ee1d5b141817efeedd71</anchor>
      <arglist>(int start_angle)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>get_layers_enabled</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>ad1fa300334848210986134dd82bd7872</anchor>
      <arglist>(uint16_t &amp;enabled, uint16_t &amp;highest)</arglist>
    </member>
    <member kind="function" protection="private" virtualness="virtual">
      <type>virtual std::string</type>
      <name>get_start_angle_str</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a98b20fd6a9aa14de00fa7988ad3e4d63</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>reconfig_callback</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a8a16e2e9415742252fc74076a16ea3d0</anchor>
      <arglist>(pf_driver::PFDriverR2300Config &amp;config, uint32_t level)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; dynamic_reconfigure::Server&lt; pf_driver::PFDriverR2300Config &gt; &gt;</type>
      <name>param_server_R2300_</name>
      <anchorfile>classPFSDP__2300.html</anchorfile>
      <anchor>a8fb29ebbe99125a41d0d48824d7ae386</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFSDPBase</name>
    <filename>classPFSDPBase.html</filename>
    <member kind="function">
      <type>void</type>
      <name>factory_reset</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ae039591aae814652a764da139fd560c0</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>feed_watchdog</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a560008355a0d3e6ec5efb66dbbd11f24</anchor>
      <arglist>(const std::string &amp;handle)</arglist>
    </member>
    <member kind="function">
      <type>std::map&lt; std::string, std::string &gt;</type>
      <name>get_parameter</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a6fb29a6be021037b3d0077e67d85f27d</anchor>
      <arglist>(const Ts &amp;... ts)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>get_parameter_float</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ae09b2fb4c723f41a9bfad73ded99a4fd</anchor>
      <arglist>(const std::string &amp;param)</arglist>
    </member>
    <member kind="function">
      <type>std::int64_t</type>
      <name>get_parameter_int</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a5f98212ae2691479cb2684bd8fac5dee</anchor>
      <arglist>(const std::string &amp;param)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>get_parameter_str</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>acfd00877306aa9bfe78847e8ebfcc765</anchor>
      <arglist>(const std::string &amp;param)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::string</type>
      <name>get_part</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a5dd5f5cf3ba90ae82cedca97f9d21017</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::string</type>
      <name>get_product</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a01c7e4f5df07b4f477f3ce02f706d4a8</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>ProtocolInfo</type>
      <name>get_protocol_info</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aae14eba796e995e1b83b47e5bf32577f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>get_scan_parameters</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a5f4f15f300c67aa8c81176da23bdc155</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>get_scanoutput_config</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a987a0eeb331622e687e8d01e9f89045b</anchor>
      <arglist>(const std::string &amp;handle)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>get_scanoutput_config</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>afb6a375dea4b2a2ca5c21629b2bbda82</anchor>
      <arglist>(const std::string &amp;param, const std::string &amp;handle)</arglist>
    </member>
    <member kind="function">
      <type>const std::vector&lt; std::string &gt;</type>
      <name>list_parameters</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ac1cdaaacf3f5165caf1d6cae127b5255</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>PFSDPBase</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aeb7a08807ea7a88d867f133d1b016336</anchor>
      <arglist>(std::shared_ptr&lt; HandleInfo &gt; info, std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reboot_device</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a324c9f886e9e64c0bb1ce28f05f35fba</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>release_handle</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a748d23006aa73d602223a1c8a4cf1172</anchor>
      <arglist>(const std::string &amp;handle)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>request_handle_tcp</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aebe325e16a7a3d6ea62a693cbbb310ce</anchor>
      <arglist>(const std::string &amp;port=&quot;&quot;, const std::string &amp;packet_type=&quot;&quot;)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>request_handle_udp</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aba674bd90cc0e83f6bfc667e21917779</anchor>
      <arglist>(const std::string &amp;packet_type=&quot;&quot;)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset_parameter</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ad13df18a220ff7a486f348fb804ef8ba</anchor>
      <arglist>(const Ts &amp;... ts)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>set_connection_failure_cb</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a0cfa3189440a3470f78dea7ab9b98432</anchor>
      <arglist>(std::function&lt; void()&gt; callback)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>set_parameter</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a07773bf02533fc7a0c56dc2ad387146d</anchor>
      <arglist>(const std::initializer_list&lt; param_type &gt; params)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>set_scanoutput_config</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a2f6cd81c6c3f89068208d7d84aeafccf</anchor>
      <arglist>(const std::string &amp;handle, const ScanConfig &amp;config)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>setup_param_server</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aec97e982e369ed71046b6222aee29ae9</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>start_scanoutput</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ad3749ee9a2dc17f383aa5bb3db76e8f2</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>stop_scanoutput</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a5a09f70eb3f2dbfca342661121630bb2</anchor>
      <arglist>(const std::string &amp;handle)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>update_scanoutput_config</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a1083a8d1fb5ad28cdf2f8eaf3bcf5ed8</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; ScanConfig &gt;</type>
      <name>config_</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ae7badda1e7cf4e17c0fb6f17ec6ec80e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; HandleInfo &gt;</type>
      <name>info_</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a6b78c94d211caf20e9806022d91e9e8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; ScanParameters &gt;</type>
      <name>params_</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a40538f5c4f940fecced52778f5e7bcd8</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::unique_ptr&lt; HTTPInterface &gt;</type>
      <name>HTTPInterfacePtr</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ab953ccfc338a747a80cc85635fd48835</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>check_error</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>ac776e2c0172eaf1ee30297fa5e0afa14</anchor>
      <arglist>(std::map&lt; std::string, std::string &gt; &amp;mp, const std::string &amp;err_code, const std::string &amp;err_text, const std::string &amp;err_http)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>const std::map&lt; std::string, std::string &gt;</type>
      <name>get_request</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aa89652e658f7173e882b8c288fdf9ff5</anchor>
      <arglist>(const std::string &amp;command, const std::vector&lt; std::string &gt; &amp;json_keys, const std::initializer_list&lt; param_type &gt; &amp;query)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>const std::map&lt; std::string, std::string &gt;</type>
      <name>get_request</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a4bfc9caa56ddc9a417cd8f3e17038382</anchor>
      <arglist>(const std::string &amp;command, const std::vector&lt; std::string &gt; &amp;json_keys=std::vector&lt; std::string &gt;(), const param_map_type &amp;query=param_map_type())</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>get_request_bool</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a9b2cdfd7907ec1f0b36595bf4c169d81</anchor>
      <arglist>(const std::string &amp;command, const std::vector&lt; std::string &gt; &amp;json_keys=std::vector&lt; std::string &gt;(), const std::initializer_list&lt; param_type &gt; &amp;query=std::initializer_list&lt; param_type &gt;())</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>is_connection_failure</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a2426905e1c0009f54cf3421a1eb62b2f</anchor>
      <arglist>(const std::string &amp;http_error)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::function&lt; void()&gt;</type>
      <name>handle_connection_failure</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>a8d9082bffaecbb1aa4826c1596cd68d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>HTTPInterfacePtr</type>
      <name>http_interface</name>
      <anchorfile>classPFSDPBase.html</anchorfile>
      <anchor>aa62e319933667eae8fc67f6b9772ef22</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PFWriter</name>
    <filename>classPFWriter.html</filename>
    <templarg></templarg>
    <base>Writer</base>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>get</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>a73f51dd752d7950b30f89db37b7437f6</anchor>
      <arglist>(std::vector&lt; std::unique_ptr&lt; T &gt;&gt; &amp;packets)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>PFWriter</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>aa546f94e5de5d781382e60298ebbd715</anchor>
      <arglist>(std::unique_ptr&lt; Transport &gt; &amp;&amp;transport, std::shared_ptr&lt; Parser&lt; T &gt;&gt; parser)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>start</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>abf0eab1eaf707486407fc921ca362bf7</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>stop</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>a2a2599b021165f5963a00ac37ebc8076</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>is_running_</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>ad1a0b37b439577ad5e764f04f94069a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::mutex</type>
      <name>mtx_</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>a29f5cc14305e194d7b41d6c5ecb2c242</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; Parser&lt; T &gt; &gt;</type>
      <name>parser_</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>a2e6ece536cb9d56289348d336fe827ab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; uint8_t &gt;</type>
      <name>persistent_buffer_</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>a8d0539f5c644df4444077ba8c25aa223</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; Transport &gt;</type>
      <name>transport_</name>
      <anchorfile>classPFWriter.html</anchorfile>
      <anchor>afd819b8e311f5ec62d7e39d621f15a73</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Pipeline</name>
    <filename>classPipeline.html</filename>
    <member kind="function">
      <type>bool</type>
      <name>is_running</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a7a59d34a117c910c0825844d47bfe722</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>on_shutdown</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a31e6436be9bc102ca8dfe6f9a148996a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Pipeline</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ad1d6f41b7aac1c41c42e8f7bc1572196</anchor>
      <arglist>(std::shared_ptr&lt; Writer&lt; PFPacket &gt;&gt; writer, std::shared_ptr&lt; Reader&lt; PFPacket &gt;&gt; reader, std::function&lt; void()&gt; func, std::shared_ptr&lt; std::mutex &gt; net_mtx, std::shared_ptr&lt; std::condition_variable &gt; net_cv, bool &amp;net_fail)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>start</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>af78050ec67a0bd11e4b1f1c017ce1780</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>terminate</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a3f82cf96169d1d488c32a79e02358cbe</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>run_reader</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ac65005e7e1f80a99f29827ed891921fa</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>run_writer</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ab0ab10caa6f7845522d76fea405c599a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::mutex</type>
      <name>mutex_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ae0981db78cb37cb6ebb0a26f7cac7029</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; std::condition_variable &gt;</type>
      <name>net_cv_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a85c62ca7994e90bb6271dae206365f4e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool &amp;</type>
      <name>net_fail_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a610cdb86885aaa69c589bbf48f1c4ed9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; std::mutex &gt;</type>
      <name>net_mtx_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a054f6955d75cef7dec31fae34b10dbab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>moodycamel::BlockingReaderWriterQueue&lt; std::unique_ptr&lt; PFPacket &gt; &gt;</type>
      <name>queue_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ae4b9964dbbc2ab0e8580e0ef7c7c4aa9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; Reader&lt; PFPacket &gt; &gt;</type>
      <name>reader_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a38de0d6b47e41f412b641e68138747ab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::thread</type>
      <name>reader_thread_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a5880a15550c611e07e2949f1a0044cd4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; bool &gt;</type>
      <name>running_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a18bbb2e878b62b42c052a432685b603f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::function&lt; void()&gt;</type>
      <name>shutdown</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>af79a832169331f71bf1fcd59dfdba6ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; bool &gt;</type>
      <name>shutdown_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ae035d9711659629118b36acf67ccbec7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; Writer&lt; PFPacket &gt; &gt;</type>
      <name>writer_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>a7399cb2084bb36be3e3ba903198c5f69</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::thread</type>
      <name>writer_thread_</name>
      <anchorfile>classPipeline.html</anchorfile>
      <anchor>ac173eaeb4d79d4342fe1d7bce68fbdbd</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PointcloudPublisher</name>
    <filename>classPointcloudPublisher.html</filename>
    <base>PFDataPublisher</base>
    <member kind="function">
      <type></type>
      <name>PointcloudPublisher</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a6541103727f839199c861bb1be91c227</anchor>
      <arglist>(std::shared_ptr&lt; ScanConfig &gt; config, std::shared_ptr&lt; ScanParameters &gt; params, const std::string &amp;scan_topic, const std::string &amp;frame_id, const uint16_t num_layers, const std::string &amp;part)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>add_pointcloud</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>adcefffd901fcebcd1e7a848c325f6283</anchor>
      <arglist>(sensor_msgs::PointCloud2 &amp;c1, sensor_msgs::PointCloud2 c2)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>copy_pointcloud</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>af68f1a3decd1d3a318b937fcd6bdf729</anchor>
      <arglist>(sensor_msgs::PointCloud2 &amp;c1, sensor_msgs::PointCloud2 c2)</arglist>
    </member>
    <member kind="function" protection="private" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_scan</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a64e972da7ad67ca090fd7c3c67ff1cd7</anchor>
      <arglist>(sensor_msgs::LaserScanPtr msg, uint16_t layer_idx, int layer_inclination, bool apply_correction)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>project_laser</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a113c6cf2b843d57f7c1f766ef360b414</anchor>
      <arglist>(sensor_msgs::PointCloud2 &amp;c, sensor_msgs::LaserScanPtr msg, const int layer_inclination)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>publish_scan</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a3c8ad2ccfa03b48152cef59cf1c9ec6c</anchor>
      <arglist>(sensor_msgs::LaserScanPtr msg, uint16_t idx)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>publish_static_transform</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a7610a7a3fb6afa4150e6d9b5d1cb2189</anchor>
      <arglist>(const std::string &amp;parent, const std::string &amp;child, int inclination_angle)</arglist>
    </member>
    <member kind="function" protection="private" virtualness="virtual">
      <type>virtual void</type>
      <name>resetCurrentScans</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a50e146d7d3330c41155a21b08cb3f0b4</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; int &gt;</type>
      <name>angles_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a7fc357c5ff5a76fa92d01010a54120de</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>sensor_msgs::PointCloud2Ptr</type>
      <name>cloud_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a6c294795faf5850567f21ef4b08f9f68</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::map&lt; int, std::vector&lt; double &gt; &gt;</type>
      <name>correction_params_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a8c4e2fa1102c82fff93f31c6c764a286</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::string &gt;</type>
      <name>frame_ids_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a3999f31b9c5b8da1c1a75b4dec1ec993</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int16_t</type>
      <name>layer_prev_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>a2b15b0f5294ab10ce328286b56a8ac1f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>pcl_publisher_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>aa6083189b5a6ecbd637e47bf959146fe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>laser_geometry::LaserProjection</type>
      <name>projector_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>aaffa74fb9b8a614ded6bc46ff8703b98</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; ros::Publisher &gt;</type>
      <name>scan_publishers_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>af519bab2f64192a422f48a878819dfa4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf2_ros::StaticTransformBroadcaster</type>
      <name>static_broadcaster_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>ae31a8806ccf89d1fb2526cad0329eb8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf::TransformListener</type>
      <name>tfListener_</name>
      <anchorfile>classPointcloudPublisher.html</anchorfile>
      <anchor>af6f64f5dff716cacfa52f5e02e53c32c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ProtocolInfo</name>
    <filename>structProtocolInfo.html</filename>
    <member kind="variable">
      <type>std::vector&lt; std::string &gt;</type>
      <name>commands</name>
      <anchorfile>structProtocolInfo.html</anchorfile>
      <anchor>a399a5a48d89bf0bc4e392d8422905833</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>device_family</name>
      <anchorfile>structProtocolInfo.html</anchorfile>
      <anchor>af88a2a9dbc82864c1561760a9a0816b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>isError</name>
      <anchorfile>structProtocolInfo.html</anchorfile>
      <anchor>a653e300ca021d5fb2ca153fe244ae72c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>protocol_name</name>
      <anchorfile>structProtocolInfo.html</anchorfile>
      <anchor>ab967d7b1290362a8f070c0a7b1e4f7c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>version_major</name>
      <anchorfile>structProtocolInfo.html</anchorfile>
      <anchor>a69113eff79250786512d48e5a43948c6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>version_minor</name>
      <anchorfile>structProtocolInfo.html</anchorfile>
      <anchor>af087508b31a35d5dabf4fd6c0b8793e9</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Reader</name>
    <filename>classReader.html</filename>
    <templarg></templarg>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>af1660d793a8d3e8a4975f7a73f79b027</anchor>
      <arglist>(std::shared_ptr&lt; T &gt; packet)=0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>set_scan_params</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>a96e4a57a7f2e2d8f1b23552295a76a7c</anchor>
      <arglist>(ScanParameters params)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>set_scanoutput_config</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>aa6bc901fed62c87b45ed2d05125755b8</anchor>
      <arglist>(ScanConfig config)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>start</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>a9243326e8dbfaeafabbad23ec906c558</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>stop</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>a8f8a2d13965e652992e930f1d2c18a18</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Reader&lt; PFPacket &gt;</name>
    <filename>classReader.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>read</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>af1660d793a8d3e8a4975f7a73f79b027</anchor>
      <arglist>(std::shared_ptr&lt; PFPacket &gt; packet)=0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>set_scan_params</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>a96e4a57a7f2e2d8f1b23552295a76a7c</anchor>
      <arglist>(ScanParameters params)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>set_scanoutput_config</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>aa6bc901fed62c87b45ed2d05125755b8</anchor>
      <arglist>(ScanConfig config)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>start</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>a9243326e8dbfaeafabbad23ec906c558</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>stop</name>
      <anchorfile>classReader.html</anchorfile>
      <anchor>a8f8a2d13965e652992e930f1d2c18a18</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>moodycamel::ReaderWriterQueue</name>
    <filename>classmoodycamel_1_1ReaderWriterQueue.html</filename>
    <templarg></templarg>
    <templarg>MAX_BLOCK_SIZE</templarg>
    <class kind="struct">moodycamel::ReaderWriterQueue::Block</class>
    <class kind="struct">moodycamel::ReaderWriterQueue::ReentrantGuard</class>
    <member kind="typedef">
      <type>T</type>
      <name>value_type</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a9dfbcdc3f85a6c5db2a8f55e7bc281f2</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>emplace</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a1f5836c71041cb94f197b24049095ec3</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a04bd825545946d74a4c1faf8f87991d1</anchor>
      <arglist>(T &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a916e4d19af1692aa8cb5e3cab06974a1</anchor>
      <arglist>(T const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>max_capacity</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>acbee4ea74cc19aa04dcb366046dee59b</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>ReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a73f08848c4aa85f62ee05307bbc48936</anchor>
      <arglist>(ReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>T *</type>
      <name>peek</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ae2f247d897da67e8ae58569a369fee27</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>pop</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ab0705da9d31dcc086b747f40456ec451</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ae555698e1b3663ac2e55ea6eb2353b42</anchor>
      <arglist>(ReaderWriterQueue &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>abca43e01f2222ac593b93cc3e872ec3b</anchor>
      <arglist>(size_t size=15)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>size_approx</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a6713c73630617f77b43c7c65c220c34c</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>try_dequeue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a77969aaf96e16d7df26ab47e45b4ea4b</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_emplace</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>afd246118fccc23207d3201ad70d58d98</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aaab2a5b4c81e1481fbe1ff6f898306fb</anchor>
      <arglist>(T &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeb3308da51543c0e1409b5886134fd47</anchor>
      <arglist>(T const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>~ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aa55e1814d303422af6c7063b81c2d5bc</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="enumeration" protection="private">
      <type></type>
      <name>AllocationMode</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CanAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2aa5ba03d4a118d2592fbd507092d0ae3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CannotAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2a7e5df699b881c1a93fe29dc9ee1b927f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CanAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2aa5ba03d4a118d2592fbd507092d0ae3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CannotAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2a7e5df699b881c1a93fe29dc9ee1b927f</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>inner_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a3005e1a64793cd30078f741b22ca3f0c</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private">
      <type>ReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>acd7de03a3f2e79327694ec4019999d72</anchor>
      <arglist>(ReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private">
      <type></type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2d416e6ca925306a4895f66936796880</anchor>
      <arglist>(ReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static AE_FORCEINLINE char *</type>
      <name>align_for</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a46118854ac6fe06d76f8cbbba3ebf58b</anchor>
      <arglist>(char *ptr) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static AE_FORCEINLINE size_t</type>
      <name>ceilToPow2</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a84c7235bb25e6e3a874cc43480f5b676</anchor>
      <arglist>(size_t x)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static Block *</type>
      <name>make_block</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ab29f9011740111a163ce0f80b7ecc9da</anchor>
      <arglist>(size_t capacity) AE_NO_TSAN</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>char</type>
      <name>cachelineFiller</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a47beed962dcede595963d19cd5fdbed8</anchor>
      <arglist>[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic&lt; Block * &gt;)]</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>dequeuing</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2c71534816cd68a6e94eed83bf162a46</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>enqueuing</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2f3de5827b67edb817dc7f253a3c015a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>frontBlock</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a577982f9c6e3936145fdd067889fa819</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>size_t</type>
      <name>largestBlockSize</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a23a41e08c4f606ef17d111eff73a28c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>tailBlock</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ac1301403ef32978255e38c9a7090e58e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ReaderWriterQueue&lt; std::unique_ptr&lt; PFPacket &gt;, 512 &gt;</name>
    <filename>classmoodycamel_1_1ReaderWriterQueue.html</filename>
    <member kind="typedef">
      <type>std::unique_ptr&lt; PFPacket &gt;</type>
      <name>value_type</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a9dfbcdc3f85a6c5db2a8f55e7bc281f2</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>emplace</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a1f5836c71041cb94f197b24049095ec3</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a04bd825545946d74a4c1faf8f87991d1</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a916e4d19af1692aa8cb5e3cab06974a1</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>max_capacity</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>acbee4ea74cc19aa04dcb366046dee59b</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>ReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a73f08848c4aa85f62ee05307bbc48936</anchor>
      <arglist>(ReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>std::unique_ptr&lt; PFPacket &gt; *</type>
      <name>peek</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ae2f247d897da67e8ae58569a369fee27</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>pop</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ab0705da9d31dcc086b747f40456ec451</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ae555698e1b3663ac2e55ea6eb2353b42</anchor>
      <arglist>(ReaderWriterQueue &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>abca43e01f2222ac593b93cc3e872ec3b</anchor>
      <arglist>(size_t size=15)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>size_approx</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a6713c73630617f77b43c7c65c220c34c</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>try_dequeue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a77969aaf96e16d7df26ab47e45b4ea4b</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_emplace</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>afd246118fccc23207d3201ad70d58d98</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aaab2a5b4c81e1481fbe1ff6f898306fb</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeb3308da51543c0e1409b5886134fd47</anchor>
      <arglist>(std::unique_ptr&lt; PFPacket &gt; const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>~ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aa55e1814d303422af6c7063b81c2d5bc</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="enumeration" protection="private">
      <type></type>
      <name>AllocationMode</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CanAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2aa5ba03d4a118d2592fbd507092d0ae3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CannotAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2a7e5df699b881c1a93fe29dc9ee1b927f</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>inner_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a3005e1a64793cd30078f741b22ca3f0c</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private">
      <type>ReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>acd7de03a3f2e79327694ec4019999d72</anchor>
      <arglist>(ReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private">
      <type></type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2d416e6ca925306a4895f66936796880</anchor>
      <arglist>(ReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static AE_FORCEINLINE char *</type>
      <name>align_for</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a46118854ac6fe06d76f8cbbba3ebf58b</anchor>
      <arglist>(char *ptr) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static AE_FORCEINLINE size_t</type>
      <name>ceilToPow2</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a84c7235bb25e6e3a874cc43480f5b676</anchor>
      <arglist>(size_t x)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static Block *</type>
      <name>make_block</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ab29f9011740111a163ce0f80b7ecc9da</anchor>
      <arglist>(size_t capacity) AE_NO_TSAN</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>char</type>
      <name>cachelineFiller</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a47beed962dcede595963d19cd5fdbed8</anchor>
      <arglist>[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic&lt; Block * &gt;)]</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>dequeuing</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2c71534816cd68a6e94eed83bf162a46</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>enqueuing</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2f3de5827b67edb817dc7f253a3c015a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>frontBlock</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a577982f9c6e3936145fdd067889fa819</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>size_t</type>
      <name>largestBlockSize</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a23a41e08c4f606ef17d111eff73a28c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>tailBlock</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ac1301403ef32978255e38c9a7090e58e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ReaderWriterQueue&lt; T, 512 &gt;</name>
    <filename>classmoodycamel_1_1ReaderWriterQueue.html</filename>
    <member kind="typedef">
      <type>T</type>
      <name>value_type</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a9dfbcdc3f85a6c5db2a8f55e7bc281f2</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>emplace</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a1f5836c71041cb94f197b24049095ec3</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a04bd825545946d74a4c1faf8f87991d1</anchor>
      <arglist>(T &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a916e4d19af1692aa8cb5e3cab06974a1</anchor>
      <arglist>(T const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>max_capacity</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>acbee4ea74cc19aa04dcb366046dee59b</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>ReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a73f08848c4aa85f62ee05307bbc48936</anchor>
      <arglist>(ReaderWriterQueue &amp;&amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>T *</type>
      <name>peek</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ae2f247d897da67e8ae58569a369fee27</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>pop</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ab0705da9d31dcc086b747f40456ec451</anchor>
      <arglist>() AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ae555698e1b3663ac2e55ea6eb2353b42</anchor>
      <arglist>(ReaderWriterQueue &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>abca43e01f2222ac593b93cc3e872ec3b</anchor>
      <arglist>(size_t size=15)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>size_approx</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a6713c73630617f77b43c7c65c220c34c</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>try_dequeue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a77969aaf96e16d7df26ab47e45b4ea4b</anchor>
      <arglist>(U &amp;result) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_emplace</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>afd246118fccc23207d3201ad70d58d98</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aaab2a5b4c81e1481fbe1ff6f898306fb</anchor>
      <arglist>(T &amp;&amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE bool</type>
      <name>try_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeb3308da51543c0e1409b5886134fd47</anchor>
      <arglist>(T const &amp;element) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>~ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aa55e1814d303422af6c7063b81c2d5bc</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="enumeration" protection="private">
      <type></type>
      <name>AllocationMode</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CanAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2aa5ba03d4a118d2592fbd507092d0ae3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>CannotAlloc</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>aeebe85330f9048b83de00bd1b9955bf2a7e5df699b881c1a93fe29dc9ee1b927f</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>inner_enqueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a3005e1a64793cd30078f741b22ca3f0c</anchor>
      <arglist>(Args &amp;&amp;... args) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private">
      <type>ReaderWriterQueue &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>acd7de03a3f2e79327694ec4019999d72</anchor>
      <arglist>(ReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private">
      <type></type>
      <name>ReaderWriterQueue</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2d416e6ca925306a4895f66936796880</anchor>
      <arglist>(ReaderWriterQueue const &amp;)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static AE_FORCEINLINE char *</type>
      <name>align_for</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a46118854ac6fe06d76f8cbbba3ebf58b</anchor>
      <arglist>(char *ptr) AE_NO_TSAN</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static AE_FORCEINLINE size_t</type>
      <name>ceilToPow2</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a84c7235bb25e6e3a874cc43480f5b676</anchor>
      <arglist>(size_t x)</arglist>
    </member>
    <member kind="function" protection="private" static="yes">
      <type>static Block *</type>
      <name>make_block</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ab29f9011740111a163ce0f80b7ecc9da</anchor>
      <arglist>(size_t capacity) AE_NO_TSAN</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>char</type>
      <name>cachelineFiller</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a47beed962dcede595963d19cd5fdbed8</anchor>
      <arglist>[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic&lt; Block * &gt;)]</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>dequeuing</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2c71534816cd68a6e94eed83bf162a46</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>enqueuing</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a2f3de5827b67edb817dc7f253a3c015a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>frontBlock</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a577982f9c6e3936145fdd067889fa819</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>size_t</type>
      <name>largestBlockSize</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>a23a41e08c4f606ef17d111eff73a28c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>weak_atomic&lt; Block * &gt;</type>
      <name>tailBlock</name>
      <anchorfile>classmoodycamel_1_1ReaderWriterQueue.html</anchorfile>
      <anchor>ac1301403ef32978255e38c9a7090e58e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>moodycamel::ReaderWriterQueue::ReentrantGuard</name>
    <filename>structmoodycamel_1_1ReaderWriterQueue_1_1ReentrantGuard.html</filename>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>ReentrantGuard</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1ReentrantGuard.html</anchorfile>
      <anchor>af2cd54ec6a17b2364db175d5be7eb7cd</anchor>
      <arglist>(bool &amp;_inSection)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>~ReentrantGuard</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1ReentrantGuard.html</anchorfile>
      <anchor>a1849475c8c3cc10acb24dabbbcb1bd0b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>ReentrantGuard &amp;</type>
      <name>operator=</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1ReentrantGuard.html</anchorfile>
      <anchor>a9081bf293d52e07e616e57a343f3e5d9</anchor>
      <arglist>(ReentrantGuard const &amp;)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool &amp;</type>
      <name>inSection</name>
      <anchorfile>structmoodycamel_1_1ReaderWriterQueue_1_1ReentrantGuard.html</anchorfile>
      <anchor>a5e7e9067d611a09f19b5978f20ab93ee</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ScanConfig</name>
    <filename>structScanConfig.html</filename>
    <member kind="variable">
      <type>uint</type>
      <name>max_num_points_scan</name>
      <anchorfile>structScanConfig.html</anchorfile>
      <anchor>af5c3e78f97fc774044262efc433a89af</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>packet_type</name>
      <anchorfile>structScanConfig.html</anchorfile>
      <anchor>a9c322e37c288ea8700c16e57d991ef2a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint</type>
      <name>skip_scans</name>
      <anchorfile>structScanConfig.html</anchorfile>
      <anchor>a52803a6cfea5c00f285e19bc89ca64f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>start_angle</name>
      <anchorfile>structScanConfig.html</anchorfile>
      <anchor>aa65bed3793de77627922a4eef4496693</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>watchdog</name>
      <anchorfile>structScanConfig.html</anchorfile>
      <anchor>a9a855837c429a97443c86e923bbeeeb5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint</type>
      <name>watchdogtimeout</name>
      <anchorfile>structScanConfig.html</anchorfile>
      <anchor>a0fed75476efda0e1ac1671fb3b01b1f4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ScanParameters</name>
    <filename>structScanParameters.html</filename>
    <member kind="variable">
      <type>double</type>
      <name>angle_max</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>a6ae23e043bb4992a5a6b94e0016f9240</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>angle_min</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>a67d25ee1f95b35d52abbc6d632fdb253</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>angular_fov</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>a8d4a281137ae42958371d0482c492d10</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>apply_correction</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>adcb6a22c52acdbe262a2957a9005c154</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>h_enabled_layer</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>aeec793bd9350c60ec4edf5bf5512fe52</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>layers_enabled</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>ad6adad62a68f571598c89abfb849600f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>radial_range_max</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>a2769a0fa8e2d7c99233c840937b5ca15</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>radial_range_min</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>a3f5c0d2b2e3463fbd956e176b6345dd1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>scan_freq</name>
      <anchorfile>structScanParameters.html</anchorfile>
      <anchor>a01828dd571b78983e9cda3a7f3cc3a27</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TCPTransport</name>
    <filename>classTCPTransport.html</filename>
    <base>Transport</base>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>connect</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>a302e9e28e97fedb7a4622be585d6c137</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>disconnect</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>af767b1d63643c22a3443c8fc12d412d6</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>read</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>a82785db519a8fc36db4faa6c04ff976c</anchor>
      <arglist>(boost::array&lt; uint8_t, 4096 &gt; &amp;buf, size_t &amp;len)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>readWithTimeout</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>a38a4f438912c0e5d54f0ea6a2b75e7d2</anchor>
      <arglist>(boost::array&lt; uint8_t, 4096 &gt; &amp;buf, size_t &amp;len, const uint32_t expiry_time)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TCPTransport</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>a599b559185cdc574b10c636eb01a67d7</anchor>
      <arglist>(std::string address)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~TCPTransport</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>ac7ac3fba583c8cb75dbccdef444df964</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; boost::asio::ip::tcp::socket &gt;</type>
      <name>socket_</name>
      <anchorfile>classTCPTransport.html</anchorfile>
      <anchor>a697ddde3e5d78f7490bc6b88b4d04423</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Transport</name>
    <filename>classTransport.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>connect</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a65861af737fcf57b792da17c6e205dc4</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>disconnect</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a08be6ec9f5637ef8fe154b0d34037632</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>get_device_ip</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a93a2e984be80eef6a2443f8fc6db6d43</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>get_host_ip</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a215871e4ebaae2bd5532b37bced6abd9</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>get_port</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a31610cefcbc2462c79876c0b96666add</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>transport_type</type>
      <name>get_type</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a3a9d876c20a01b49542d74efad2c249a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>is_connected</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>ae41206e84fb7a8882ff2d0002d16a2b2</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>read</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a4f5c43b023b45425a36eaedc7569c2a4</anchor>
      <arglist>(boost::array&lt; uint8_t, 4096 &gt; &amp;buf, size_t &amp;len)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>readWithTimeout</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a5438124a28939db65265d675eee64183</anchor>
      <arglist>(boost::array&lt; uint8_t, 4096 &gt; &amp;buf, size_t &amp;len, const uint32_t expiry_time)=0</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>set_port</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a51bb7bcd09a69bc14dff5dcf5d71fa83</anchor>
      <arglist>(std::string port)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Transport</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>aee4747fed67a02fba95fe61e20ee0788</anchor>
      <arglist>(std::string address, transport_type typ)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>address_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a6ed6e05e3f66c3aa8dd47023cc30b4ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>host_ip_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>ad07e2d937bed58829aa09a566f7ce4a5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; boost::asio::io_service &gt;</type>
      <name>io_service_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>af6363622791c033c7f628e1552424bb1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>is_connected_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a3f63a82c46c6b6a20a65b22c21c759e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>port_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a003300fdfa1ed06e7e1c8b7f33566d9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; boost::asio::deadline_timer &gt;</type>
      <name>timer_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>ab3560d0139ee491289038224315d6857</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::optional&lt; boost::system::error_code &gt;</type>
      <name>timer_result_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a6aaa3c1449122041df93c732be660b49</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>transport_type</type>
      <name>type_</name>
      <anchorfile>classTransport.html</anchorfile>
      <anchor>a3b7c1e607899a2059ea1e7cc7889376d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>UDPTransport</name>
    <filename>classUDPTransport.html</filename>
    <base>Transport</base>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>connect</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>a7476b1c1c2b0a9045b7a431dd68894d9</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>disconnect</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>a7cd442fe8291921c65609120bd3b2b22</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>read</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>ac1bcb26b5d6c3c7d5e3abf367ba1d983</anchor>
      <arglist>(boost::array&lt; uint8_t, 4096 &gt; &amp;buf, size_t &amp;len)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>readWithTimeout</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>afbf147e7f56cdab7d74438db913dce53</anchor>
      <arglist>(boost::array&lt; uint8_t, 4096 &gt; &amp;buf, size_t &amp;len, const uint32_t expiry_time)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>UDPTransport</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>a2896d68a98dda5216526dd61481b5071</anchor>
      <arglist>(std::string address, std::string port=&quot;0&quot;)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~UDPTransport</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>aab34a3e1e7c07af18b401292358f6a9c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; boost::asio::ip::udp::socket &gt;</type>
      <name>socket_</name>
      <anchorfile>classUDPTransport.html</anchorfile>
      <anchor>aac2066fa653a36c6adbc374b81fb1304</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>moodycamel::weak_atomic</name>
    <filename>classmoodycamel_1_1weak__atomic.html</filename>
    <templarg></templarg>
    <member kind="function">
      <type>AE_FORCEINLINE T</type>
      <name>fetch_add_acquire</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>aee9cf5ed8e00a7643272fb075e5db7cf</anchor>
      <arglist>(T increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE T</type>
      <name>fetch_add_release</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a300875cd9089da27c3a7546a69962573</anchor>
      <arglist>(T increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE T</type>
      <name>load</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a34ac736752060c9e44f633dae2cfe267</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE</type>
      <name>operator T</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ae580d7f86a88474d43a1b3e86cab32ab</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const  &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ac012444817506c8b12dd2cf2d9cf4689</anchor>
      <arglist>(U &amp;&amp;x) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const  &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a2dccc1fe44228485f343d826e543c6a1</anchor>
      <arglist>(weak_atomic const &amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a4273781324f541e7e67c11f4fe06c9f3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a69a032b867540275b270588d952181be</anchor>
      <arglist>(U &amp;&amp;x)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a1f375955e6886b3bab2b0e8037b33e9c</anchor>
      <arglist>(weak_atomic &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a21fa3545cc957a4013cfdd9a5d33b16b</anchor>
      <arglist>(weak_atomic const &amp;other)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; T &gt;</type>
      <name>value</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>af88e9a001138fb2a2faad166e6098f4a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>weak_atomic&lt; moodycamel::ReaderWriterQueue::Block * &gt;</name>
    <filename>classmoodycamel_1_1weak__atomic.html</filename>
    <member kind="function">
      <type>AE_FORCEINLINE moodycamel::ReaderWriterQueue::Block *</type>
      <name>fetch_add_acquire</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>aee9cf5ed8e00a7643272fb075e5db7cf</anchor>
      <arglist>(moodycamel::ReaderWriterQueue::Block * increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE moodycamel::ReaderWriterQueue::Block *</type>
      <name>fetch_add_release</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a300875cd9089da27c3a7546a69962573</anchor>
      <arglist>(moodycamel::ReaderWriterQueue::Block * increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE moodycamel::ReaderWriterQueue::Block *</type>
      <name>load</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a34ac736752060c9e44f633dae2cfe267</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE</type>
      <name>operator moodycamel::ReaderWriterQueue::Block *</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ae580d7f86a88474d43a1b3e86cab32ab</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ac012444817506c8b12dd2cf2d9cf4689</anchor>
      <arglist>(U &amp;&amp;x) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a2dccc1fe44228485f343d826e543c6a1</anchor>
      <arglist>(weak_atomic const &amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a4273781324f541e7e67c11f4fe06c9f3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a69a032b867540275b270588d952181be</anchor>
      <arglist>(U &amp;&amp;x)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a1f375955e6886b3bab2b0e8037b33e9c</anchor>
      <arglist>(weak_atomic &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a21fa3545cc957a4013cfdd9a5d33b16b</anchor>
      <arglist>(weak_atomic const &amp;other)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; moodycamel::ReaderWriterQueue::Block * &gt;</type>
      <name>value</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>af88e9a001138fb2a2faad166e6098f4a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>weak_atomic&lt; size_t &gt;</name>
    <filename>classmoodycamel_1_1weak__atomic.html</filename>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>fetch_add_acquire</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>aee9cf5ed8e00a7643272fb075e5db7cf</anchor>
      <arglist>(size_t increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>fetch_add_release</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a300875cd9089da27c3a7546a69962573</anchor>
      <arglist>(size_t increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE size_t</type>
      <name>load</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a34ac736752060c9e44f633dae2cfe267</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE</type>
      <name>operator size_t</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ae580d7f86a88474d43a1b3e86cab32ab</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ac012444817506c8b12dd2cf2d9cf4689</anchor>
      <arglist>(U &amp;&amp;x) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a2dccc1fe44228485f343d826e543c6a1</anchor>
      <arglist>(weak_atomic const &amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a4273781324f541e7e67c11f4fe06c9f3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a69a032b867540275b270588d952181be</anchor>
      <arglist>(U &amp;&amp;x)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a1f375955e6886b3bab2b0e8037b33e9c</anchor>
      <arglist>(weak_atomic &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a21fa3545cc957a4013cfdd9a5d33b16b</anchor>
      <arglist>(weak_atomic const &amp;other)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; size_t &gt;</type>
      <name>value</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>af88e9a001138fb2a2faad166e6098f4a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>weak_atomic&lt; ssize_t &gt;</name>
    <filename>classmoodycamel_1_1weak__atomic.html</filename>
    <member kind="function">
      <type>AE_FORCEINLINE ssize_t</type>
      <name>fetch_add_acquire</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>aee9cf5ed8e00a7643272fb075e5db7cf</anchor>
      <arglist>(ssize_t increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE ssize_t</type>
      <name>fetch_add_release</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a300875cd9089da27c3a7546a69962573</anchor>
      <arglist>(ssize_t increment) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE ssize_t</type>
      <name>load</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a34ac736752060c9e44f633dae2cfe267</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE</type>
      <name>operator ssize_t</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ae580d7f86a88474d43a1b3e86cab32ab</anchor>
      <arglist>() const AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>ac012444817506c8b12dd2cf2d9cf4689</anchor>
      <arglist>(U &amp;&amp;x) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE weak_atomic const &amp;</type>
      <name>operator=</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a2dccc1fe44228485f343d826e543c6a1</anchor>
      <arglist>(weak_atomic const &amp;other) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a4273781324f541e7e67c11f4fe06c9f3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a69a032b867540275b270588d952181be</anchor>
      <arglist>(U &amp;&amp;x)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a1f375955e6886b3bab2b0e8037b33e9c</anchor>
      <arglist>(weak_atomic &amp;&amp;other)</arglist>
    </member>
    <member kind="function">
      <type>AE_NO_TSAN</type>
      <name>weak_atomic</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>a21fa3545cc957a4013cfdd9a5d33b16b</anchor>
      <arglist>(weak_atomic const &amp;other)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; ssize_t &gt;</type>
      <name>value</name>
      <anchorfile>classmoodycamel_1_1weak__atomic.html</anchorfile>
      <anchor>af88e9a001138fb2a2faad166e6098f4a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>Writer</name>
    <filename>classWriter.html</filename>
    <templarg></templarg>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>get</name>
      <anchorfile>classWriter.html</anchorfile>
      <anchor>a9cbb537b8966d473e5402d8a6ebe4405</anchor>
      <arglist>(std::vector&lt; std::unique_ptr&lt; T &gt;&gt; &amp;packets)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>start</name>
      <anchorfile>classWriter.html</anchorfile>
      <anchor>a77e857c49a3675732427b4bf73a65db8</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual bool</type>
      <name>stop</name>
      <anchorfile>classWriter.html</anchorfile>
      <anchor>a6b28cd99f8f2bef870f64ad54f231480</anchor>
      <arglist>()=0</arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>http_helpers</name>
    <filename>namespacehttp__helpers.html</filename>
    <member kind="function">
      <type>std::string</type>
      <name>from_array</name>
      <anchorfile>namespacehttp__helpers.html</anchorfile>
      <anchor>aaae1d57db1df3a96ead5e8f104a48f02</anchor>
      <arglist>(const Json::Value &amp;val)</arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>moodycamel</name>
    <filename>namespacemoodycamel.html</filename>
    <namespace>moodycamel::spsc_sema</namespace>
    <class kind="class">moodycamel::BlockingReaderWriterQueue</class>
    <class kind="class">moodycamel::ReaderWriterQueue</class>
    <class kind="class">moodycamel::weak_atomic</class>
    <member kind="enumeration">
      <type></type>
      <name>memory_order</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_relaxed</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4abe717d02114c81e1c1ac90630f2d6c2e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_acquire</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4a9055bf7845dcb2a49462d5b927d00efd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_release</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4aea1d8de8e7fe1ddedfaa152028c2c14f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_acq_rel</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4a311904bec8be06ae1f3ede1d1149699e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_seq_cst</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4a5c944411244df89c625f11baeac23c98</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>memory_order_sync</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a63f736f3f420b59119dc7a883ae46ab4ae6ec223561035d97d356504029ac188c</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE void</type>
      <name>compiler_fence</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>a555837a041dea3c552891ff81139b397</anchor>
      <arglist>(memory_order order) AE_NO_TSAN</arglist>
    </member>
    <member kind="function">
      <type>AE_FORCEINLINE void</type>
      <name>fence</name>
      <anchorfile>namespacemoodycamel.html</anchorfile>
      <anchor>aa870de5edd62c5323b8ff5d411b41ecb</anchor>
      <arglist>(memory_order order) AE_NO_TSAN</arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>moodycamel::spsc_sema</name>
    <filename>namespacemoodycamel_1_1spsc__sema.html</filename>
    <class kind="class">moodycamel::spsc_sema::LightweightSemaphore</class>
  </compound>
  <compound kind="namespace">
    <name>parser_utils</name>
    <filename>namespaceparser__utils.html</filename>
    <member kind="function">
      <type>const std::vector&lt; std::string &gt;</type>
      <name>split</name>
      <anchorfile>namespaceparser__utils.html</anchorfile>
      <anchor>aeb538975d823b9e5f99bb936f47e4a41</anchor>
      <arglist>(const std::string &amp;str, const char delim=&apos;;&apos;)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>to_float</name>
      <anchorfile>namespaceparser__utils.html</anchorfile>
      <anchor>ae012a5aae5ba0562894769e37cbbce9a</anchor>
      <arglist>(const std::string &amp;s)</arglist>
    </member>
    <member kind="function">
      <type>std::int64_t</type>
      <name>to_long</name>
      <anchorfile>namespaceparser__utils.html</anchorfile>
      <anchor>a0a611fc265c7b9a2719779d999eb3137</anchor>
      <arglist>(const std::string &amp;s)</arglist>
    </member>
  </compound>
</tagfile>
