<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile doxygen_version="1.13.2">
  <compound kind="file">
    <name>version.hpp</name>
    <path>build/ipcq/src/include/ipcq/</path>
    <filename>version_8hpp.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_VERSION</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga73ba54472fa0e4baeb9ec3189d0a7c7b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>adapter.hpp</name>
    <path>ipcq/src/include/ipcq/</path>
    <filename>adapter_8hpp.html</filename>
    <class kind="struct">ipcq::IteratorTraits</class>
    <class kind="struct">ipcq::IteratorTraits&lt; Iterator, std::void_t&lt; typename Iterator::container_type &gt; &gt;</class>
    <class kind="struct">ipcq::OutputIteratorAdapter</class>
    <namespace>ipcq</namespace>
  </compound>
  <compound kind="file">
    <name>iterator.hpp</name>
    <path>ipcq/src/include/ipcq/detail/</path>
    <filename>iterator_8hpp.html</filename>
    <class kind="struct">ipcq::detail::Iterator</class>
    <namespace>ipcq</namespace>
    <namespace>ipcq::detail</namespace>
  </compound>
  <compound kind="file">
    <name>shm.hpp</name>
    <path>ipcq/src/include/ipcq/detail/</path>
    <filename>shm_8hpp.html</filename>
    <includes id="error_8hpp" name="error.hpp" local="yes" import="no" module="no" objc="no">../error.hpp</includes>
    <includes id="iterator_8hpp" name="iterator.hpp" local="yes" import="no" module="no" objc="no">iterator.hpp</includes>
    <includes id="traits_8hpp" name="traits.hpp" local="yes" import="no" module="no" objc="no">traits.hpp</includes>
    <class kind="struct">ipcq::detail::QueueInfo</class>
    <class kind="struct">ipcq::detail::ShmControlBlock</class>
    <class kind="class">ipcq::detail::ShmRemover</class>
    <class kind="class">ipcq::detail::SpinConditionPolicy</class>
    <class kind="class">ipcq::detail::BoostConditionPolicy</class>
    <class kind="struct">ipcq::detail::BoostInterprocessTraits</class>
    <class kind="class">ipcq::detail::ShmControlBase</class>
    <class kind="class">ipcq::detail::ShmControl</class>
    <class kind="struct">ipcq::detail::ShmControl::Element</class>
    <class kind="struct">ipcq::detail::ShmControl::Queue</class>
    <namespace>ipcq</namespace>
    <namespace>ipcq::detail</namespace>
    <namespace>ipcq::detail::config</namespace>
    <member kind="define">
      <type>#define</type>
      <name>restrict</name>
      <anchorfile>shm_8hpp.html</anchorfile>
      <anchor>a080abdcb9c02438f1cd2bb707af25af8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_ENABLE_ASSERT</name>
      <anchorfile>shm_8hpp.html</anchorfile>
      <anchor>a578f14c4567443b048097c8c40928c60</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_ENABLE_LOG</name>
      <anchorfile>shm_8hpp.html</anchorfile>
      <anchor>ab22c63b64aad91809b8d275de18e1c99</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_ASSERT</name>
      <anchorfile>shm_8hpp.html</anchorfile>
      <anchor>a519fcadd56a818efd8155eb88ade6dfc</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_LOG</name>
      <anchorfile>shm_8hpp.html</anchorfile>
      <anchor>a34fb9100ea448ccd35b2521711e96294</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_FILE_VERSION</name>
      <anchorfile>shm_8hpp.html</anchorfile>
      <anchor>a3d2e58ea6e206d43d4989e6c12119149</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>traits.hpp</name>
    <path>ipcq/src/include/ipcq/detail/</path>
    <filename>traits_8hpp.html</filename>
    <class kind="struct">ipcq::detail::NonConstTraits</class>
    <class kind="struct">ipcq::detail::ConstTraits</class>
    <namespace>ipcq</namespace>
    <namespace>ipcq::detail</namespace>
  </compound>
  <compound kind="file">
    <name>error.hpp</name>
    <path>ipcq/src/include/ipcq/</path>
    <filename>error_8hpp.html</filename>
    <class kind="class">ipcq::ErrorCategory</class>
    <class kind="struct">std::is_error_condition_enum&lt;::ipcq::Error &gt;</class>
    <namespace>ipcq</namespace>
    <namespace>std</namespace>
  </compound>
  <compound kind="file">
    <name>policies.hpp</name>
    <path>ipcq/src/include/ipcq/</path>
    <filename>policies_8hpp.html</filename>
    <includes id="shm_8hpp" name="shm.hpp" local="yes" import="no" module="no" objc="no">detail/shm.hpp</includes>
    <namespace>ipcq</namespace>
  </compound>
  <compound kind="file">
    <name>reader.hpp</name>
    <path>ipcq/src/include/ipcq/</path>
    <filename>reader_8hpp.html</filename>
    <includes id="shm_8hpp" name="shm.hpp" local="yes" import="no" module="no" objc="no">detail/shm.hpp</includes>
    <includes id="error_8hpp" name="error.hpp" local="yes" import="no" module="no" objc="no">error.hpp</includes>
    <includes id="policies_8hpp" name="policies.hpp" local="yes" import="no" module="no" objc="no">policies.hpp</includes>
    <class kind="struct">ipcq::detail::ReaderRollback&lt; true, State &gt;</class>
    <class kind="struct">ipcq::detail::ReaderRollback&lt; false, State &gt;</class>
    <class kind="class">ipcq::BasicReader</class>
    <namespace>ipcq</namespace>
    <namespace>ipcq::detail</namespace>
  </compound>
  <compound kind="file">
    <name>writer.hpp</name>
    <path>ipcq/src/include/ipcq/</path>
    <filename>writer_8hpp.html</filename>
    <includes id="policies_8hpp" name="policies.hpp" local="yes" import="no" module="no" objc="no">policies.hpp</includes>
    <includes id="shm_8hpp" name="shm.hpp" local="yes" import="no" module="no" objc="no">detail/shm.hpp</includes>
    <class kind="class">ipcq::BasicWriter</class>
    <namespace>ipcq</namespace>
  </compound>
  <compound kind="class">
    <name>ipcq::BasicReader</name>
    <filename>classipcq_1_1BasicReader.html</filename>
    <templarg>class T</templarg>
    <templarg>class ConditionPolicy</templarg>
    <templarg>class ShmTraits</templarg>
    <member kind="function">
      <type>char const *</type>
      <name>TopicName</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>addc9a2ff4e90f8d4d46e3f2ee538a32d</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>IsClosed</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a37ff47102d3bfeea47ea59850f0d7e3f</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Capacity</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a53f012e4dda755efb2d5b27b5e097b6b</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Size</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a75005e651f9ecd90e70929d324154e08</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>NumAvailable</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>ad1f7f4fa4364f5fbc823fa358c55e443</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::pair&lt; std::error_code, size_t &gt;</type>
      <name>Read</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>abe4331a96e884869b94605910d128d24</anchor>
      <arglist>(Operation &amp;&amp;op, size_t count, std::chrono::duration&lt; Rep, Period &gt; timeout) noexcept(std::is_nothrow_invocable_v&lt; Operation, T const &amp; &gt;)</arglist>
    </member>
    <member kind="function">
      <type>std::pair&lt; std::error_code, size_t &gt;</type>
      <name>Skip</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a4039247df867ea59b1b8d80ec0755c94</anchor>
      <arglist>(size_t count, std::chrono::duration&lt; Rep, Period &gt; timeout) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>Synchronize</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a43deba554244d4bd9f571a0e43e0c5bd</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>Reset</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>add6d4d1fc971f10180575005bef5db6c</anchor>
      <arglist>(std::size_t keep=0u) noexcept</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>BasicReader</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a17c2f1fa9e0c46cf1a763d155bc58e88</anchor>
      <arglist>(char const *topic_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static BasicReader</type>
      <name>MakeReader</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>aaf59f59a5e83fb80f20fb59db107e72b</anchor>
      <arglist>(char const *topic_name, std::chrono::duration&lt; Rep, Period &gt; timeout)</arglist>
    </member>
    <member kind="function">
      <type>char const *</type>
      <name>TopicName</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>addc9a2ff4e90f8d4d46e3f2ee538a32d</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>IsClosed</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a37ff47102d3bfeea47ea59850f0d7e3f</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Capacity</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a53f012e4dda755efb2d5b27b5e097b6b</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Size</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a75005e651f9ecd90e70929d324154e08</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>NumAvailable</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>ad1f7f4fa4364f5fbc823fa358c55e443</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::pair&lt; std::error_code, size_t &gt;</type>
      <name>Read</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>abe4331a96e884869b94605910d128d24</anchor>
      <arglist>(Operation &amp;&amp;op, size_t count, std::chrono::duration&lt; Rep, Period &gt; timeout) noexcept(std::is_nothrow_invocable_v&lt; Operation, T const &amp; &gt;)</arglist>
    </member>
    <member kind="function">
      <type>std::pair&lt; std::error_code, size_t &gt;</type>
      <name>Skip</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a4039247df867ea59b1b8d80ec0755c94</anchor>
      <arglist>(size_t count, std::chrono::duration&lt; Rep, Period &gt; timeout) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>Synchronize</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>a43deba554244d4bd9f571a0e43e0c5bd</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>Reset</name>
      <anchorfile>classipcq_1_1BasicReader.html</anchorfile>
      <anchor>add6d4d1fc971f10180575005bef5db6c</anchor>
      <arglist>(std::size_t keep=0u) noexcept</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ipcq::BasicWriter</name>
    <filename>classipcq_1_1BasicWriter.html</filename>
    <templarg>class T</templarg>
    <templarg>class ConditionPolicy</templarg>
    <templarg>class ShmTraits</templarg>
    <member kind="function">
      <type></type>
      <name>BasicWriter</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a9d03a1ee7c17a39bd41154e4eba71580</anchor>
      <arglist>(char const *topic_name, size_t capacity, std::optional&lt; numapp::MemPolicy &gt; const &amp;mempolicy=std::nullopt)</arglist>
    </member>
    <member kind="function">
      <type>char const *</type>
      <name>TopicName</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a2c6ae2d96c3a29f5aee8cba72a67f596</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Capacity</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a4d60c005425ed44db7e0a0205d378f4d</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Size</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>ad92368b8a48fa7ad60a58bed00c35df8</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>IsClosed</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a25978a50f8a61f893606e47851688ccc</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>Close</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a4ed2f98c5df5627c33757c63e33d6b5c</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>Write</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>ae187f4b20dc30fd3c388f69e52a44a1a</anchor>
      <arglist>(T const &amp;data, Notify notify_readers) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>Pop</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a3c02445599e4584018f2abc5a1b9741e</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>Write</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>a8c64d50f7d1d53ec25e8db31f2c0d514</anchor>
      <arglist>(const T *data, size_t count, Notify notify_readers) noexcept</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static std::error_code</type>
      <name>RemoveShmObject</name>
      <anchorfile>classipcq_1_1BasicWriter.html</anchorfile>
      <anchor>af22f1bed78140359470bc538600c34cc</anchor>
      <arglist>(char const *topic_name) noexcept</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ipcq::detail::BoostConditionPolicy</name>
    <filename>classipcq_1_1detail_1_1BoostConditionPolicy.html</filename>
    <member kind="function">
      <type></type>
      <name>BoostConditionPolicy</name>
      <anchorfile>classipcq_1_1detail_1_1BoostConditionPolicy.html</anchorfile>
      <anchor>a6b628e011d7679fa994fe6a75128e26d</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~BoostConditionPolicy</name>
      <anchorfile>classipcq_1_1detail_1_1BoostConditionPolicy.html</anchorfile>
      <anchor>a941270677a7e30c7c4b7b2c923508d7f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>Signal</name>
      <anchorfile>classipcq_1_1detail_1_1BoostConditionPolicy.html</anchorfile>
      <anchor>a92d1906bafb6fb94a457454785eacd74</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>Wait</name>
      <anchorfile>classipcq_1_1detail_1_1BoostConditionPolicy.html</anchorfile>
      <anchor>a2df14c7a3cfde88059a20916df44294e</anchor>
      <arglist>(std::chrono::duration&lt; Rep, Period &gt; timeout, Predicate pred) noexcept</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::BoostInterprocessTraits</name>
    <filename>structipcq_1_1detail_1_1BoostInterprocessTraits.html</filename>
    <member kind="typedef">
      <type>boost::interprocess::shared_memory_object</type>
      <name>SharedMemoryObject</name>
      <anchorfile>structipcq_1_1detail_1_1BoostInterprocessTraits.html</anchorfile>
      <anchor>a149262ba5a57015fcac137bd4645ba77</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::interprocess::mapped_region</type>
      <name>MappedRegion</name>
      <anchorfile>structipcq_1_1detail_1_1BoostInterprocessTraits.html</anchorfile>
      <anchor>a6130c699f89a3a65872e163b00cbaffc</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ConstTraits</name>
    <filename>structipcq_1_1detail_1_1ConstTraits.html</filename>
    <templarg>class T</templarg>
    <member kind="typedef">
      <type>T</type>
      <name>value_type</name>
      <anchorfile>structipcq_1_1detail_1_1ConstTraits.html</anchorfile>
      <anchor>ac6146ded87aa476a29f705904ed82d5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>const value_type *</type>
      <name>pointer</name>
      <anchorfile>structipcq_1_1detail_1_1ConstTraits.html</anchorfile>
      <anchor>abbfdb01e7e54f4df97ea57e8851d432d</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>const value_type &amp;</type>
      <name>reference</name>
      <anchorfile>structipcq_1_1detail_1_1ConstTraits.html</anchorfile>
      <anchor>a898d3fd9ed64f050b55e951259b0de58</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>size_t</type>
      <name>size_type</name>
      <anchorfile>structipcq_1_1detail_1_1ConstTraits.html</anchorfile>
      <anchor>ab844e5275b940f9d4fcaeb17a0aa62db</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::ptrdiff_t</type>
      <name>difference_type</name>
      <anchorfile>structipcq_1_1detail_1_1ConstTraits.html</anchorfile>
      <anchor>a8a4527390962232bb5941f96d6ab7e83</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ShmControl::Element</name>
    <filename>structipcq_1_1detail_1_1ShmControl_1_1Element.html</filename>
    <member kind="variable">
      <type>std::atomic&lt; CounterType &gt;</type>
      <name>counter</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControl_1_1Element.html</anchorfile>
      <anchor>a75399933e4bc9cd5ebec57669f3f6828</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>T</type>
      <name>element</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControl_1_1Element.html</anchorfile>
      <anchor>ae6063baf3ffa9d31450653a9aa51361a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ipcq::ErrorCategory</name>
    <filename>classipcq_1_1ErrorCategory.html</filename>
  </compound>
  <compound kind="struct">
    <name>std::is_error_condition_enum&lt;::ipcq::Error &gt;</name>
    <filename>structstd_1_1is__error__condition__enum_3_1_1ipcq_1_1Error_01_4.html</filename>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::Iterator</name>
    <filename>structipcq_1_1detail_1_1Iterator.html</filename>
    <templarg>class Buff</templarg>
    <templarg>class Traits</templarg>
    <member kind="typedef">
      <type>std::random_access_iterator_tag</type>
      <name>iterator_category</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>aa30d332b10e9b4b04cab5fb2717c058e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename Traits::value_type</type>
      <name>value_type</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a5a4705a189bbb71ac2005a3f2a23389c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename Traits::pointer</type>
      <name>pointer</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a2b78c23f9a61b64a26e8146cb981cb2a</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename Traits::reference</type>
      <name>reference</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a775eb425b76252967a729c94c3959742</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename Traits::difference_type</type>
      <name>difference_type</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>af9f517556316810989f1d949c220af28</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename Traits::size_type</type>
      <name>size_type</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ae96e632c6daf32ecf1a02c01d3a75e2f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const Buff *</type>
      <name>m_buff</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ad0f6135676070c82b7873228c8c835d7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>pointer</type>
      <name>m_it</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a9e499562c9901694d9e6fbf1bb5d34ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Iterator</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ad3403c4b91078dfd8a14414a7a93bef7</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Iterator</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a66a9055ef4e5a13dbb1c501d2d930eda</anchor>
      <arglist>(const Buff *buff, const pointer p)</arglist>
    </member>
    <member kind="function">
      <type>constexpr reference</type>
      <name>operator*</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a88b59cf80a9ea63eb0224c3b6962b7ed</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr pointer</type>
      <name>operator-&gt;</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>af3ec6593c4b123ecf509e8f89c6bedd5</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr difference_type</type>
      <name>operator-</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ae8c2780f204ca6cec2509f3bd44dc1d1</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr Iterator &amp;</type>
      <name>operator++</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a6c5c3fbef42d62e5f5dad76f2e9ab7c0</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr Iterator</type>
      <name>operator++</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a3e960fc3132ac121dc22f21494f71d40</anchor>
      <arglist>(int) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr Iterator &amp;</type>
      <name>operator+=</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a6e3f871a08d3d0cc810e0349c4745793</anchor>
      <arglist>(difference_type n) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr Iterator</type>
      <name>operator+</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a542b91fb8407d712654832e0bebf754f</anchor>
      <arglist>(difference_type n) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>reference</type>
      <name>operator[]</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a566f9a249212fe83101d8c5248f2964e</anchor>
      <arglist>(difference_type n) const</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>operator==</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>acec97b270cc8b855468c721dad6c698b</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>operator!=</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ae15f389d5210ebd6595e5196d9cf7059</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>operator&lt;</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ada4dde3032494d4b9e0aad0617772530</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>operator&gt;</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a3f77e20a913231413d7b4f0906c37815</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>operator&lt;=</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a68d28354949ea78ba93304c44b44b8fe</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>operator&gt;=</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>acb3ab17560446a2bfc1ab7cddb889b20</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr Traits0::pointer</type>
      <name>Linearize</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>ac66826409848ae1c836227d957788f2e</anchor>
      <arglist>(const Iterator&lt; Buff, Traits0 &gt; &amp;it) const noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::ostream &amp;</type>
      <name>Str</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a6f2e1f77e8f87a3357cc4ff5f1a15a37</anchor>
      <arglist>(std::ostream &amp;os) const noexcept</arglist>
    </member>
    <member kind="friend">
      <type>friend std::ostream &amp;</type>
      <name>operator&lt;&lt;</name>
      <anchorfile>structipcq_1_1detail_1_1Iterator.html</anchorfile>
      <anchor>a9a80deb0e8370ad4ce0d860c95f5d651</anchor>
      <arglist>(std::ostream &amp;os, Iterator const &amp;it)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::IteratorTraits</name>
    <filename>structipcq_1_1IteratorTraits.html</filename>
    <templarg>class Iterator</templarg>
    <templarg>class</templarg>
  </compound>
  <compound kind="struct">
    <name>ipcq::IteratorTraits&lt; Iterator, std::void_t&lt; typename Iterator::container_type &gt; &gt;</name>
    <filename>structipcq_1_1IteratorTraits_3_01Iterator_00_01std_1_1void__t_3_01typename_01Iterator_1_1container__type_01_4_01_4.html</filename>
    <templarg>class Iterator</templarg>
  </compound>
  <compound kind="struct">
    <name>MyElement</name>
    <filename>structMyElement.html</filename>
    <member kind="enumeration">
      <type></type>
      <name>Status</name>
      <anchorfile>structMyElement.html</anchorfile>
      <anchor>adc1b16bedbbc8aad4841e2f78018b7a9</anchor>
      <arglist></arglist>
      <enumvalue file="structMyElement.html" anchor="adc1b16bedbbc8aad4841e2f78018b7a9a3ac705f2acd51a4613f9188c05c91d0d">Valid</enumvalue>
      <enumvalue file="structMyElement.html" anchor="adc1b16bedbbc8aad4841e2f78018b7a9a4bbb8f967da6d1a610596d7257179c2b">Invalid</enumvalue>
    </member>
    <member kind="variable">
      <type>Status</type>
      <name>status</name>
      <anchorfile>structMyElement.html</anchorfile>
      <anchor>a094891f6b2ebd68d327088bd90bd8c2a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::size_t</type>
      <name>size</name>
      <anchorfile>structMyElement.html</anchorfile>
      <anchor>ab3b79e2ad2df8faf121862b0deb052ec</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::array&lt; float, 64 *64 &gt;</type>
      <name>data</name>
      <anchorfile>structMyElement.html</anchorfile>
      <anchor>a95805f420530f89eb469df534531fd53</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::array&lt; uint8_t, 128 &gt;</type>
      <name>data</name>
      <anchorfile>structMyElement.html</anchorfile>
      <anchor>ae6fcd37cc1e51ffb3b2ba3074718abf3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::NonConstTraits</name>
    <filename>structipcq_1_1detail_1_1NonConstTraits.html</filename>
    <templarg>class T</templarg>
    <member kind="typedef">
      <type>T</type>
      <name>value_type</name>
      <anchorfile>structipcq_1_1detail_1_1NonConstTraits.html</anchorfile>
      <anchor>a3e12afa152b737183bc27677b02e593e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>value_type *</type>
      <name>pointer</name>
      <anchorfile>structipcq_1_1detail_1_1NonConstTraits.html</anchorfile>
      <anchor>a919594496ffeffc427e80e024a98a621</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>value_type &amp;</type>
      <name>reference</name>
      <anchorfile>structipcq_1_1detail_1_1NonConstTraits.html</anchorfile>
      <anchor>aa8ff1e439b7dea6c33040c240bae5d70</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>size_t</type>
      <name>size_type</name>
      <anchorfile>structipcq_1_1detail_1_1NonConstTraits.html</anchorfile>
      <anchor>a85431bf9f0d712fec5ab9ebc31b004d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::ptrdiff_t</type>
      <name>difference_type</name>
      <anchorfile>structipcq_1_1detail_1_1NonConstTraits.html</anchorfile>
      <anchor>a2b9cfddf3002cb307ea165e91cf42973</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::OutputIteratorAdapter</name>
    <filename>structipcq_1_1OutputIteratorAdapter.html</filename>
    <templarg>class Iterator</templarg>
    <member kind="typedef">
      <type>typename IteratorTraits&lt; Iterator &gt;::value_type</type>
      <name>ValueType</name>
      <anchorfile>structipcq_1_1OutputIteratorAdapter.html</anchorfile>
      <anchor>a2f0d693214c023e59e594585ad8912ce</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>constexpr</type>
      <name>OutputIteratorAdapter</name>
      <anchorfile>structipcq_1_1OutputIteratorAdapter.html</anchorfile>
      <anchor>a751a7b75e4e2239d9725c43b1385a31e</anchor>
      <arglist>(Iterator iter)</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>operator()</name>
      <anchorfile>structipcq_1_1OutputIteratorAdapter.html</anchorfile>
      <anchor>aa524c2b73108f6687a97f1e6e6dc9f06</anchor>
      <arglist>(ValueType const &amp;value)</arglist>
    </member>
    <member kind="variable">
      <type>Iterator</type>
      <name>iterator</name>
      <anchorfile>structipcq_1_1OutputIteratorAdapter.html</anchorfile>
      <anchor>a41b40a7c664fee3ea0f46fc84bbf2668</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ShmControl::Queue</name>
    <filename>structipcq_1_1detail_1_1ShmControl_1_1Queue.html</filename>
    <member kind="variable">
      <type>ConditionPolicy</type>
      <name>condition</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControl_1_1Queue.html</anchorfile>
      <anchor>ac7ce1363f6ced9ca85e11c54d827ca63</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>value_type</type>
      <name>buffer</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControl_1_1Queue.html</anchorfile>
      <anchor>a0315af99a28cb80aee2265e645825339</anchor>
      <arglist>[1]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::QueueInfo</name>
    <filename>structipcq_1_1detail_1_1QueueInfo.html</filename>
    <member kind="function" static="yes">
      <type>static constexpr QueueInfo</type>
      <name>Make</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a53bb0bcb1bb938adbd01a4dabfe68b01</anchor>
      <arglist>(size_t shm_size, size_t capacity, size_t first_element_offset, size_t counter_offset, size_t element_offset, size_t element_size) noexcept</arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>shm_size</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a4f251cd29a0d0aecd9ecc61a37b03d00</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>capacity</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a9657fca04d618de61a91c9347d093da8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>first_element_offset</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a48ed3c950c32b8436651e193c6d4b8e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>counter_offset</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a7700a8e7055701dc26ea1e88ad4ecb3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>element_offset</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a0df6e21a0172a9e8e5bb0fb657c44cae</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>element_size</name>
      <anchorfile>structipcq_1_1detail_1_1QueueInfo.html</anchorfile>
      <anchor>a24d316edecda998a698031520d5418ad</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ReaderRollback</name>
    <filename>structipcq_1_1detail_1_1ReaderRollback.html</filename>
    <templarg>bool nothrow</templarg>
    <templarg>class State</templarg>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ReaderRollback&lt; false, State &gt;</name>
    <filename>structipcq_1_1detail_1_1ReaderRollback_3_01false_00_01State_01_4.html</filename>
    <templarg>class State</templarg>
    <member kind="variable">
      <type>State</type>
      <name>state</name>
      <anchorfile>structipcq_1_1detail_1_1ReaderRollback_3_01false_00_01State_01_4.html</anchorfile>
      <anchor>a0c0dc55d7db313f9872d04200048b107</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ReaderRollback&lt; true, State &gt;</name>
    <filename>structipcq_1_1detail_1_1ReaderRollback_3_01true_00_01State_01_4.html</filename>
    <templarg>class State</templarg>
  </compound>
  <compound kind="class">
    <name>ipcq::detail::ShmControl</name>
    <filename>classipcq_1_1detail_1_1ShmControl.html</filename>
    <templarg>class T</templarg>
    <templarg>class ConditionPolicy</templarg>
    <templarg>class ShmTraits</templarg>
    <base>ipcq::detail::ShmControlBase&lt; BoostInterprocessTraits &gt;</base>
    <class kind="struct">ipcq::detail::ShmControl::Element</class>
    <class kind="struct">ipcq::detail::ShmControl::Queue</class>
    <member kind="typedef">
      <type>typename ShmControlBase&lt; ShmTraits &gt;::CounterType</type>
      <name>CounterType</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a38680659b40129522f9331aaf5ab5fc0</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename ShmTraits::SharedMemoryObject</type>
      <name>SharedMemoryObject</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>af45a958162de5e1caeb8a62c36cdaba9</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>Element</type>
      <name>value_type</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>ae556e9c617b9db71491e1e407fdddc10</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename NonConstTraits&lt; value_type &gt;::size_type</type>
      <name>size_type</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a3ac65be44c011e2a757ec70b37d3946e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename NonConstTraits&lt; value_type &gt;::reference</type>
      <name>reference</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>aaa55d8ebcf8e35650cc3e8edb415cf80</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename ConstTraits&lt; value_type &gt;::reference</type>
      <name>const_reference</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a2760bb0c78579ba396d68908b408b977</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>ptrdiff_t</type>
      <name>difference_type</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a3466481575ac36eefb24c5efd6848527</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>detail::Iterator&lt; ShmControl, ConstTraits&lt; value_type &gt; &gt;</type>
      <name>ConstIterator</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>af6ecc504897c0aff264368e0cd3ae6bf</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>detail::Iterator&lt; ShmControl, NonConstTraits&lt; value_type &gt; &gt;</type>
      <name>Iterator</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a4530e82df0812893238e13920dead6a5</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmControl</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>af0d2996476bff00363118c9b06a21f8e</anchor>
      <arglist>(char const *name, size_t capacity, std::optional&lt; numapp::MemPolicy &gt; mem_policy=std::nullopt, int mmap_flags=0)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmControl</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a24b2fd6a172ef976d8ff374b5b89d720</anchor>
      <arglist>(char const *name)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~ShmControl</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>af47721c53b2cad894353847efb9599d1</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmControl</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a1c8440f24951f873c46d87d39b91da1d</anchor>
      <arglist>(ShmControl &amp;&amp;rhs) noexcept</arglist>
    </member>
    <member kind="function">
      <type>ShmControl &amp;</type>
      <name>operator=</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a8346a48feccc5151f0ad04be00413aca</anchor>
      <arglist>(ShmControl &amp;&amp;rhs) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>AtomicLoadState</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a6211aafd019a71d5513222abe750432c</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>AtomicStoreState</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a17e37a36d1e496c49ded102be21eb9e0</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>Signal</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a62da0f91c459f1e60098a5eebd9b1663</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>AwaitSignal</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>ad5a124ba86203e11f57216076b9f4c02</anchor>
      <arglist>(std::chrono::duration&lt; Rep, Period &gt; timeout, Predicate pred) noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>Pop</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a00bf3f77dd7fc3c39fd9e4e7cec3f954</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>IsFull</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>ada2c16701f51046b7657a9dfbd49f954</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>IsEmpty</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a607ea35f671024c7774bc4ad06b94443</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr bool</type>
      <name>IsClosed</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>afa02a9d35ec67af31abb6802607cbc5c</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr void</type>
      <name>Close</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a65ff42c28c8997447c7869a2aae278c5</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>Push</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a7c4dcc2166f681ae3395c6dd51d39253</anchor>
      <arglist>(const T &amp;element) noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>Push</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a8417f57fbb85a75dfba0c75b91397f95</anchor>
      <arglist>(const T *data, size_t n) noexcept</arglist>
    </member>
    <member kind="function">
      <type>reference</type>
      <name>operator[]</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a1f119654692af1ad5a0ff2f2b842282e</anchor>
      <arglist>(size_type index)</arglist>
    </member>
    <member kind="function">
      <type>const_reference</type>
      <name>operator[]</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a02c9c0d50b79fcd053b6cfc591c9e6d4</anchor>
      <arglist>(size_type index) const</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_type</type>
      <name>Size</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a2dfe23b75b494f39bec787cd3562c85a</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr value_type *</type>
      <name>GetBuffer</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a265a0b44e3cbaebf7252f122f4d6c9b5</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr value_type *</type>
      <name>GetQueuePtr</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a4e91967aa53c014442089aa0d34710cd</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr ConstIterator</type>
      <name>Begin</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a674def8d18c2fefae92c36b4d2c9f724</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr ConstIterator</type>
      <name>End</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>acf98822470f12cf5590202ac3e7dd303</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static std::error_code</type>
      <name>RemoveShmObject</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>ab0134de73620cbd5315bbdbf1f3ba404</anchor>
      <arglist>(char const *shm_object_name) noexcept</arglist>
    </member>
    <member kind="variable">
      <type>friend</type>
      <name>Iterator</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a16d401b0e0221e0e5ca8e3da0099e249</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>friend</type>
      <name>ConstIterator</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControl.html</anchorfile>
      <anchor>a643309b73f14cb34c25cbf3b2a3cd783</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ipcq::detail::ShmControlBase</name>
    <filename>classipcq_1_1detail_1_1ShmControlBase.html</filename>
    <templarg>class ShmTraits</templarg>
    <member kind="typedef">
      <type>size_t</type>
      <name>CounterType</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a1f3b9459626fe67bbcada70d080d0795</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename ShmTraits::SharedMemoryObject</type>
      <name>SharedMemoryObject</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>ad204c285588dbe4a684befc5f10c9ad9</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename ShmTraits::MappedRegion</type>
      <name>MappedRegion</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>ac6568e7815712bd0cd88d431f6178db8</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmControlBase</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a93af838f3afeec87eafead444b03e51b</anchor>
      <arglist>(char const *name, QueueInfo queue_info, std::optional&lt; numapp::MemPolicy &gt; mem_policy=std::nullopt, int mmap_flags=0)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmControlBase</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>ad8929fb61a07189e7f129a145a46c2db</anchor>
      <arglist>(char const *name)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmControlBase</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a11e224124aaca618f62dabed33456910</anchor>
      <arglist>(ShmControlBase &amp;&amp;rhs) noexcept</arglist>
    </member>
    <member kind="function">
      <type>ShmControlBase &amp;</type>
      <name>operator=</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>aa85d63881b4c0bb12ecbcc97d4f1b8e3</anchor>
      <arglist>(ShmControlBase &amp;&amp;rhs) noexcept</arglist>
    </member>
    <member kind="function">
      <type>char const *</type>
      <name>TopicName</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>af1dbcc9e3dae9ba3d47d1c2be771a07d</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>char const *</type>
      <name>ShmObjectName</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a662859c72bf0059cd29972be402cb4b4</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>constexpr size_t</type>
      <name>Capacity</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a8cd2c4cc7d54870898e2c3ad2dd89bca</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr uint8_t</type>
      <name>FileVersion</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a65303b5a503b446d4e6db8004b35f667</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="function">
      <type>constexpr pid_t</type>
      <name>OwnerPid</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a0b6847ad8e4bd50cebd9ff3adcdb70a4</anchor>
      <arglist>() const noexcept</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>m_topic_name</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a9083d03b169a30351a9bb41a683dd475</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>QueueInfo</type>
      <name>m_queue_info</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a1787bdf6c1c25f6a74a8ec4afe3a47d7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>SharedMemoryObject</type>
      <name>m_shm_obj</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a7c2acb024612e3b093d7f3a7341db2be</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ShmRemover&lt; ShmTraits &gt;</type>
      <name>m_shmem_remover</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>ae69b20e9d4d95bad3e74d3b49c6f8ca4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>MappedRegion</type>
      <name>m_control_region</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a3b52cc0606624b8b2f5dd60cb011c0cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>MappedRegion</type>
      <name>m_queue_region</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a1c7763f4daa31eb971490134cde4bc2a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ShmControlBlock *</type>
      <name>m_ctl_block</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a8cb0a6261fbc59a9a778ae088ea3e633</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>m_is_owner</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>ac17beb1bdc985d6a728f52f2b4743dd4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ShmControlBlock *</type>
      <name>m_ctl_block</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>a8cb0a6261fbc59a9a778ae088ea3e633</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>m_is_owner</name>
      <anchorfile>classipcq_1_1detail_1_1ShmControlBase.html</anchorfile>
      <anchor>ac17beb1bdc985d6a728f52f2b4743dd4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ipcq::detail::ShmControlBlock</name>
    <filename>structipcq_1_1detail_1_1ShmControlBlock.html</filename>
    <member kind="variable">
      <type>std::array&lt; uint8_t, 7 &gt;</type>
      <name>magic</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a0bdd6f13dce458e21affa23139100cdd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>version</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a5a13034f80ddf9791646f681e0a47edc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; unsigned long long &gt;</type>
      <name>range</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a8af66ef15e23b555aa43a63a4989128f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>element_type_hash</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a2193305ba05aef3752d89418b14f7876</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>condition_type_hash</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>ae90f0574965cf8b4d26f902a97e53f17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>QueueInfo</type>
      <name>queue_spec</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>ae13d711fc4b7123ce984a2379a4675cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; pid_t &gt;</type>
      <name>owner_pid</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a2d1815234441ebf136dfc721baf7b55d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>element_type_name</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a4f02949417328d2fb7d8a9c30b0fc4a7</anchor>
      <arglist>[config::TYPENAME_SEQ_LEN]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>condition_type_name</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a5c27bd9e7474d5e9208a0bd74631798b</anchor>
      <arglist>[config::TYPENAME_SEQ_LEN]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>element_type_name</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a4f02949417328d2fb7d8a9c30b0fc4a7</anchor>
      <arglist>[config::TYPENAME_SEQ_LEN]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>condition_type_name</name>
      <anchorfile>structipcq_1_1detail_1_1ShmControlBlock.html</anchorfile>
      <anchor>a5c27bd9e7474d5e9208a0bd74631798b</anchor>
      <arglist>[config::TYPENAME_SEQ_LEN]</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ipcq::detail::ShmRemover</name>
    <filename>classipcq_1_1detail_1_1ShmRemover.html</filename>
    <templarg>class ShmTraits</templarg>
    <member kind="enumeration">
      <type></type>
      <name>Policy</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>a9a566154dbb9bb631d0e51d5068e0aa9</anchor>
      <arglist></arglist>
      <enumvalue file="classipcq_1_1detail_1_1ShmRemover.html" anchor="a9a566154dbb9bb631d0e51d5068e0aa9a6adf97f83acf6453d4a6a4b1070f3754">None</enumvalue>
      <enumvalue file="classipcq_1_1detail_1_1ShmRemover.html" anchor="a9a566154dbb9bb631d0e51d5068e0aa9a22a8ec108d963f279c6a6a95aa960a57">Destructor</enumvalue>
      <enumvalue file="classipcq_1_1detail_1_1ShmRemover.html" anchor="a9a566154dbb9bb631d0e51d5068e0aa9af7f284c2b86ef7e19a09933eb35961fb">ConstructorAndDestructor</enumvalue>
    </member>
    <member kind="typedef">
      <type>typename ShmTraits::SharedMemoryObject</type>
      <name>SharedMemoryObject</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>a9a2a812b510cc648c0689e8f6c646e6c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>typename ShmTraits::MappedRegion</type>
      <name>MappedRegion</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>aec052228a587caa28897f4ee19dd2053</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmRemover</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>ae8f2a6c280bb18b805fbee7299fcc5ec</anchor>
      <arglist>(std::string name, Policy policy)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShmRemover</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>add356a743e572e084ec4d5108297f5ee</anchor>
      <arglist>(ShmRemover &amp;&amp;rhs) noexcept</arglist>
    </member>
    <member kind="function">
      <type>ShmRemover &amp;</type>
      <name>operator=</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>a3c6bbe1cfb456a73537e5165c1c31243</anchor>
      <arglist>(ShmRemover &amp;&amp;rhs) noexcept</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~ShmRemover</name>
      <anchorfile>classipcq_1_1detail_1_1ShmRemover.html</anchorfile>
      <anchor>ae68db98a143e91322de1b80fe87d9c47</anchor>
      <arglist>() noexcept</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ipcq::detail::SpinConditionPolicy</name>
    <filename>classipcq_1_1detail_1_1SpinConditionPolicy.html</filename>
    <member kind="typedef">
      <type>unsigned int</type>
      <name>condition_t</name>
      <anchorfile>classipcq_1_1detail_1_1SpinConditionPolicy.html</anchorfile>
      <anchor>a71d1da70c4fafd8cf3cd5029a2e1eb32</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>Signal</name>
      <anchorfile>classipcq_1_1detail_1_1SpinConditionPolicy.html</anchorfile>
      <anchor>a7a41a349ffd86a85d2523f4f9e2976f8</anchor>
      <arglist>() noexcept</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>Wait</name>
      <anchorfile>classipcq_1_1detail_1_1SpinConditionPolicy.html</anchorfile>
      <anchor>a255b8aec8382c5a1fe1bdd2b19ea83fe</anchor>
      <arglist>(std::chrono::duration&lt; Rep, Period &gt; timeout, Predicate pred) noexcept</arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>ipcq</name>
    <filename>namespaceipcq.html</filename>
    <namespace>ipcq::detail</namespace>
    <class kind="class">ipcq::BasicReader</class>
    <class kind="class">ipcq::BasicWriter</class>
    <class kind="class">ipcq::ErrorCategory</class>
    <class kind="struct">ipcq::IteratorTraits</class>
    <class kind="struct">ipcq::IteratorTraits&lt; Iterator, std::void_t&lt; typename Iterator::container_type &gt; &gt;</class>
    <class kind="struct">ipcq::OutputIteratorAdapter</class>
    <member kind="typedef">
      <type>detail::BoostConditionPolicy</type>
      <name>BoostConditionPolicy</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gaad96f84b4f0c9df3557a7061f5df9dd7</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>detail::SpinConditionPolicy</type>
      <name>SpinConditionPolicy</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gaec8401671c478b39e5abde4ac46f461f</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>BasicReader&lt; T, detail::BoostConditionPolicy &gt;</type>
      <name>Reader</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga95a97849e5ffd585cd6092563fe9772b</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>BasicWriter&lt; T, BoostConditionPolicy &gt;</type>
      <name>Writer</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gae0fad561cecf60a9f364508f7882b9be</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>Error</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gaf3f0f5e6542d536147ff2d5ad9f2cefa</anchor>
      <arglist></arglist>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaae799f8e2bec1c2593f034ec5060229e6">WouldBlock</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa03f4a47830f97377a35321051685071e">Closed</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaac85a251cc457840f1e032f1b733e9398">Timeout</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa25ee5c5eb27512d6c6d36beb24e3e0e0">InconsistentState</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa2782c4707c245684aa95545098e1b70b">TypeMismatch</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa129e8109f319870e328cc7a1d5b5cae3">Overflow</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaaeebccf2ac692c3929d81953505d66c70">BadFile</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa8a30fe55b459908d37fae43df3b8b854">BadVersion</enumvalue>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>Notify</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga7822dbd0f0564bb848a69e9d7ecae060</anchor>
      <arglist></arglist>
      <enumvalue file="group__ipcq.html" anchor="gga7822dbd0f0564bb848a69e9d7ecae060a6adf97f83acf6453d4a6a4b1070f3754">None</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="gga7822dbd0f0564bb848a69e9d7ecae060ab1c94ca2fbc3e78fc30069c8d0f01680">All</enumvalue>
    </member>
    <member kind="function">
      <type>constexpr auto</type>
      <name>BackInserter</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gac46eaf481f0eb9ae3eb045c0f68589ec</anchor>
      <arglist>(Container &amp;c) -&gt; OutputIteratorAdapter&lt; std::back_insert_iterator&lt; Container &gt; &gt;</arglist>
    </member>
    <member kind="function">
      <type>const std::error_category &amp;</type>
      <name>GetErrorCategory</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga7434c6e9dc5f1c86e81c16ba24985b09</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>make_error_code</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gad6523d8cd433f8e10ca6948bdb8cd41e</anchor>
      <arglist>(Error e)</arglist>
    </member>
    <member kind="function">
      <type>std::error_condition</type>
      <name>make_error_condition</name>
      <anchorfile>namespaceipcq.html</anchorfile>
      <anchor>a3c89b2510a88706397899ad8c78c71a4</anchor>
      <arglist>(Error e)</arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>ipcq::detail</name>
    <filename>namespaceipcq_1_1detail.html</filename>
    <namespace>ipcq::detail::config</namespace>
    <class kind="class">ipcq::detail::BoostConditionPolicy</class>
    <class kind="struct">ipcq::detail::BoostInterprocessTraits</class>
    <class kind="struct">ipcq::detail::ConstTraits</class>
    <class kind="struct">ipcq::detail::Iterator</class>
    <class kind="struct">ipcq::detail::NonConstTraits</class>
    <class kind="struct">ipcq::detail::QueueInfo</class>
    <class kind="struct">ipcq::detail::ReaderRollback</class>
    <class kind="struct">ipcq::detail::ReaderRollback&lt; false, State &gt;</class>
    <class kind="struct">ipcq::detail::ReaderRollback&lt; true, State &gt;</class>
    <class kind="class">ipcq::detail::ShmControl</class>
    <class kind="class">ipcq::detail::ShmControlBase</class>
    <class kind="struct">ipcq::detail::ShmControlBlock</class>
    <class kind="class">ipcq::detail::ShmRemover</class>
    <class kind="class">ipcq::detail::SpinConditionPolicy</class>
    <member kind="function">
      <type>void</type>
      <name>PrefaultPages</name>
      <anchorfile>namespaceipcq_1_1detail.html</anchorfile>
      <anchor>a10c6ab5d5467c1bebda4fed27821dc39</anchor>
      <arglist>(void const *begin, void const *end) noexcept</arglist>
    </member>
    <member kind="function">
      <type>boost::posix_time::ptime</type>
      <name>AddDuration</name>
      <anchorfile>namespaceipcq_1_1detail.html</anchorfile>
      <anchor>ac733f882ae70e03adf49060985105f6f</anchor>
      <arglist>(boost::posix_time::ptime const &amp;point, std::chrono::duration&lt; Rep, Period &gt; duration) noexcept</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>MakeShmObjectName</name>
      <anchorfile>namespaceipcq_1_1detail.html</anchorfile>
      <anchor>a87a12731f779b1cae20d3bdf9e5762a3</anchor>
      <arglist>(char const *topic_name)</arglist>
    </member>
    <member kind="variable">
      <type>constexpr bool</type>
      <name>always_false_v</name>
      <anchorfile>namespaceipcq_1_1detail.html</anchorfile>
      <anchor>a9ecbe5ac45222b220776e8279448dad1</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>ipcq::detail::config</name>
    <filename>namespaceipcq_1_1detail_1_1config.html</filename>
    <member kind="variable">
      <type>constexpr std::array&lt; uint8_t, 7 &gt;</type>
      <name>MAGIC_NUMBER</name>
      <anchorfile>namespaceipcq_1_1detail_1_1config.html</anchorfile>
      <anchor>a6846e6e3907918c920c47679b14beb1c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr std::string_view</type>
      <name>SHM_OBJECT_NAME_PREFIX</name>
      <anchorfile>namespaceipcq_1_1detail_1_1config.html</anchorfile>
      <anchor>a94abfc51dc6d10dea6219d48bba4842c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>BIT_COUNT</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>gaad53d45b9c68b19b2a7078efdf29e896</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>BIT_MASK</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>ga3d7fc73758e22d94a12e12555c407663</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>MAX_VALUE</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>gadfcccf96c3089aa5e00cb3b1dc445e28</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>BIT_IS_CLOSED</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>ga78f02eeaaa45eeae14038b296d52537c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr size_t</type>
      <name>TYPENAME_SEQ_LEN</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>ga826d49245801c80ceef92fa08a78c714</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>std</name>
    <filename>namespacestd.html</filename>
    <class kind="struct">std::is_error_condition_enum&lt;::ipcq::Error &gt;</class>
  </compound>
  <compound kind="group">
    <name>ipcq</name>
    <title>ipcq</title>
    <filename>group__ipcq.html</filename>
    <subgroup>ipcq_detail</subgroup>
    <file>adapter.hpp</file>
    <file>error.hpp</file>
    <file>policies.hpp</file>
    <file>reader.hpp</file>
    <file>writer.hpp</file>
    <file>version.hpp</file>
    <class kind="struct">ipcq::IteratorTraits</class>
    <class kind="struct">ipcq::IteratorTraits&lt; Iterator, std::void_t&lt; typename Iterator::container_type &gt; &gt;</class>
    <class kind="struct">ipcq::OutputIteratorAdapter</class>
    <class kind="class">ipcq::ErrorCategory</class>
    <class kind="class">ipcq::BasicReader</class>
    <class kind="class">ipcq::BasicWriter</class>
    <member kind="define">
      <type>#define</type>
      <name>IPCQ_VERSION</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga73ba54472fa0e4baeb9ec3189d0a7c7b</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>detail::BoostConditionPolicy</type>
      <name>ipcq::BoostConditionPolicy</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gaad96f84b4f0c9df3557a7061f5df9dd7</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>detail::SpinConditionPolicy</type>
      <name>ipcq::SpinConditionPolicy</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gaec8401671c478b39e5abde4ac46f461f</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>BasicReader&lt; T, detail::BoostConditionPolicy &gt;</type>
      <name>ipcq::Reader</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga95a97849e5ffd585cd6092563fe9772b</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>BasicWriter&lt; T, BoostConditionPolicy &gt;</type>
      <name>ipcq::Writer</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gae0fad561cecf60a9f364508f7882b9be</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>ipcq::Error</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gaf3f0f5e6542d536147ff2d5ad9f2cefa</anchor>
      <arglist></arglist>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaae799f8e2bec1c2593f034ec5060229e6">WouldBlock</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa03f4a47830f97377a35321051685071e">Closed</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaac85a251cc457840f1e032f1b733e9398">Timeout</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa25ee5c5eb27512d6c6d36beb24e3e0e0">InconsistentState</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa2782c4707c245684aa95545098e1b70b">TypeMismatch</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa129e8109f319870e328cc7a1d5b5cae3">Overflow</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaaeebccf2ac692c3929d81953505d66c70">BadFile</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="ggaf3f0f5e6542d536147ff2d5ad9f2cefaa8a30fe55b459908d37fae43df3b8b854">BadVersion</enumvalue>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>ipcq::Notify</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga7822dbd0f0564bb848a69e9d7ecae060</anchor>
      <arglist></arglist>
      <enumvalue file="group__ipcq.html" anchor="gga7822dbd0f0564bb848a69e9d7ecae060a6adf97f83acf6453d4a6a4b1070f3754">None</enumvalue>
      <enumvalue file="group__ipcq.html" anchor="gga7822dbd0f0564bb848a69e9d7ecae060ab1c94ca2fbc3e78fc30069c8d0f01680">All</enumvalue>
    </member>
    <member kind="function">
      <type>constexpr auto</type>
      <name>ipcq::BackInserter</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gac46eaf481f0eb9ae3eb045c0f68589ec</anchor>
      <arglist>(Container &amp;c) -&gt; OutputIteratorAdapter&lt; std::back_insert_iterator&lt; Container &gt; &gt;</arglist>
    </member>
    <member kind="function">
      <type>const std::error_category &amp;</type>
      <name>ipcq::GetErrorCategory</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>ga7434c6e9dc5f1c86e81c16ba24985b09</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::error_code</type>
      <name>ipcq::make_error_code</name>
      <anchorfile>group__ipcq.html</anchorfile>
      <anchor>gad6523d8cd433f8e10ca6948bdb8cd41e</anchor>
      <arglist>(Error e)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>ipcq_detail</name>
    <title>implementation details</title>
    <filename>group__ipcq__detail.html</filename>
    <file>iterator.hpp</file>
    <file>shm.hpp</file>
    <file>traits.hpp</file>
    <class kind="struct">ipcq::detail::Iterator</class>
    <class kind="struct">ipcq::detail::ShmControlBlock</class>
    <class kind="class">ipcq::detail::ShmRemover</class>
    <class kind="class">ipcq::detail::SpinConditionPolicy</class>
    <class kind="class">ipcq::detail::BoostConditionPolicy</class>
    <class kind="class">ipcq::detail::ShmControl</class>
    <class kind="struct">ipcq::detail::NonConstTraits</class>
    <class kind="struct">ipcq::detail::ConstTraits</class>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>ipcq::detail::config::BIT_COUNT</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>gaad53d45b9c68b19b2a7078efdf29e896</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>ipcq::detail::config::BIT_MASK</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>ga3d7fc73758e22d94a12e12555c407663</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>ipcq::detail::config::MAX_VALUE</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>gadfcccf96c3089aa5e00cb3b1dc445e28</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr auto</type>
      <name>ipcq::detail::config::BIT_IS_CLOSED</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>ga78f02eeaaa45eeae14038b296d52537c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>constexpr size_t</type>
      <name>ipcq::detail::config::TYPENAME_SEQ_LEN</name>
      <anchorfile>group__ipcq__detail.html</anchorfile>
      <anchor>ga826d49245801c80ceef92fa08a78c714</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="page">
    <name>md_README</name>
    <title>README</title>
    <filename>md_README.html</filename>
    <docanchor file="md_README.html" title="ipcq">mainpage</docanchor>
  </compound>
</tagfile>
